<?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>54181</bug_id>
          
          <creation_ts>2011-02-10 00:41:18 -0800</creation_ts>
          <short_desc>Implement Page Visibility API.</short_desc>
          <delta_ts>2011-08-09 16:45:57 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc>http://lists.w3.org/Archives/Public/public-webapps/2011JanMar/0175.html</bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>58464</dependson>
    
    <dependson>60475</dependson>
          <blocked>60576</blocked>
          <everconfirmed>0</everconfirmed>
          <reporter name="Shishir Agrawal">shishir</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>abarth</cc>
    
    <cc>ap</cc>
    
    <cc>brettw</cc>
    
    <cc>buildbot</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>commit-queue</cc>
    
    <cc>donggwan.kim</cc>
    
    <cc>eric</cc>
    
    <cc>fishd</cc>
    
    <cc>kenneth</cc>
    
    <cc>mike</cc>
    
    <cc>mjs</cc>
    
    <cc>ojan</cc>
    
    <cc>sam</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>simonjam</cc>
    
    <cc>steveblock</cc>
    
    <cc>tonyg</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>zalan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>348857</commentid>
    <comment_count>0</comment_count>
    <who name="Shishir Agrawal">shishir</who>
    <bug_when>2011-02-10 00:41:18 -0800</bug_when>
    <thetext>&lt;&lt; Proposal details &gt;&gt;

Hi all,

There is currently no good way for a web page to detect that it is
completely invisible to the user (for example, that it is a background tab),
although some imperfect heuristics do exist. In the future, there may be
cases where such detection is even more important, for example in the
prerendering feature that Chromium is currently in the early stages of
experimentation with.

Note that an earlier version of this proposal was sent to the what-wg
mailing list for comment earlier (
http://lists.whatwg.org/htdig.cgi/whatwg-whatwg.org/2010-December/029382.html),
and received comments that led to several revisions. The following proposal
introduces only a minor change on top of the result of that discussion
(specifically, renaming document.visibility to document.visibilityState and
document.isVisible to document.visible, in order to encourage developers to
prefer using the simpler boolean property).

Use cases

* A page wants to detect when it is being prerendered so it can behave
appropriately.
* A puzzle game has a timer that keeps track of how long the user has taken
to solve the puzzle.  It wants to pause the timer when the user has hidden
the tab.
* A web app that uses polling to fetch dynamic content can pause polling
when it knows the page is hidden from the user.
* A streaming video site doesn’t want to start the video until the user
actually views the tab for the first time (i.e. video shouldn’t start
automatically if a user opens the tab in the background).
* An in-browser collaborative editing environment wants to update a user’s
status to away when the editing surface is not visible to the user.


With these use-cases in mind, there are a number of requirements.

Requirements

* Easy for developers to write scripts that fall back on old behaviors for
browsers that do not implement this API
* Ability to query the document’s current visibility state
* Events fired when the document transitions between visibility states
* Ability for browser vendors to add new visibility states in the future


Proposed API

document.visible

Returns true if document.visibilityState’s current value is in the set of
visibility states considered to be visible (see the next section for
information on document.visibilityState).  In practice document.visible is
merely a convenience property that is well-suited to simple uses. In most
implementations, only the “visible” state is considered visible--although
some implementations may consider other values to be visible as well (for
example, an implementation that makes use of nearly-full-size thumbnail
previews may consider “preview” to be a visible state).


document.visibilityState

A read-only property that returns a string, one of the values described in
the next section.  Developers can use the existence of this property to know
that they can rely on the rest of this API, too.

* Values returned by all conforming implementations
    * “visible” : the full-size page content may be at least partially
visible on at least one screen.
    * “hidden” : the full-size page content is not visible to the user at
all.
* Additional values potentially returned by some implementations in some
cases
    * “prerender” : the page is currently being loaded off-screen and might
never be shown to the user.
    * “cache” : the page is currently “frozen” in a cache and not displayed
on screen (e.g. the back-forward cache).
    * “preview” : the page is currently visible only in a lower-resolution
thumbnail.

States in the second set are not guaranteed to be returned in all cases
where they might otherwise appear to apply--it is left to the discretion of
the implementation.

Additional return values may be added to this API in the future.

It is up to the implementation to interpret what these values mean in the
precise context of interface and platform.  As an example, a
current-generation desktop browser might interpret the values the following
way:
“visible” : the tab is focused in its non-minimized window (regardless of
the focus state of the containing window).
“hidden” : the tab is backgrounded within its window, or the containing
window is minimized.


visibilitychange

A simple event, fired at the document object immediately after
document.visibilityState transitions between visibility states.  The event
has a property, fromState, that is set to the value of
document.visibilityState just before it was changed to the current value.
 Note that visibility has nothing to do with whether the document’s contents
have fully loaded or not, which implies that for any given visibility
transition event, onload may or may not have already fired.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>349644</commentid>
    <comment_count>1</comment_count>
      <attachid>82102</attachid>
    <who name="Shishir Agrawal">shishir</who>
    <bug_when>2011-02-10 22:15:13 -0800</bug_when>
    <thetext>Created attachment 82102
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>350554</commentid>
    <comment_count>2</comment_count>
      <attachid>82295</attachid>
    <who name="Shishir Agrawal">shishir</who>
    <bug_when>2011-02-14 00:44:13 -0800</bug_when>
    <thetext>Created attachment 82295
Patch

Fixing a unused var warning that resulted from the previous patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>350990</commentid>
    <comment_count>3</comment_count>
    <who name="Tony Gentilcore">tonyg</who>
    <bug_when>2011-02-14 16:53:53 -0800</bug_when>
    <thetext>The main question I have is whether this API needs to start out prefixed: webkitVisibilityState instead of visibilityState. The whatwg thread didn&apos;t seem very finalized so I bet this will go through changes.

Some questions on the API proposal:
- I think we should remove the .visible property. It is just a
convenience method that a web app can trivially determine from
visibilityState. Typically web APIs shoot for the smallest API surface
area composed of the most atomic building blocks.
- I think visibilityChange should be named visibilityStateChange. That
ties it more definitively to the visibilityState attribute, similar to
readyState and readyStateChange.
- I don&apos;t understand how visibilityState==&quot;cache&quot; could ever be
reached. If the page is frozen in a cache, then by definition no
JavaScript can be running to observe the property.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>363175</commentid>
    <comment_count>4</comment_count>
    <who name="Shishir Agrawal">shishir</who>
    <bug_when>2011-03-06 18:57:00 -0800</bug_when>
    <thetext>Hi Tony,

I have added the webkit prefix and also changed visibilityChange to visibilityStateChange in the latest patch.

- I think we should remove the .visible property. It is just a
convenience method that a web app can trivially determine from
visibilityState. Typically web APIs shoot for the smallest API surface
area composed of the most atomic building blocks.

There seems to be some debate about this. Some people feel we should only keep the bool value since most of the web developers would only use it and not worry about the actual states.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>363176</commentid>
    <comment_count>5</comment_count>
      <attachid>84908</attachid>
    <who name="Shishir Agrawal">shishir</who>
    <bug_when>2011-03-06 18:58:08 -0800</bug_when>
    <thetext>Created attachment 84908
Patch

Addressing Tony comments about the webkit prefix.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>363202</commentid>
    <comment_count>6</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2011-03-06 20:30:27 -0800</bug_when>
    <thetext>Has this API been proposed to a working group? Are other browsers going to implement it?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>363352</commentid>
    <comment_count>7</comment_count>
    <who name="Shishir Agrawal">shishir</who>
    <bug_when>2011-03-07 08:20:53 -0800</bug_when>
    <thetext>The web performance working group is looking into standardizing the spec of the visibility api. I am not sure if other browsers plan to implement this yet.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>380010</commentid>
    <comment_count>8</comment_count>
    <who name="Tony Gentilcore">tonyg</who>
    <bug_when>2011-04-05 18:05:58 -0700</bug_when>
    <thetext>This was discussed at the web perf working group face-to-face last Friday. The group decided to update its charter to include working on the problem of allowing a page to determine its visibility state. The intent is to start with this as a first draft (co-edited by Google/Microsoft). It seems reasonable to me to begin landing a vendor prefixed and flag guarded implementation.

Minutes: http://lists.w3.org/Archives/Public/public-web-perf/2011Apr/0023.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>383720</commentid>
    <comment_count>9</comment_count>
      <attachid>84908</attachid>
    <who name="Tony Gentilcore">tonyg</who>
    <bug_when>2011-04-11 17:53:59 -0700</bug_when>
    <thetext>Comment on attachment 84908
Patch

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

Some initial comments/questions.

BTW, I believe you should also add the flag to:
http://trac.webkit.org/browser/trunk/WebKitLibraries/win/tools/vsprops/FeatureDefines.vsprops

&gt; Source/WebCore/ChangeLog:6
&gt; +        https://bugs.webkit.org/show_bug.cgi?id=54181

We should probably add a link to the spec in the changelog for posterity sake.

&gt; Source/WebCore/ChangeLog:27
&gt; +        (WebCore::Page::visibilityState): Retursn current visibility state.

s/Retursn/Returns/

&gt; Source/WebCore/dom/Document.cpp:1383
&gt; +        return &quot;visible&quot;;

I believe this constant should be defined with:
DEFINE_STATIC_LOCAL(const String, visible, (&quot;visible&quot;));

Also, it isn&apos;t clear to me why we report visible when there is no frame or page. Doesn&apos;t that likely mean it isn&apos;t visible? Perhaps add a comment or something to the changelog explaining why this is considered visible.

&gt; Source/WebCore/dom/Document.cpp:1392
&gt; +void Document::triggerVisibilityStateChangeEvent()

These methods are usually named dispatch* rather than trigger*.

&gt; Source/WebCore/page/Frame.cpp:676
&gt; +    for (Frame* child = tree()-&gt;firstChild(); child; child = child-&gt;tree()-&gt;nextSibling())

This is really begging for a layout test. Since JavaScript runs when the event is dispatched, it has a chance to manipulate the frame tree. In other words, we should be sure it works as expected when the visibilitystatechange event adds or removes a frame.

We can still add tests along with the code change, you can verify they pass locally, but skip them or expect them to fail when landing. On a higher note, since this patch touches so many build files it will be difficult to keep in sync. Up to you, but it might be easier to just add the flag-guard first, then do the implementation separately. Also, if the flag were flipped for chromium before the implementation patch so that the tests could be enabled for chromium when it lands.

&gt; Source/WebCore/page/Page.cpp:120
&gt; +#if ENABLE(PAGE_VISIBILITY_API)

Varying the number of arguments in the ctor seems a little awkward. Is it really necessary to know this in the ctor? Perhaps the default is always visible and then there is a setter to update it? There could be a param to suppress dispatching the change event on the initial set.

&gt; Source/WebCore/page/Page.cpp:918
&gt; +    if (!Document::isVisibilityStateValueValid(visibilityState))

Passing strings around and checking if they are valid seems hacky. Why don&apos;t we create a VisibilityState enum, pass that around, then just convert to strings in the visibilityState() getter (similar to the way ReadyState works). I understand that there may be port-specific values (like &quot;prerender&quot;), but it still would be best to have one enum that is the union of all values used by any port. This forces ports to at least consider all current values when adding new ones.

&gt; Source/WebCore/svg/graphics/SVGImage.cpp:267
&gt; +        // holding Frames and won&apos;t know to break the cycle. But 

Is this comment change intentional? The sentence trails off.

&gt; Source/WebKit/chromium/public/WebView.h:368
&gt; +    virtual void setVisibilityState(const WebString&amp;) = 0;

fishd likes to review all changes to the chromium/webkit api. He should take a look at this patch as well.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>383807</commentid>
    <comment_count>10</comment_count>
      <attachid>84908</attachid>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2011-04-11 21:35:03 -0700</bug_when>
    <thetext>Comment on attachment 84908
Patch

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

&gt; Source/WebKit/chromium/public/WebView.h:366
&gt; +#if defined(ENABLE_PAGE_VISIBILITY_API) &amp;&amp; ENABLE_PAGE_VISIBILITY_API

we don&apos;t include #ifdefs like these in the public WebKit API headers.  instead, we always
include the feature in the headers.  the implementation, in WebViewImpl.cpp can be instead
conditionally compiled.

If you look at this method as an API that should stand on its own, it has a problem.  No
where do you define the set of allowed visibility states.  Are you sure the set of states
should be represented as a string in this API and not an enum?  If the possible set of 
values here is just visible or hidden, then perhaps this should just be made into a bool
setter.  In that case, I would also consider moving this down to WebWidget.  This is b/c
the same &quot;is_hidden&quot; flag is available in Chromium&apos;s RenderWidget class, which is a peer
to WebWidget.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>387015</commentid>
    <comment_count>11</comment_count>
      <attachid>89874</attachid>
    <who name="Shishir Agrawal">shishir</who>
    <bug_when>2011-04-15 16:27:54 -0700</bug_when>
    <thetext>Created attachment 89874
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>387016</commentid>
    <comment_count>12</comment_count>
      <attachid>89874</attachid>
    <who name="Shishir Agrawal">shishir</who>
    <bug_when>2011-04-15 16:28:47 -0700</bug_when>
    <thetext>Comment on attachment 89874
Patch

Uploaded to help debug linking issues.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>389679</commentid>
    <comment_count>13</comment_count>
      <attachid>90455</attachid>
    <who name="Shishir Agrawal">shishir</who>
    <bug_when>2011-04-20 17:31:00 -0700</bug_when>
    <thetext>Created attachment 90455
Patch

Addressing Tony&apos;s and Darin&apos;s comments.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>389687</commentid>
    <comment_count>14</comment_count>
      <attachid>84908</attachid>
    <who name="Shishir Agrawal">shishir</who>
    <bug_when>2011-04-20 17:33:49 -0700</bug_when>
    <thetext>Comment on attachment 84908
Patch

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

&gt;&gt; Source/WebCore/ChangeLog:6
&gt;&gt; +        https://bugs.webkit.org/show_bug.cgi?id=54181
&gt; 
&gt; We should probably add a link to the spec in the changelog for posterity sake.

Done in the flag change.

&gt;&gt; Source/WebCore/ChangeLog:27
&gt;&gt; +        (WebCore::Page::visibilityState): Retursn current visibility state.
&gt; 
&gt; s/Retursn/Returns/

Removed.

&gt;&gt; Source/WebCore/dom/Document.cpp:1383
&gt;&gt; +        return &quot;visible&quot;;
&gt; 
&gt; I believe this constant should be defined with:
&gt; DEFINE_STATIC_LOCAL(const String, visible, (&quot;visible&quot;));
&gt; 
&gt; Also, it isn&apos;t clear to me why we report visible when there is no frame or page. Doesn&apos;t that likely mean it isn&apos;t visible? Perhaps add a comment or something to the changelog explaining why this is considered visible.

Done.

&gt;&gt; Source/WebCore/dom/Document.cpp:1392
&gt;&gt; +void Document::triggerVisibilityStateChangeEvent()
&gt; 
&gt; These methods are usually named dispatch* rather than trigger*.

Changed.

&gt;&gt; Source/WebCore/page/Page.cpp:918
&gt;&gt; +    if (!Document::isVisibilityStateValueValid(visibilityState))
&gt; 
&gt; Passing strings around and checking if they are valid seems hacky. Why don&apos;t we create a VisibilityState enum, pass that around, then just convert to strings in the visibilityState() getter (similar to the way ReadyState works). I understand that there may be port-specific values (like &quot;prerender&quot;), but it still would be best to have one enum that is the union of all values used by any port. This forces ports to at least consider all current values when adding new ones.

Done.

&gt;&gt; Source/WebCore/svg/graphics/SVGImage.cpp:267
&gt;&gt; +        // holding Frames and won&apos;t know to break the cycle. But 
&gt; 
&gt; Is this comment change intentional? The sentence trails off.

Removed.

&gt;&gt; Source/WebKit/chromium/public/WebView.h:366
&gt;&gt; +#if defined(ENABLE_PAGE_VISIBILITY_API) &amp;&amp; ENABLE_PAGE_VISIBILITY_API
&gt; 
&gt; we don&apos;t include #ifdefs like these in the public WebKit API headers.  instead, we always
&gt; include the feature in the headers.  the implementation, in WebViewImpl.cpp can be instead
&gt; conditionally compiled.
&gt; 
&gt; If you look at this method as an API that should stand on its own, it has a problem.  No
&gt; where do you define the set of allowed visibility states.  Are you sure the set of states
&gt; should be represented as a string in this API and not an enum?  If the possible set of 
&gt; values here is just visible or hidden, then perhaps this should just be made into a bool
&gt; setter.  In that case, I would also consider moving this down to WebWidget.  This is b/c
&gt; the same &quot;is_hidden&quot; flag is available in Chromium&apos;s RenderWidget class, which is a peer
&gt; to WebWidget.

Added an enum. We may have more states than just hidden. Also we may not use the exact same semantics of the is_hidden flag because it is not always accurate.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>389731</commentid>
    <comment_count>15</comment_count>
    <who name="Build Bot">buildbot</who>
    <bug_when>2011-04-20 18:35:08 -0700</bug_when>
    <thetext>Attachment 90455 did not build on win:
Build output: http://queues.webkit.org/results/8487210</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>392389</commentid>
    <comment_count>16</comment_count>
      <attachid>90455</attachid>
    <who name="Tony Gentilcore">tonyg</who>
    <bug_when>2011-04-26 04:25:40 -0700</bug_when>
    <thetext>Comment on attachment 90455
Patch

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

&gt; LayoutTests/fast/events/page-visibility-iframe-test.html:15
&gt; +function log(string) {

Rather than reimplementing these in tests, it would be better to include ../js/resources/js-test-pre.js and use debug() if you just want to output lines. If possible, it is even better to use shouldBe*() methods.

&gt; LayoutTests/fast/events/page-visibility-iframe-test.html:30
&gt; +    layoutTestController.dumpAsText();

You can also remove this once you include js-test-pre.

Also, usually there is a description() call (or just inline text) which has a sentence about the goal of the test.

&gt; LayoutTests/fast/events/page-visibility-transition-test.html:35
&gt; +//  1`- hidden (should fire event).

Stray tick after the 1 (here and elsewhere)

&gt; LayoutTests/fast/events/page-visibility-transition-test.html:50
&gt; +            log(&quot;PASS 1: hidden&quot;);

Nowhere is webkitIsVisible() tested. All the existing tests could be updated to test both properties. Something along the lines of:

shouldBe(&quot;document.webkitVisibilityState()&quot;, &quot;hidden&quot;);
shouldBeFalse(&quot;document.webkitIsVisible()&quot;);

&gt; Source/WebCore/dom/Document.cpp:1338
&gt; +    // with the frame, we will consider the document to be invisible.

This comment should answer &quot;why&quot; rather than just restating the condition below.

&gt; Source/WebCore/dom/Document.h:381
&gt; +    PageVisibilityState webkitVisibilityStateEnum() const;

This should be private, and I&apos;d recommend just renaming it to visibilityState() or something.

&gt; Source/WebCore/page/Page.cpp:955
&gt; +void Page::setInitialVisibilityState(PageVisibilityState visibilityState)

This is never used. Is that in a subsequent patch?

&gt; Source/WebKit/chromium/features.gypi:78
&gt; +        &apos;ENABLE_PAGE_VISIBILITY_API=1&apos;,

Have you run all the tests? I&apos;m surprised that the new DOM API doesn&apos;t cause an existing test to fail. There are a some tests which just iterate through all the properties on window, etc.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>394022</commentid>
    <comment_count>17</comment_count>
      <attachid>91388</attachid>
    <who name="Shishir Agrawal">shishir</who>
    <bug_when>2011-04-27 17:15:52 -0700</bug_when>
    <thetext>Created attachment 91388
Patch

Addressing Tony&apos;s comments.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>394023</commentid>
    <comment_count>18</comment_count>
      <attachid>90455</attachid>
    <who name="Shishir Agrawal">shishir</who>
    <bug_when>2011-04-27 17:17:06 -0700</bug_when>
    <thetext>Comment on attachment 90455
Patch

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

&gt;&gt; LayoutTests/fast/events/page-visibility-iframe-test.html:15
&gt;&gt; +function log(string) {
&gt; 
&gt; Rather than reimplementing these in tests, it would be better to include ../js/resources/js-test-pre.js and use debug() if you just want to output lines. If possible, it is even better to use shouldBe*() methods.

Done.

&gt;&gt; LayoutTests/fast/events/page-visibility-iframe-test.html:30
&gt;&gt; +    layoutTestController.dumpAsText();
&gt; 
&gt; You can also remove this once you include js-test-pre.
&gt; 
&gt; Also, usually there is a description() call (or just inline text) which has a sentence about the goal of the test.

Done

&gt;&gt; Source/WebCore/dom/Document.cpp:1338
&gt;&gt; +    // with the frame, we will consider the document to be invisible.
&gt; 
&gt; This comment should answer &quot;why&quot; rather than just restating the condition below.

Changed this to visible. Right now I am not sure what the right value for this is. I have only seen this happen in case of thumbnails and ideally they should have a visibility state of their own.

&gt;&gt; Source/WebCore/dom/Document.h:381
&gt;&gt; +    PageVisibilityState webkitVisibilityStateEnum() const;
&gt; 
&gt; This should be private, and I&apos;d recommend just renaming it to visibilityState() or something.

Done.

&gt;&gt; Source/WebCore/page/Page.cpp:955
&gt;&gt; +void Page::setInitialVisibilityState(PageVisibilityState visibilityState)
&gt; 
&gt; This is never used. Is that in a subsequent patch?

Aah thanks for catching this. Comitted to wrong branch. Brought the changes in.

&gt;&gt; Source/WebKit/chromium/features.gypi:78
&gt;&gt; +        &apos;ENABLE_PAGE_VISIBILITY_API=1&apos;,
&gt; 
&gt; Have you run all the tests? I&apos;m surprised that the new DOM API doesn&apos;t cause an existing test to fail. There are a some tests which just iterate through all the properties on window, etc.

I see roughly 225 failures with and without my changes. How do I tell if my change is responsible. There are a lot of SVG failures too. Should I make sure tests in some directory pass?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>394035</commentid>
    <comment_count>19</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2011-04-27 17:45:48 -0700</bug_when>
    <thetext>This seems like the kind of new feature that warrants an email to webkit-dev (per discussion at the contributors conference).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>394036</commentid>
    <comment_count>20</comment_count>
    <who name="Shishir Agrawal">shishir</who>
    <bug_when>2011-04-27 17:48:07 -0700</bug_when>
    <thetext>Hi Simon,

Here is the thread from webkit-dev
https://lists.webkit.org/pipermail/webkit-dev/2011-March/016162.html

Thanks
Shishir</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>396308</commentid>
    <comment_count>21</comment_count>
      <attachid>91388</attachid>
    <who name="Tony Gentilcore">tonyg</who>
    <bug_when>2011-05-02 03:04:24 -0700</bug_when>
    <thetext>Comment on attachment 91388
Patch

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

&gt; LayoutTests/fast/events/page-visibility-iframe-test.html:10
&gt; +if (window.accessibilityController)

Is the accessibilityController guard here and in the other test intentional?

&gt; LayoutTests/fast/events/page-visibility-iframe-test.html:48
&gt; +        debug(&quot;Too many visibility transitions&quot;);  

Looks like a testFailed() would be better than debug().

&gt; LayoutTests/fast/events/page-visibility-iframe-test.html:51
&gt; +    testPassed(&quot;TEST COMPLETE&quot;);

This and the notifyDone() call below shouldn&apos;t be necessary. You should just need a &quot;var successfullyParsed = true&quot; at the end of the script and call finishJSTest(). Some good background here:
http://trac.webkit.org/wiki/Writing%20Layout%20Tests%20for%20DumpRenderTree

&gt; LayoutTests/fast/events/page-visibility-transition-test.html:36
&gt; +//  1`- hidden (should fire event).

Still a stray character after the &quot;1&quot;

&gt; LayoutTests/fast/events/page-visibility-transition-test.html:62
&gt; +    }

Should this have a testFailed for &gt;3 changes like the other test?

&gt; LayoutTests/fast/events/resources/page-visibility-iframe-test-subframe.html:35
&gt; +    }

All this work in the subframe makes the test harder to understand and leads to code duplication. Is it possible to structure the test so that the subframe is just a generic empty page and the parent always reaches down through the contentDocument? e.g.

&lt;script&gt;
function startTest()
{
    frames[0].contentDocument.addEventListener(&quot;webkitvisibilitystatechange&quot;, onChildVisibilityChange, false);
}
&lt;/script&gt;
&lt;iframe onload=startTest()&gt;

&gt; LayoutTests/platform/gtk/Skipped:1400
&gt; +media/adopt-node-crash.html

Stray diff?

&gt; Source/WebCore/dom/Document.cpp:1335
&gt; +    // with the frame, we will consider the document to be invisible. This

s/invisible/visible/

&gt; Source/WebCore/dom/Document.cpp:1336
&gt; +    // seems to happen in cases such as thumbnails which we consider as

The thumbnails you&apos;re mentioning are chromium-port specific, right? Perhaps a better justification is that visible is considered the default unless the embedder has explicitly indicated that it is hidden. No frame/page means no indication from the embedder.

&gt; Source/WebCore/page/Frame.cpp:709
&gt; +        child-&gt;dispatchVisibilityStateChangeEvent();

I&apos;d still like to see some testing of how this API behaves when documents are moved between frames. For instance, it is interesting to verify things like:
- The properties are correct when a document is moved from a visible to hidden frame
- Subsequent child dispatching works properly if a child frame is added or removed during a sibling&apos;s visibilitystatechange event.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>398462</commentid>
    <comment_count>22</comment_count>
      <attachid>91388</attachid>
    <who name="Shishir Agrawal">shishir</who>
    <bug_when>2011-05-04 18:11:24 -0700</bug_when>
    <thetext>Comment on attachment 91388
Patch

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

&gt;&gt; LayoutTests/fast/events/page-visibility-iframe-test.html:10
&gt;&gt; +if (window.accessibilityController)
&gt; 
&gt; Is the accessibilityController guard here and in the other test intentional?

Removed.

&gt;&gt; LayoutTests/fast/events/page-visibility-iframe-test.html:48
&gt;&gt; +        debug(&quot;Too many visibility transitions&quot;);  
&gt; 
&gt; Looks like a testFailed() would be better than debug().

Done.

&gt;&gt; LayoutTests/fast/events/page-visibility-iframe-test.html:51
&gt;&gt; +    testPassed(&quot;TEST COMPLETE&quot;);
&gt; 
&gt; This and the notifyDone() call below shouldn&apos;t be necessary. You should just need a &quot;var successfullyParsed = true&quot; at the end of the script and call finishJSTest(). Some good background here:
&gt; http://trac.webkit.org/wiki/Writing%20Layout%20Tests%20for%20DumpRenderTree

Thanks for the pointer. Fixed all tests.

&gt;&gt; LayoutTests/fast/events/page-visibility-transition-test.html:36
&gt;&gt; +//  1`- hidden (should fire event).
&gt; 
&gt; Still a stray character after the &quot;1&quot;

Removed.

&gt;&gt; LayoutTests/fast/events/page-visibility-transition-test.html:62
&gt;&gt; +    }
&gt; 
&gt; Should this have a testFailed for &gt;3 changes like the other test?

Done.

&gt;&gt; LayoutTests/fast/events/resources/page-visibility-iframe-test-subframe.html:35
&gt;&gt; +    }
&gt; 
&gt; All this work in the subframe makes the test harder to understand and leads to code duplication. Is it possible to structure the test so that the subframe is just a generic empty page and the parent always reaches down through the contentDocument? e.g.
&gt; 
&gt; &lt;script&gt;
&gt; function startTest()
&gt; {
&gt;     frames[0].contentDocument.addEventListener(&quot;webkitvisibilitystatechange&quot;, onChildVisibilityChange, false);
&gt; }
&gt; &lt;/script&gt;
&gt; &lt;iframe onload=startTest()&gt;

Done

&gt;&gt; LayoutTests/platform/gtk/Skipped:1400
&gt;&gt; +media/adopt-node-crash.html
&gt; 
&gt; Stray diff?

Removed.

&gt;&gt; Source/WebCore/dom/Document.cpp:1335
&gt;&gt; +    // with the frame, we will consider the document to be invisible. This
&gt; 
&gt; s/invisible/visible/

Done.

&gt;&gt; Source/WebCore/dom/Document.cpp:1336
&gt;&gt; +    // seems to happen in cases such as thumbnails which we consider as
&gt; 
&gt; The thumbnails you&apos;re mentioning are chromium-port specific, right? Perhaps a better justification is that visible is considered the default unless the embedder has explicitly indicated that it is hidden. No frame/page means no indication from the embedder.

Added a comment about the visiiblity needing to be explicitly set by the embedder.

&gt;&gt; Source/WebCore/page/Frame.cpp:709
&gt;&gt; +        child-&gt;dispatchVisibilityStateChangeEvent();
&gt; 
&gt; I&apos;d still like to see some testing of how this API behaves when documents are moved between frames. For instance, it is interesting to verify things like:
&gt; - The properties are correct when a document is moved from a visible to hidden frame
&gt; - Subsequent child dispatching works properly if a child frame is added or removed during a sibling&apos;s visibilitystatechange event.

Added two new tests.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>398476</commentid>
    <comment_count>23</comment_count>
      <attachid>92357</attachid>
    <who name="Shishir Agrawal">shishir</who>
    <bug_when>2011-05-04 18:46:37 -0700</bug_when>
    <thetext>Created attachment 92357
Patch

Addressing Tony&apos;s comments and adding more tests.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>398656</commentid>
    <comment_count>24</comment_count>
      <attachid>92357</attachid>
    <who name="Tony Gentilcore">tonyg</who>
    <bug_when>2011-05-05 03:54:50 -0700</bug_when>
    <thetext>Comment on attachment 92357
Patch

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

Everything else LGTM to me now. Darin, could you double check that you are happy with the chromium API updates?

&gt; LayoutTests/fast/events/page-visibility-iframe-delete-test.html:13
&gt; +window.jsTestIsAsync = true;

Just a consistency thing, we usually just do var jsTestIsAsync instead of window. Same comments in this file apply to other tests.

&gt; LayoutTests/fast/events/page-visibility-iframe-delete-test.html:14
&gt; +window.successfullyParsed = false;

This isn&apos;t necessary

&gt; LayoutTests/fast/events/page-visibility-iframe-delete-test.html:52
&gt; +    window.successfullyParsed = true;

This should just be a var successfullyParsed at the end of the inline script block here. finishJSTest will still control the TEST COMPLETE message.

&gt; Source/WebKit/chromium/features.gypi:78
&gt; +        &apos;ENABLE_PAGE_VISIBILITY_API=1&apos;,

The upstream tests will run fine with this enabled now. But chromium&apos;s build/features_override.gypi will override this flag to disable it. That means when the tests run on the chromium bots they will fail.

So the cleanest course to land this is to:
1 disable it in this patch and skip the new tests for chromium as well
2 submit a chromium patch to enable it there
3 submit a follow-up webkit patch to enable it here and unskip the tests</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>398933</commentid>
    <comment_count>25</comment_count>
      <attachid>92357</attachid>
    <who name="Shishir Agrawal">shishir</who>
    <bug_when>2011-05-05 12:36:13 -0700</bug_when>
    <thetext>Comment on attachment 92357
Patch

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

&gt;&gt; LayoutTests/fast/events/page-visibility-iframe-delete-test.html:13
&gt;&gt; +window.jsTestIsAsync = true;
&gt; 
&gt; Just a consistency thing, we usually just do var jsTestIsAsync instead of window. Same comments in this file apply to other tests.

Done in all.

&gt;&gt; LayoutTests/fast/events/page-visibility-iframe-delete-test.html:14
&gt;&gt; +window.successfullyParsed = false;
&gt; 
&gt; This isn&apos;t necessary

Done in all.

&gt;&gt; LayoutTests/fast/events/page-visibility-iframe-delete-test.html:52
&gt;&gt; +    window.successfullyParsed = true;
&gt; 
&gt; This should just be a var successfullyParsed at the end of the inline script block here. finishJSTest will still control the TEST COMPLETE message.

Changed in all.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>398936</commentid>
    <comment_count>26</comment_count>
      <attachid>92449</attachid>
    <who name="Shishir Agrawal">shishir</who>
    <bug_when>2011-05-05 12:37:46 -0700</bug_when>
    <thetext>Created attachment 92449
Patch

Disabling the ENABLE_PAGE_VISIBILITY_API flag in chromium/features.gypi and skipping the tests in chromium.
Also addressing Tony&apos;s comments.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>398984</commentid>
    <comment_count>27</comment_count>
      <attachid>92449</attachid>
    <who name="Brett Wilson (Google)">brettw</who>
    <bug_when>2011-05-05 13:42:51 -0700</bug_when>
    <thetext>Comment on attachment 92449
Patch

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

&gt; Source/WebKit/chromium/src/WebViewImpl.cpp:2573
&gt; +    switch (visibilityState) {

It seems like this 10-line block could be written as:
  ASSERT(visibilityState == WebPageVisibilityStateVisible || visibilityState == WebPageVisibilityStateHidden);
  m_page-&gt;setVisibilityState(visibilityState, isInitialState);</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>398985</commentid>
    <comment_count>28</comment_count>
    <who name="Brett Wilson (Google)">brettw</who>
    <bug_when>2011-05-05 13:43:22 -0700</bug_when>
    <thetext>I just looked at the WebKit stuff and I just had that one comment. I&apos;m not a WebKit reviewer, but FWIW the WebKit stuff LGTM with that.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>399150</commentid>
    <comment_count>29</comment_count>
      <attachid>92449</attachid>
    <who name="Shishir Agrawal">shishir</who>
    <bug_when>2011-05-05 16:18:49 -0700</bug_when>
    <thetext>Comment on attachment 92449
Patch

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

&gt;&gt; Source/WebKit/chromium/src/WebViewImpl.cpp:2573
&gt;&gt; +    switch (visibilityState) {
&gt; 
&gt; It seems like this 10-line block could be written as:
&gt;   ASSERT(visibilityState == WebPageVisibilityStateVisible || visibilityState == WebPageVisibilityStateHidden);
&gt;   m_page-&gt;setVisibilityState(visibilityState, isInitialState);

Not really, since the two enums are different. The input is WebPageVisibilityState and the other one is PageVisibilityState.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>399163</commentid>
    <comment_count>30</comment_count>
    <who name="Brett Wilson (Google)">brettw</who>
    <bug_when>2011-05-05 16:34:04 -0700</bug_when>
    <thetext>Ah, I missed that. Grep that directory for COMPILE_ASSERT_MATCHING_ENUM. What we&apos;ve done for other places is a cast + a compiler assert to avoid this type of conversion code.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>399190</commentid>
    <comment_count>31</comment_count>
      <attachid>92502</attachid>
    <who name="Shishir Agrawal">shishir</who>
    <bug_when>2011-05-05 16:53:45 -0700</bug_when>
    <thetext>Created attachment 92502
Patch

Addressing Bretts comments about the enum conversion</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>399271</commentid>
    <comment_count>32</comment_count>
      <attachid>92523</attachid>
    <who name="Shishir Agrawal">shishir</who>
    <bug_when>2011-05-05 18:33:02 -0700</bug_when>
    <thetext>Created attachment 92523
Patch

Missed changelog files in last patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>400291</commentid>
    <comment_count>33</comment_count>
      <attachid>92746</attachid>
    <who name="Shishir Agrawal">shishir</who>
    <bug_when>2011-05-08 13:55:44 -0700</bug_when>
    <thetext>Created attachment 92746
Patch

Updating the patch for commit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>400293</commentid>
    <comment_count>34</comment_count>
    <who name="Shishir Agrawal">shishir</who>
    <bug_when>2011-05-08 13:56:33 -0700</bug_when>
    <thetext>Hi Tony,

Since Brett has also reviewed the CL for the chrome port changes, can you commit this?

Thanks
Shishir</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>400438</commentid>
    <comment_count>35</comment_count>
      <attachid>92746</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2011-05-09 04:00:59 -0700</bug_when>
    <thetext>Comment on attachment 92746
Patch

Clearing flags on attachment: 92746

Committed r86047: &lt;http://trac.webkit.org/changeset/86047&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>400439</commentid>
    <comment_count>36</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2011-05-09 04:01:08 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>400503</commentid>
    <comment_count>37</comment_count>
      <attachid>92746</attachid>
    <who name="">mitz</who>
    <bug_when>2011-05-09 08:17:17 -0700</bug_when>
    <thetext>Comment on attachment 92746
Patch

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

&gt; Source/WebCore/page/PageVisibilityState.cpp:38
&gt; +String GetPageVisibilityStateString(PageVisibilityState state)

Function names must begin with a lowercase letter.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>400504</commentid>
    <comment_count>38</comment_count>
    <who name="Tony Gentilcore">tonyg</who>
    <bug_when>2011-05-09 08:21:50 -0700</bug_when>
    <thetext>
&gt; &gt; Source/WebCore/page/PageVisibilityState.cpp:38
&gt; &gt; +String GetPageVisibilityStateString(PageVisibilityState state)
&gt; 
&gt; Function names must begin with a lowercase letter.

Good catch, I&apos;ll land a fix.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>400525</commentid>
    <comment_count>39</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-05-09 08:46:07 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/86047 might have broken GTK Linux 32-bit Debug
The following tests are not passing:
svg/W3C-SVG-1.1/animate-elem-46-t.svg</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>448836</commentid>
    <comment_count>40</comment_count>
      <attachid>92746</attachid>
    <who name="Steve Block">steveblock</who>
    <bug_when>2011-08-09 15:04:30 -0700</bug_when>
    <thetext>Comment on attachment 92746
Patch

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

&gt; Source/WebKit/chromium/public/WebView.h:365
&gt; +                                    bool isInitialState) { }

Hi Shishir, can you explain why this method has a default implementation, while almost all of the other methods in this class are pure virtual? Thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>448864</commentid>
    <comment_count>41</comment_count>
      <attachid>92746</attachid>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2011-08-09 15:50:01 -0700</bug_when>
    <thetext>Comment on attachment 92746
Patch

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

&gt;&gt; Source/WebKit/chromium/public/WebView.h:365
&gt;&gt; +                                    bool isInitialState) { }
&gt; 
&gt; Hi Shishir, can you explain why this method has a default implementation, while almost all of the other methods in this class are pure virtual? Thanks!

Right, it should be pure.  Methods implemented only by WebKit should be pure.  Methods implemented by the embedder should have default implementations (to help with rolling out new APIs).</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>82102</attachid>
            <date>2011-02-10 22:15:13 -0800</date>
            <delta_ts>2011-02-14 00:44:13 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>page_visibility_api.patch</filename>
            <type>text/plain</type>
            <size>31604</size>
            <attacher name="Shishir Agrawal">shishir</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0NoYW5nZUxvZyBiL0NoYW5nZUxvZwppbmRleCBlZTM5NTJhLi5jNDY2M2Ux
IDEwMDY0NAotLS0gYS9DaGFuZ2VMb2cKKysrIGIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAK
KzIwMTEtMDItMTAgIFNoaXNoaXIgQWdyYXdhbCAgPHNoaXNoaXJAY2hyb21pdW0ub3JnPgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEltcGxlbWVudCBQ
YWdlIFZpc2liaWxpdHkgQVBJLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9NTQxODEKKworICAgICAgICAqIGNvbmZpZ3VyZS5hYzoKKwogMjAxMS0wMi0w
MyAgTWFydGluIFJvYmluc29uICA8bXJvYmluc29uQGlnYWxpYS5jb20+CiAKICAgICAgICAgRml4
IEdUSysgV2ViR0wgYnVpbGQgYWZ0ZXIgcjc2NjAwLgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKaW5k
ZXggZDVlOTQwNC4uOTIzMWM4MyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0No
YW5nZUxvZworKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MTIgQEAKKzIwMTEtMDItMTAgIFNoaXNoaXIgQWdyYXdhbCAgPHNoaXNoaXJAY2hyb21pdW0ub3Jn
PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEltcGxl
bWVudCBQYWdlIFZpc2liaWxpdHkgQVBJLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9NTQxODEKKworICAgICAgICAqIENvbmZpZ3VyYXRpb25zL0ZlYXR1
cmVEZWZpbmVzLnhjY29uZmlnOiBBZGQgRU5BQkxFX1BBR0VfVklTSUJJTElUWV9BUEkuCisKIDIw
MTEtMDItMDYgIFJ5b3N1a2UgTml3YSAgPHJuaXdhQHdlYmtpdC5vcmc+CiAKICAgICAgICAgVW5y
ZXZpZXdlZDsgc3BlY3VsYXRpdmUgUXQgYnVpbGQgZml4LgpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmln
CmluZGV4IDM5NzEwMzcuLjNiZDIwNzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZworKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcKQEAgLTg5
LDYgKzg5LDcgQEAgRU5BQkxFX01BVEhNTCA9IEVOQUJMRV9NQVRITUw7CiBFTkFCTEVfTUVURVJf
VEFHID0gRU5BQkxFX01FVEVSX1RBRzsKIEVOQUJMRV9OT1RJRklDQVRJT05TID0gOwogRU5BQkxF
X09GRkxJTkVfV0VCX0FQUExJQ0FUSU9OUyA9IEVOQUJMRV9PRkZMSU5FX1dFQl9BUFBMSUNBVElP
TlM7CitFTkFCTEVfUEFHRV9WSVNJQklMSVRZX0FQSSA9IDsKIEVOQUJMRV9QUk9HUkVTU19UQUcg
PSBFTkFCTEVfUFJPR1JFU1NfVEFHOwogCiBFTkFCTEVfUkVHSVNURVJfUFJPVE9DT0xfSEFORExF
UiA9IDsKQEAgLTEyNSw0ICsxMjYsNCBAQCBFTkFCTEVfWEhUTUxNUCA9IDsKIEVOQUJMRV9YUEFU
SCA9IEVOQUJMRV9YUEFUSDsKIEVOQUJMRV9YU0xUID0gRU5BQkxFX1hTTFQ7CiAKLUZFQVRVUkVf
REVGSU5FUyA9ICQoRU5BQkxFX0xJTktfUFJFRkVUQ0gpICQoRU5BQkxFX0FDQ0VMRVJBVEVEXzJE
X0NBTlZBUykgJChFTkFCTEVfV0VCR0wpICQoRU5BQkxFXzNEX1JFTkRFUklORykgJChFTkFCTEVf
QkxPQikgJChFTkFCTEVfQ0hBTk5FTF9NRVNTQUdJTkcpICQoRU5BQkxFX0NMSUVOVF9CQVNFRF9H
RU9MT0NBVElPTikgJChFTkFCTEVfREFUQUJBU0UpICQoRU5BQkxFX0RBVEFHUklEKSAkKEVOQUJM
RV9EQVRBTElTVCkgJChFTkFCTEVfREVWSUNFX09SSUVOVEFUSU9OKSAkKEVOQUJMRV9ESVJFQ1RP
UllfVVBMT0FEKSAkKEVOQUJMRV9ET01fU1RPUkFHRSkgJChFTkFCTEVfRVZFTlRTT1VSQ0UpICQo
RU5BQkxFX0ZJTFRFUlMpICQoRU5BQkxFX0ZJTEVfU1lTVEVNKSAkKEVOQUJMRV9GVUxMU0NSRUVO
X0FQSSkgJChFTkFCTEVfR0VPTE9DQVRJT04pICQoRU5BQkxFX0lDT05EQVRBQkFTRSkgJChFTkFC
TEVfSU1BR0VfUkVTSVpFUikgJChFTkFCTEVfSU5ERVhFRF9EQVRBQkFTRSkgJChFTkFCTEVfSU5Q
VVRfU1BFRUNIKSAkKEVOQUJMRV9KQVZBU0NSSVBUX0RFQlVHR0VSKSAkKEVOQUJMRV9NQVRITUwp
ICQoRU5BQkxFX01FVEVSX1RBRykgJChFTkFCTEVfTk9USUZJQ0FUSU9OUykgJChFTkFCTEVfT0ZG
TElORV9XRUJfQVBQTElDQVRJT05TKSAkKEVOQUJMRV9QUk9HUkVTU19UQUcpICQoRU5BQkxFX1JF
R0lTVEVSX1BST1RPQ09MX0hBTkRMRVIpICQoRU5BQkxFX1NIQVJFRF9XT1JLRVJTKSAkKEVOQUJM
RV9TVkcpICQoRU5BQkxFX1NWR19BTklNQVRJT04pICQoRU5BQkxFX1NWR19BU19JTUFHRSkgJChF
TkFCTEVfU1ZHX0RPTV9PQkpDX0JJTkRJTkdTKSAkKEVOQUJMRV9TVkdfRk9OVFMpICQoRU5BQkxF
X1NWR19GT1JFSUdOX09CSkVDVCkgJChFTkFCTEVfU1ZHX1VTRSkgJChFTkFCTEVfVklERU8pICQo
RU5BQkxFX01FRElBX1NUQVRJU1RJQ1MpICQoRU5BQkxFX1dFQl9BVURJTykgJChFTkFCTEVfV0VC
X1NPQ0tFVFMpICQoRU5BQkxFX1dFQl9USU1JTkcpICQoRU5BQkxFX1dNTCkgJChFTkFCTEVfV09S
S0VSUykgJChFTkFCTEVfWEhUTUxNUCkgJChFTkFCTEVfWFBBVEgpICQoRU5BQkxFX1hTTFQpOwor
RkVBVFVSRV9ERUZJTkVTID0gJChFTkFCTEVfTElOS19QUkVGRVRDSCkgJChFTkFCTEVfQUNDRUxF
UkFURURfMkRfQ0FOVkFTKSAkKEVOQUJMRV9XRUJHTCkgJChFTkFCTEVfM0RfUkVOREVSSU5HKSAk
KEVOQUJMRV9CTE9CKSAkKEVOQUJMRV9DSEFOTkVMX01FU1NBR0lORykgJChFTkFCTEVfQ0xJRU5U
X0JBU0VEX0dFT0xPQ0FUSU9OKSAkKEVOQUJMRV9EQVRBQkFTRSkgJChFTkFCTEVfREFUQUdSSUQp
ICQoRU5BQkxFX0RBVEFMSVNUKSAkKEVOQUJMRV9ERVZJQ0VfT1JJRU5UQVRJT04pICQoRU5BQkxF
X0RJUkVDVE9SWV9VUExPQUQpICQoRU5BQkxFX0RPTV9TVE9SQUdFKSAkKEVOQUJMRV9FVkVOVFNP
VVJDRSkgJChFTkFCTEVfRklMVEVSUykgJChFTkFCTEVfRklMRV9TWVNURU0pICQoRU5BQkxFX0ZV
TExTQ1JFRU5fQVBJKSAkKEVOQUJMRV9HRU9MT0NBVElPTikgJChFTkFCTEVfSUNPTkRBVEFCQVNF
KSAkKEVOQUJMRV9JTUFHRV9SRVNJWkVSKSAkKEVOQUJMRV9JTkRFWEVEX0RBVEFCQVNFKSAkKEVO
QUJMRV9JTlBVVF9TUEVFQ0gpICQoRU5BQkxFX0pBVkFTQ1JJUFRfREVCVUdHRVIpICQoRU5BQkxF
X01BVEhNTCkgJChFTkFCTEVfTUVURVJfVEFHKSAkKEVOQUJMRV9OT1RJRklDQVRJT05TKSAkKEVO
QUJMRV9PRkZMSU5FX1dFQl9BUFBMSUNBVElPTlMpICQoRU5BQkxFX1BBR0VfVklTSUJJTElUWV9B
UEkpICQoRU5BQkxFX1BST0dSRVNTX1RBRykgJChFTkFCTEVfUkVHSVNURVJfUFJPVE9DT0xfSEFO
RExFUikgJChFTkFCTEVfU0hBUkVEX1dPUktFUlMpICQoRU5BQkxFX1NWRykgJChFTkFCTEVfU1ZH
X0FOSU1BVElPTikgJChFTkFCTEVfU1ZHX0FTX0lNQUdFKSAkKEVOQUJMRV9TVkdfRE9NX09CSkNf
QklORElOR1MpICQoRU5BQkxFX1NWR19GT05UUykgJChFTkFCTEVfU1ZHX0ZPUkVJR05fT0JKRUNU
KSAkKEVOQUJMRV9TVkdfVVNFKSAkKEVOQUJMRV9WSURFTykgJChFTkFCTEVfTUVESUFfU1RBVElT
VElDUykgJChFTkFCTEVfV0VCX0FVRElPKSAkKEVOQUJMRV9XRUJfU09DS0VUUykgJChFTkFCTEVf
V0VCX1RJTUlORykgJChFTkFCTEVfV01MKSAkKEVOQUJMRV9XT1JLRVJTKSAkKEVOQUJMRV9YSFRN
TE1QKSAkKEVOQUJMRV9YUEFUSCkgJChFTkFCTEVfWFNMVCk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzAxODA1
MC4uMjgwZTQwNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM0IEBACisyMDExLTAyLTEwICBTaGlz
aGlyIEFncmF3YWwgIDxzaGlzaGlyQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJbXBsZW1lbnQgUGFnZSBWaXNpYmlsaXR5IEFQ
SS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTU0MTgx
CisKKyAgICAgICAgTm8gbmV3IHRlc3RzLiAoT09QUyEpCisKKyAgICAgICAgKiBXZWJDb3JlLmV4
cC5pbjoKKyAgICAgICAgKiBDb25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZzog
QWRkIEVOQUJMRV9QQUdFX1ZJU0lCSUxJVFlfQVBJLgorICAgICAgICAqIGRvbS9Eb2N1bWVudC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6dmlzaWJpbGl0eVN0YXRlKTogUmV0dXJu
cyBkb2N1bWVudCB2aXNpYmlsaXR5IHN0YXRlLgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6
OnZpc2libGUpOiBSZXR1cm5zIHRydWUgaWZmIGRvY3VtZW50IGlzIHZpc2libGUuCisgICAgICAg
IChXZWJDb3JlOjpEb2N1bWVudDo6dHJpZ2dlclZpc2liaWxpdHlDaGFuZ2VFdmVudCk6IFRyaWdn
ZXJzIGRvY3VtZW50IHZpc2liaWxpdHkgY2hhbmdlIGV2ZW50LgorICAgICAgICAoV2ViQ29yZTo6
RG9jdW1lbnQ6OmlzVmlzaWJpbGl0eVN0YXRlVmFsdWVWYWxpZCk6IFJldHVybnMgdHJ1ZSBpZiBp
bnB1dCB2aXNpYmlsaXR5IHZhbHVlIGlzIHZhbGlkLgorICAgICAgICAqIGRvbS9Eb2N1bWVudC5o
OiBBZGRlZCBmdW5jdGlvbnMgZm9yIGRvY3VtZW50IHZpc2liaWx0eSBwcm9wZXJ0aWVzIGFuZCB2
aXNpYmlsaXR5IGNoYW5nZSBldmVudHMuCisgICAgICAgICogZG9tL0RvY3VtZW50LmlkbDogQWRk
ZWQgbmV3IGRvY3VtZW50IHByb3BlcnRpZXM6IHZpc2libGUgKGJvb2wpIGFuZCB2aXNpYmlsaXR5
U3RhdGUgKERPTVN0cmluZykuCisgICAgICAgICogZG9tL0V2ZW50TmFtZXMuaDogQWRkZWQgdmlz
aWJpbGl0eWNoYW5nZWV2ZW50LgorICAgICAgICAqIHBhZ2UvRnJhbWUuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6RnJhbWU6OnRyaWdnZXJWaXNpYmlsaXR5Q2hhbmdlRXZlbnQpOiBUcmlnZ2VycyB2
aXNpYmlsaXR5IGNoYW5nZSBpbiBkb2N1bWVudCBhbmQgYWxsCisgICAgICAgIGNoaWxkIGZyYW1l
cy4KKyAgICAgICAgKiBwYWdlL0ZyYW1lLmg6IGRpdHRvLgorICAgICAgICAqIHBhZ2UvUGFnZS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpQYWdlOjpQYWdlKTogVGFrZSBpbml0aWFsIHZpc2libGl0
eSBzdGF0ZSBhcyBpbnB1dCBwYXJhbS4KKyAgICAgICAgKFdlYkNvcmU6OlBhZ2U6OnNldFZpc2li
aWxpdHlTdGF0ZSk6IFNldHMgdmlzaWJpbGl0eSBzdGF0ZS4KKyAgICAgICAgKFdlYkNvcmU6OlBh
Z2U6OnZpc2liaWxpdHlTdGF0ZSk6IFJldHVyc24gY3VycmVudCB2aXNpYmlsaXR5IHN0YXRlLgor
ICAgICAgICAqIHBhZ2UvUGFnZS5oOiBkaXR0by4KKyAgICAgICAgKiBzdmcvZ3JhcGhpY3MvU1ZH
SW1hZ2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHSW1hZ2U6OmRhdGFDaGFuZ2VkKTogUGFz
cyBpbml0aWFsIHZpc2liaWxpdHkgdG8gUGFnZSBjb25zdHJ1Y3Rvci4KKwogMjAxMS0wMi0wNiAg
Unlvc3VrZSBOaXdhICA8cm5pd2FAd2Via2l0Lm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBE
YXJpbiBBZGxlci4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NvbmZpZ3VyYXRpb25zL0Zl
YXR1cmVEZWZpbmVzLnhjY29uZmlnIGIvU291cmNlL1dlYkNvcmUvQ29uZmlndXJhdGlvbnMvRmVh
dHVyZURlZmluZXMueGNjb25maWcKaW5kZXggMzk3MTAzNy4uM2JkMjA3MSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcKKysr
IGIvU291cmNlL1dlYkNvcmUvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcK
QEAgLTg5LDYgKzg5LDcgQEAgRU5BQkxFX01BVEhNTCA9IEVOQUJMRV9NQVRITUw7CiBFTkFCTEVf
TUVURVJfVEFHID0gRU5BQkxFX01FVEVSX1RBRzsKIEVOQUJMRV9OT1RJRklDQVRJT05TID0gOwog
RU5BQkxFX09GRkxJTkVfV0VCX0FQUExJQ0FUSU9OUyA9IEVOQUJMRV9PRkZMSU5FX1dFQl9BUFBM
SUNBVElPTlM7CitFTkFCTEVfUEFHRV9WSVNJQklMSVRZX0FQSSA9IDsKIEVOQUJMRV9QUk9HUkVT
U19UQUcgPSBFTkFCTEVfUFJPR1JFU1NfVEFHOwogCiBFTkFCTEVfUkVHSVNURVJfUFJPVE9DT0xf
SEFORExFUiA9IDsKQEAgLTEyNSw0ICsxMjYsNCBAQCBFTkFCTEVfWEhUTUxNUCA9IDsKIEVOQUJM
RV9YUEFUSCA9IEVOQUJMRV9YUEFUSDsKIEVOQUJMRV9YU0xUID0gRU5BQkxFX1hTTFQ7CiAKLUZF
QVRVUkVfREVGSU5FUyA9ICQoRU5BQkxFX0xJTktfUFJFRkVUQ0gpICQoRU5BQkxFX0FDQ0VMRVJB
VEVEXzJEX0NBTlZBUykgJChFTkFCTEVfV0VCR0wpICQoRU5BQkxFXzNEX1JFTkRFUklORykgJChF
TkFCTEVfQkxPQikgJChFTkFCTEVfQ0hBTk5FTF9NRVNTQUdJTkcpICQoRU5BQkxFX0NMSUVOVF9C
QVNFRF9HRU9MT0NBVElPTikgJChFTkFCTEVfREFUQUJBU0UpICQoRU5BQkxFX0RBVEFHUklEKSAk
KEVOQUJMRV9EQVRBTElTVCkgJChFTkFCTEVfREVWSUNFX09SSUVOVEFUSU9OKSAkKEVOQUJMRV9E
SVJFQ1RPUllfVVBMT0FEKSAkKEVOQUJMRV9ET01fU1RPUkFHRSkgJChFTkFCTEVfRVZFTlRTT1VS
Q0UpICQoRU5BQkxFX0ZJTFRFUlMpICQoRU5BQkxFX0ZJTEVfU1lTVEVNKSAkKEVOQUJMRV9GVUxM
U0NSRUVOX0FQSSkgJChFTkFCTEVfR0VPTE9DQVRJT04pICQoRU5BQkxFX0lDT05EQVRBQkFTRSkg
JChFTkFCTEVfSU1BR0VfUkVTSVpFUikgJChFTkFCTEVfSU5ERVhFRF9EQVRBQkFTRSkgJChFTkFC
TEVfSU5QVVRfU1BFRUNIKSAkKEVOQUJMRV9KQVZBU0NSSVBUX0RFQlVHR0VSKSAkKEVOQUJMRV9N
QVRITUwpICQoRU5BQkxFX01FVEVSX1RBRykgJChFTkFCTEVfTk9USUZJQ0FUSU9OUykgJChFTkFC
TEVfT0ZGTElORV9XRUJfQVBQTElDQVRJT05TKSAkKEVOQUJMRV9QUk9HUkVTU19UQUcpICQoRU5B
QkxFX1JFR0lTVEVSX1BST1RPQ09MX0hBTkRMRVIpICQoRU5BQkxFX1NIQVJFRF9XT1JLRVJTKSAk
KEVOQUJMRV9TVkcpICQoRU5BQkxFX1NWR19BTklNQVRJT04pICQoRU5BQkxFX1NWR19BU19JTUFH
RSkgJChFTkFCTEVfU1ZHX0RPTV9PQkpDX0JJTkRJTkdTKSAkKEVOQUJMRV9TVkdfRk9OVFMpICQo
RU5BQkxFX1NWR19GT1JFSUdOX09CSkVDVCkgJChFTkFCTEVfU1ZHX1VTRSkgJChFTkFCTEVfVklE
RU8pICQoRU5BQkxFX01FRElBX1NUQVRJU1RJQ1MpICQoRU5BQkxFX1dFQl9BVURJTykgJChFTkFC
TEVfV0VCX1NPQ0tFVFMpICQoRU5BQkxFX1dFQl9USU1JTkcpICQoRU5BQkxFX1dNTCkgJChFTkFC
TEVfV09SS0VSUykgJChFTkFCTEVfWEhUTUxNUCkgJChFTkFCTEVfWFBBVEgpICQoRU5BQkxFX1hT
TFQpOworRkVBVFVSRV9ERUZJTkVTID0gJChFTkFCTEVfTElOS19QUkVGRVRDSCkgJChFTkFCTEVf
QUNDRUxFUkFURURfMkRfQ0FOVkFTKSAkKEVOQUJMRV9XRUJHTCkgJChFTkFCTEVfM0RfUkVOREVS
SU5HKSAkKEVOQUJMRV9CTE9CKSAkKEVOQUJMRV9DSEFOTkVMX01FU1NBR0lORykgJChFTkFCTEVf
Q0xJRU5UX0JBU0VEX0dFT0xPQ0FUSU9OKSAkKEVOQUJMRV9EQVRBQkFTRSkgJChFTkFCTEVfREFU
QUdSSUQpICQoRU5BQkxFX0RBVEFMSVNUKSAkKEVOQUJMRV9ERVZJQ0VfT1JJRU5UQVRJT04pICQo
RU5BQkxFX0RJUkVDVE9SWV9VUExPQUQpICQoRU5BQkxFX0RPTV9TVE9SQUdFKSAkKEVOQUJMRV9F
VkVOVFNPVVJDRSkgJChFTkFCTEVfRklMVEVSUykgJChFTkFCTEVfRklMRV9TWVNURU0pICQoRU5B
QkxFX0ZVTExTQ1JFRU5fQVBJKSAkKEVOQUJMRV9HRU9MT0NBVElPTikgJChFTkFCTEVfSUNPTkRB
VEFCQVNFKSAkKEVOQUJMRV9JTUFHRV9SRVNJWkVSKSAkKEVOQUJMRV9JTkRFWEVEX0RBVEFCQVNF
KSAkKEVOQUJMRV9JTlBVVF9TUEVFQ0gpICQoRU5BQkxFX0pBVkFTQ1JJUFRfREVCVUdHRVIpICQo
RU5BQkxFX01BVEhNTCkgJChFTkFCTEVfTUVURVJfVEFHKSAkKEVOQUJMRV9OT1RJRklDQVRJT05T
KSAkKEVOQUJMRV9PRkZMSU5FX1dFQl9BUFBMSUNBVElPTlMpICQoRU5BQkxFX1BBR0VfVklTSUJJ
TElUWV9BUEkpICQoRU5BQkxFX1BST0dSRVNTX1RBRykgJChFTkFCTEVfUkVHSVNURVJfUFJPVE9D
T0xfSEFORExFUikgJChFTkFCTEVfU0hBUkVEX1dPUktFUlMpICQoRU5BQkxFX1NWRykgJChFTkFC
TEVfU1ZHX0FOSU1BVElPTikgJChFTkFCTEVfU1ZHX0FTX0lNQUdFKSAkKEVOQUJMRV9TVkdfRE9N
X09CSkNfQklORElOR1MpICQoRU5BQkxFX1NWR19GT05UUykgJChFTkFCTEVfU1ZHX0ZPUkVJR05f
T0JKRUNUKSAkKEVOQUJMRV9TVkdfVVNFKSAkKEVOQUJMRV9WSURFTykgJChFTkFCTEVfTUVESUFf
U1RBVElTVElDUykgJChFTkFCTEVfV0VCX0FVRElPKSAkKEVOQUJMRV9XRUJfU09DS0VUUykgJChF
TkFCTEVfV0VCX1RJTUlORykgJChFTkFCTEVfV01MKSAkKEVOQUJMRV9XT1JLRVJTKSAkKEVOQUJM
RV9YSFRNTE1QKSAkKEVOQUJMRV9YUEFUSCkgJChFTkFCTEVfWFNMVCk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhw
LmluCmluZGV4IDBhNWMwOGYuLmM3OWJiYTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUuZXhwLmluCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCkBAIC02NTgs
NyArNjU4LDcgQEAgX19aTjdXZWJDb3JlNFBhZ2U2Z29CYWNrRXYKIF9fWk43V2ViQ29yZTRQYWdl
OGdvVG9JdGVtRVBOU18xMUhpc3RvcnlJdGVtRU5TXzEzRnJhbWVMb2FkVHlwZUUKIF9fWk43V2Vi
Q29yZTRQYWdlOWdvRm9yd2FyZEV2CiBfX1pON1dlYkNvcmU0UGFnZTlpbml0R3JvdXBFdgotX19a
TjdXZWJDb3JlNFBhZ2VDMUVSS05TMF8xMVBhZ2VDbGllbnRzRQorX19aTjdXZWJDb3JlNFBhZ2VD
MUVSS05TMF8xMVBhZ2VDbGllbnRzRVJLTjNXVEY2U3RyaW5nRQogX19aTjdXZWJDb3JlNFBhZ2VE
MUV2CiBfX1pON1dlYkNvcmU0UGF0aDE0YWRkUm91bmRlZFJlY3RFUktOU185RmxvYXRSZWN0RVJL
TlNfOUZsb2F0U2l6ZUUKIF9fWk43V2ViQ29yZTRQYXRoQzFFdgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5j
cHAKaW5kZXggMTA3OTJmYy4uZjY2ODU3NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9t
L0RvY3VtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCkBAIC0x
Mzg0LDYgKzEzODQsMzIgQEAgdm9pZCBEb2N1bWVudDo6cmVtb3ZlVGl0bGUoRWxlbWVudCogdGl0
bGVFbGVtZW50KQogICAgIH0KIH0KIAorI2lmIEVOQUJMRShQQUdFX1ZJU0lCSUxJVFlfQVBJKQor
U3RyaW5nIERvY3VtZW50Ojp2aXNpYmlsaXR5U3RhdGUoKSBjb25zdAoreworICAgIGlmICghbV9m
cmFtZSB8fCAhbV9mcmFtZS0+cGFnZSgpKQorICAgICAgICByZXR1cm4gInZpc2libGUiOworICAg
IHJldHVybiBtX2ZyYW1lLT5wYWdlKCktPnZpc2liaWxpdHlTdGF0ZSgpOworfQorCitib29sIERv
Y3VtZW50Ojp2aXNpYmxlKCkgY29uc3QKK3sKKyAgICByZXR1cm4gdmlzaWJpbGl0eVN0YXRlKCkg
PT0gInZpc2libGUiOworfQorCit2b2lkIERvY3VtZW50Ojp0cmlnZ2VyVmlzaWJpbGl0eUNoYW5n
ZUV2ZW50KCkKK3sKKyAgICBkaXNwYXRjaEV2ZW50KEV2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygp
LnZpc2liaWxpdHljaGFuZ2VFdmVudCwgZmFsc2UsIGZhbHNlKSk7Cit9CisKK2Jvb2wgRG9jdW1l
bnQ6OmlzVmlzaWJpbGl0eVN0YXRlVmFsdWVWYWxpZChjb25zdCBTdHJpbmcmIHZpc2liaWxpdHlT
dGF0ZSkKK3sKKyAgICBpZiAodmlzaWJpbGl0eVN0YXRlID09ICJ2aXNpYmxlIiB8fCB2aXNpYmls
aXR5U3RhdGUgPT0gImhpZGRlbiIpCisgICAgICAgIHJldHVybiB0cnVlOworICAgIHJldHVybiBm
YWxzZTsKK30KKyNlbmRpZgorCiBTdHJpbmcgRG9jdW1lbnQ6Om5vZGVOYW1lKCkgY29uc3QKIHsK
ICAgICByZXR1cm4gIiNkb2N1bWVudCI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20v
RG9jdW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCmluZGV4IDk0NmU1N2Eu
LmQ5M2M4OTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCkBAIC0yOTgsNiArMjk4LDkgQEAgcHVibGlj
OgogI2lmIEVOQUJMRShGVUxMU0NSRUVOX0FQSSkKICAgICBERUZJTkVfQVRUUklCVVRFX0VWRU5U
X0xJU1RFTkVSKHdlYmtpdGZ1bGxzY3JlZW5jaGFuZ2UpOwogI2VuZGlmCisjaWYgRU5BQkxFKFBB
R0VfVklTSUJJTElUWV9BUEkpCisgICAgREVGSU5FX0FUVFJJQlVURV9FVkVOVF9MSVNURU5FUih2
aXNpYmlsaXR5Y2hhbmdlKTsKKyNlbmRpZgogCiAgICAgVmlld3BvcnRBcmd1bWVudHMgdmlld3Bv
cnRBcmd1bWVudHMoKSBjb25zdCB7IHJldHVybiBtX3ZpZXdwb3J0QXJndW1lbnRzOyB9CiAKQEAg
LTM3NCw2ICszNzcsMTMgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCBLVVJMIGJhc2VVUkkoKSBj
b25zdDsKIAorI2lmIEVOQUJMRShQQUdFX1ZJU0lCSUxJVFlfQVBJKQorICAgIFN0cmluZyB2aXNp
YmlsaXR5U3RhdGUoKSBjb25zdDsKKyAgICBib29sIHZpc2libGUoKSBjb25zdDsKKyAgICB2b2lk
IHRyaWdnZXJWaXNpYmlsaXR5Q2hhbmdlRXZlbnQoKTsKKyAgICBzdGF0aWMgYm9vbCBpc1Zpc2li
aWxpdHlTdGF0ZVZhbHVlVmFsaWQoY29uc3QgU3RyaW5nJik7CisjZW5kaWYKKwogICAgIFBhc3NS
ZWZQdHI8Tm9kZT4gYWRvcHROb2RlKFBhc3NSZWZQdHI8Tm9kZT4gc291cmNlLCBFeGNlcHRpb25D
b2RlJik7CiAKICAgICBQYXNzUmVmUHRyPEhUTUxDb2xsZWN0aW9uPiBpbWFnZXMoKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9k
b20vRG9jdW1lbnQuaWRsCmluZGV4IGMyMTVkZjAuLmU2MDBiNDAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3Vt
ZW50LmlkbApAQCAtMzQyLDYgKzM0MiwxMSBAQCBtb2R1bGUgY29yZSB7CiAgICAgICAgIGJvb2xl
YW4gaXNIVE1MRG9jdW1lbnQoKTsKICNlbmRpZgogCisjaWYgZGVmaW5lZChFTkFCTEVfUEFHRV9W
SVNJQklMSVRZX0FQSSkgJiYgRU5BQkxFX1BBR0VfVklTSUJJTElUWV9BUEkKKyAgICAgICAgcmVh
ZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyB2aXNpYmlsaXR5U3RhdGU7CisgICAgICAgIHJlYWRv
bmx5IGF0dHJpYnV0ZSBib29sZWFuIHZpc2libGU7CisjZW5kaWYKKwogICAgIH07CiAKIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudE5hbWVzLmggYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vRXZlbnROYW1lcy5oCmluZGV4IDQzOWU5ZDguLmQyNjhmODQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9FdmVudE5hbWVzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0V2
ZW50TmFtZXMuaApAQCAtMTA1LDYgKzEwNSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICBt
YWNybyh0ZXh0SW5wdXQpIFwKICAgICBtYWNybyh1bmxvYWQpIFwKICAgICBtYWNybyh1cGRhdGVy
ZWFkeSkgXAorICAgIG1hY3JvKHZpc2liaWxpdHljaGFuZ2UpIFwKICAgICBtYWNybyh3cml0ZSkg
XAogICAgIG1hY3JvKHdyaXRlZW5kKSBcCiAgICAgbWFjcm8od3JpdGVzdGFydCkgXApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0ZyYW1lLmNwcAppbmRleCAwYzFhMmRjLi5lYWZlZWIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0ZyYW1lLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lLmNwcApA
QCAtNjc1LDYgKzY3NSwxNiBAQCB2b2lkIEZyYW1lOjpzZXRET01XaW5kb3coRE9NV2luZG93KiBk
b21XaW5kb3cpCiAgICAgbV9kb21XaW5kb3cgPSBkb21XaW5kb3c7CiB9CiAKKyNpZiBFTkFCTEUo
UEFHRV9WSVNJQklMSVRZX0FQSSkKK3ZvaWQgRnJhbWU6OnRyaWdnZXJWaXNpYmlsaXR5Q2hhbmdl
RXZlbnQoKQoreworICAgIGlmIChtX2RvYykKKyAgICAgICAgbV9kb2MtPnRyaWdnZXJWaXNpYmls
aXR5Q2hhbmdlRXZlbnQoKTsKKyAgICBmb3IgKEZyYW1lKiBjaGlsZCA9IHRyZWUoKS0+Zmlyc3RD
aGlsZCgpOyBjaGlsZDsgY2hpbGQgPSBjaGlsZC0+dHJlZSgpLT5uZXh0U2libGluZygpKQorICAg
ICAgICBjaGlsZC0+dHJpZ2dlclZpc2liaWxpdHlDaGFuZ2VFdmVudCgpOworfQorI2VuZGlmCisK
IERPTVdpbmRvdyogRnJhbWU6OmRvbVdpbmRvdygpIGNvbnN0CiB7CiAgICAgaWYgKCFtX2RvbVdp
bmRvdykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWUuaCBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvRnJhbWUuaAppbmRleCBhMWU1YzEwLi5hNTNmNTIxIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFt
ZS5oCkBAIC0xMTgsNiArMTE4LDEwIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogICAgICAgICB2
b2lkIHRyYW5zZmVyQ2hpbGRGcmFtZVRvTmV3RG9jdW1lbnQoKTsKIAorI2lmIEVOQUJMRShQQUdF
X1ZJU0lCSUxJVFlfQVBJKQorICAgICAgICB2b2lkIHRyaWdnZXJWaXNpYmlsaXR5Q2hhbmdlRXZl
bnQoKTsKKyNlbmRpZgorCiAgICAgLy8gPT09PT09PT0gQWxsIHB1YmxpYyBmdW5jdGlvbnMgYmVs
b3cgdGhpcyBwb2ludCBhcmUgY2FuZGlkYXRlcyB0byBtb3ZlIG91dCBvZiBGcmFtZSBpbnRvIGFu
b3RoZXIgY2xhc3MuID09PT09PT09CiAKICAgICAgICAgYm9vbCBpc0Rpc2Nvbm5lY3RlZCgpIGNv
bnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvUGFnZS5jcHAKaW5kZXggZDIxODc0ZS4uZmUxYzA3ZCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1Bh
Z2UuY3BwCkBAIC0xMTYsNyArMTE2LDcgQEAgc3RhdGljIHZvaWQgbmV0d29ya1N0YXRlQ2hhbmdl
ZCgpCiAgICAgICAgIGZyYW1lc1tpXS0+ZG9jdW1lbnQoKS0+ZGlzcGF0Y2hXaW5kb3dFdmVudChF
dmVudDo6Y3JlYXRlKGV2ZW50TmFtZSwgZmFsc2UsIGZhbHNlKSk7CiB9CiAKLVBhZ2U6OlBhZ2Uo
Y29uc3QgUGFnZUNsaWVudHMmIHBhZ2VDbGllbnRzKQorUGFnZTo6UGFnZShjb25zdCBQYWdlQ2xp
ZW50cyYgcGFnZUNsaWVudHMsIGNvbnN0IFN0cmluZyYgaW5pdGlhbFZpc2liaWxpdHlTdGF0ZSkK
ICAgICA6IG1fY2hyb21lKGFkb3B0UHRyKG5ldyBDaHJvbWUodGhpcywgcGFnZUNsaWVudHMuY2hy
b21lQ2xpZW50KSkpCiAgICAgLCBtX2RyYWdDYXJldENvbnRyb2xsZXIoYWRvcHRQdHIobmV3IFNl
bGVjdGlvbkNvbnRyb2xsZXIoMCwgdHJ1ZSkpKQogI2lmIEVOQUJMRShEUkFHX1NVUFBPUlQpCkBA
IC0xNjEsNiArMTYxLDkgQEAgUGFnZTo6UGFnZShjb25zdCBQYWdlQ2xpZW50cyYgcGFnZUNsaWVu
dHMpCiAgICAgLCBtX2N1c3RvbUhUTUxUb2tlbml6ZXJDaHVua1NpemUoLTEpCiAgICAgLCBtX2Nh
blN0YXJ0TWVkaWEodHJ1ZSkKICAgICAsIG1fdmlld01vZGUoVmlld01vZGVXaW5kb3dlZCkKKyNp
ZiBFTkFCTEUoUEFHRV9WSVNJQklMSVRZX0FQSSkKKyAgICAsIG1fdmlzaWJpbGl0eVN0YXRlKGlu
aXRpYWxWaXNpYmlsaXR5U3RhdGUpCisjZW5kaWYKIHsKICAgICBpZiAoIWFsbFBhZ2VzKSB7CiAg
ICAgICAgIGFsbFBhZ2VzID0gbmV3IEhhc2hTZXQ8UGFnZSo+OwpAQCAtOTA2LDYgKzkwOSwyNSBA
QCB2b2lkIFBhZ2U6OmNoZWNrRnJhbWVDb3VudENvbnNpc3RlbmN5KCkgY29uc3QKIH0KICNlbmRp
ZgogCisjaWYgRU5BQkxFKFBBR0VfVklTSUJJTElUWV9BUEkpCit2b2lkIFBhZ2U6OnNldFZpc2li
aWxpdHlTdGF0ZShjb25zdCBTdHJpbmcmIHZpc2liaWxpdHlTdGF0ZSkKK3sKKyAgICBpZiAoIURv
Y3VtZW50Ojppc1Zpc2liaWxpdHlTdGF0ZVZhbHVlVmFsaWQodmlzaWJpbGl0eVN0YXRlKSkKKyAg
ICAgICAgcmV0dXJuOworICAgIGlmIChtX3Zpc2liaWxpdHlTdGF0ZSA9PSB2aXNpYmlsaXR5U3Rh
dGUpCisgICAgICAgIHJldHVybjsKKyAgICBtX3Zpc2liaWxpdHlTdGF0ZSA9IHZpc2liaWxpdHlT
dGF0ZTsKKworICAgIGlmIChtX21haW5GcmFtZSkKKyAgICAgICAgbV9tYWluRnJhbWUtPnRyaWdn
ZXJWaXNpYmlsaXR5Q2hhbmdlRXZlbnQoKTsKK30KKworU3RyaW5nIFBhZ2U6OnZpc2liaWxpdHlT
dGF0ZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fdmlzaWJpbGl0eVN0YXRlOworfQorI2VuZGlm
CisKIFBhZ2U6OlBhZ2VDbGllbnRzOjpQYWdlQ2xpZW50cygpCiAgICAgOiBjaHJvbWVDbGllbnQo
MCkKICAgICAsIGNvbnRleHRNZW51Q2xpZW50KDApCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL1BhZ2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oCmluZGV4IDA3MWIxNDIu
Ljc4OWUzNzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oCkBAIC0xMTUsNyArMTE1LDcgQEAgbmFtZXNwYWNlIFdl
YkNvcmUgewogICAgICAgICAgICAgU3BlZWNoSW5wdXRDbGllbnQqIHNwZWVjaElucHV0Q2xpZW50
OwogICAgICAgICB9OwogCi0gICAgICAgIFBhZ2UoY29uc3QgUGFnZUNsaWVudHMmKTsKKyAgICAg
ICAgUGFnZShjb25zdCBQYWdlQ2xpZW50cyYsIGNvbnN0IFN0cmluZyYgaW5pdGlhbFZpc2liaWxp
dHlTdGF0ZT0idmlzaWJsZSIpOwogICAgICAgICB+UGFnZSgpOwogCiAgICAgICAgIFJlbmRlclRo
ZW1lKiB0aGVtZSgpIGNvbnN0IHsgcmV0dXJuIG1fdGhlbWUuZ2V0KCk7IH07CkBAIC0yODcsNiAr
Mjg3LDEyIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgLy8gcmVjdXJzaXZlIGZyYW1l
c2V0IHBhZ2VzIGNhbiBxdWlja2x5IGJyaW5nIHRoZSBwcm9ncmFtIHRvIGl0cyBrbmVlcwogICAg
ICAgICAvLyB3aXRoIGV4cG9uZW50aWFsIGdyb3d0aCBpbiB0aGUgbnVtYmVyIG9mIGZyYW1lcy4K
ICAgICAgICAgc3RhdGljIGNvbnN0IGludCBtYXhOdW1iZXJPZkZyYW1lcyA9IDEwMDA7CisKKyNp
ZiBFTkFCTEUoUEFHRV9WSVNJQklMSVRZX0FQSSkKKyAgICAgICAgU3RyaW5nIHZpc2liaWxpdHlT
dGF0ZSgpIGNvbnN0OworICAgICAgICB2b2lkIHNldFZpc2liaWxpdHlTdGF0ZShjb25zdCBTdHJp
bmcmKTsKKyNlbmRpZgorCiAgICAgcHJpdmF0ZToKICAgICAgICAgdm9pZCBpbml0R3JvdXAoKTsK
IApAQCAtMzg2LDYgKzM5MiwxMSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIFZpZXdN
b2RlIG1fdmlld01vZGU7CiAKICAgICAgICAgVmlld3BvcnRBcmd1bWVudHMgbV92aWV3cG9ydEFy
Z3VtZW50czsKKworI2lmIEVOQUJMRShQQUdFX1ZJU0lCSUxJVFlfQVBJKQorICAgICAgICBTdHJp
bmcgbV92aXNpYmlsaXR5U3RhdGU7CisjZW5kaWYKKwogICAgIH07CiAKIH0gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9ncmFwaGljcy9TVkdJbWFn
ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvZ3JhcGhpY3MvU1ZHSW1hZ2UuY3BwCmluZGV4IGZj
MmZkMDguLjQ2YzBiODMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9ncmFwaGljcy9T
VkdJbWFnZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL2dyYXBoaWNzL1NWR0ltYWdlLmNw
cApAQCAtMjY1LDcgKzI2NSwxMSBAQCBib29sIFNWR0ltYWdlOjpkYXRhQ2hhbmdlZChib29sIGFs
bERhdGFSZWNlaXZlZCkKICAgICAgICAgLy8gRklYTUU6IElmIHRoaXMgU1ZHIGVuZHMgdXAgbG9h
ZGluZyBpdHNlbGYsIHdlIG1pZ2h0IGxlYWsgdGhlIHdvcmxkLgogICAgICAgICAvLyBUaGUgY29t
bWVudCBzYWlkIHRoYXQgdGhlIENhY2hlIGNvZGUgZG9lcyBub3Qga25vdyBhYm91dCBDYWNoZWRJ
bWFnZXMKICAgICAgICAgLy8gaG9sZGluZyBGcmFtZXMgYW5kIHdvbid0IGtub3cgdG8gYnJlYWsg
dGhlIGN5Y2xlLiBCdXQgCi0gICAgICAgIG1fcGFnZS5zZXQobmV3IFBhZ2UocGFnZUNsaWVudHMp
KTsKKyAgICAgICAgbV9wYWdlLnNldChuZXcgUGFnZShwYWdlQ2xpZW50cworI2lmIEVOQUJMRShQ
QUdFX1ZJU0lCSUxJVFlfQVBJKQorICAgICAgICAgICAgLCAidmlzaWJsZSIKKyNlbmRpZgorICAg
ICAgICApKTsKICAgICAgICAgbV9wYWdlLT5zZXR0aW5ncygpLT5zZXRNZWRpYUVuYWJsZWQoZmFs
c2UpOwogICAgICAgICBtX3BhZ2UtPnNldHRpbmdzKCktPnNldEphdmFTY3JpcHRFbmFibGVkKGZh
bHNlKTsKICAgICAgICAgbV9wYWdlLT5zZXR0aW5ncygpLT5zZXRQbHVnaW5zRW5hYmxlZChmYWxz
ZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZyBiL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4IDk4NWVlNzAuLjA3ODJjMTIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTkgQEAKKzIwMTEtMDItMTAgIFNoaXNo
aXIgQWdyYXdhbCAgPHNoaXNoaXJAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEltcGxlbWVudCBQYWdlIFZpc2liaWxpdHkgQVBJ
LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTQxODEK
KworICAgICAgICAqIGZlYXR1cmVzLmd5cGk6CisgICAgICAgICogcHVibGljL1dlYlZpZXcuaDog
QWRkZWQgZnVuY3Rpb24gdG8gc2V0IHZpc2liaWx0eSBzdGF0ZS4KKyAgICAgICAgKiBwdWJsaWMv
V2ViVmlld0NsaWVudC5oOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3Q2xpZW50Ojp2aXNpYmls
aXR5U3RhdGUpOiBSZXR1cm5zIHZpc2liaWxpdHkgc3RhdGUuCisgICAgICAgICogc3JjL1dlYlZp
ZXdJbXBsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OldlYlZpZXdJbXBsKTog
UGFzcyBpbml0aWFsIHZpc2liaWxpdHkgdG8gUGFnZSBjb25zdHJ1Y3Rvci4KKyAgICAgICAgKFdl
YktpdDo6V2ViVmlld0ltcGw6OnNldFZpc2liaWxpdHlTdGF0ZSk6IFNldCB2aXNpYmlsaXR5IHN0
YXRlIG9mIHRoZSB1bmRlcmx5aW5nIFBhZ2UuCisgICAgICAgICogc3JjL1dlYlZpZXdJbXBsLmg6
IGRpdHRvLgorCiAyMDExLTAyLTA0ICBDaGFybGllIFJlaXMgIDxjcmVpc0BjaHJvbWl1bS5vcmc+
CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgTWloYWkgUGFycGFyaXRhLgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9jaHJvbWl1bS9mZWF0dXJlcy5neXBpIGIvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9mZWF0dXJlcy5neXBpCmluZGV4IGQyMTg0Y2YuLmVjZGZlNzkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vZmVhdHVyZXMuZ3lwaQorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL2ZlYXR1cmVzLmd5cGkKQEAgLTY4LDYgKzY4LDcgQEAKICAgICAgICAgJ0VOQUJMRV9PRkZM
SU5FX1dFQl9BUFBMSUNBVElPTlM9MScsCiAgICAgICAgICdFTkFCTEVfT1BFTlRZUEVfU0FOSVRJ
WkVSPTEnLAogICAgICAgICAnRU5BQkxFX09SSUVOVEFUSU9OX0VWRU5UUz0wJywKKyAgICAgICAg
J0VOQUJMRV9QQUdFX1ZJU0lCSUxJVFlfQVBJPTEnLAogICAgICAgICAnRU5BQkxFX1BST0dSRVNT
X1RBRz0xJywKICAgICAgICAgJ0VOQUJMRV9SRUdJU1RFUl9QUk9UT0NPTF9IQU5ETEVSPTAnLAog
ICAgICAgICAnRU5BQkxFX1JFUVVFU1RfQU5JTUFUSU9OX0ZSQU1FPTEnLApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViVmlldy5oIGIvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9wdWJsaWMvV2ViVmlldy5oCmluZGV4IDQyNDM5OTguLjgwNmNlNjUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlZpZXcuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJWaWV3LmgKQEAgLTM2NCw2ICszNjQsMTMgQEAgcHVi
bGljOgogICAgIC8vIEFQSXMuCiAgICAgdmlydHVhbCBXZWJHcmFwaGljc0NvbnRleHQzRCogZ3Jh
cGhpY3NDb250ZXh0M0QoKSA9IDA7CiAKKyAgICAvLyBWaXNpYmlsaXR5IC0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyNpZiBkZWZp
bmVkKEVOQUJMRV9QQUdFX1ZJU0lCSUxJVFlfQVBJKSAmJiBFTkFCTEVfUEFHRV9WSVNJQklMSVRZ
X0FQSQorICAgIC8vIFNldHMgdGhlIHZpc2liaWxpdHkgb2YgdGhlIFdlYlZpZXcuCisgICAgdmly
dHVhbCB2b2lkIHNldFZpc2liaWxpdHlTdGF0ZShjb25zdCBXZWJTdHJpbmcmKSA9IDA7CisjZW5k
aWYKKwogcHJvdGVjdGVkOgogICAgIH5XZWJWaWV3KCkge30KIH07CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJWaWV3Q2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3B1YmxpYy9XZWJWaWV3Q2xpZW50LmgKaW5kZXggODhlMzZhZC4uMWQwNTY1MSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViVmlld0NsaWVudC5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlZpZXdDbGllbnQuaApAQCAt
MzMzLDYgKzMzMywxMyBAQCBwdWJsaWM6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGNvbnN0IFdlYlN0cmluZyYgdXJsLAogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBjb25zdCBXZWJTdHJpbmcmIHRpdGxlKSB7IH0KIAorICAgIC8vIFZp
c2liaWxpdHkgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0KKworI2lmIGRlZmluZWQoRU5BQkxFX1BBR0VfVklTSUJJTElUWV9BUEkpICYm
IEVOQUJMRV9QQUdFX1ZJU0lCSUxJVFlfQVBJCisgICAgLy8gQ3VycmVudCB2aXNpYmlsaXR5Lgor
ICAgIHZpcnR1YWwgV2ViU3RyaW5nIHZpc2liaWxpdHlTdGF0ZSgpIGNvbnN0IHsgcmV0dXJuIFdl
YlN0cmluZygidmlzaWJsZSIpOyB9CisjZW5kaWYKKwogcHJvdGVjdGVkOgogICAgIH5XZWJWaWV3
Q2xpZW50KCkgeyB9CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMv
V2ViVmlld0ltcGwuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwu
Y3BwCmluZGV4IDIwMDc0NGQuLmVkNTlkMTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vc3JjL1dlYlZpZXdJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Ny
Yy9XZWJWaWV3SW1wbC5jcHAKQEAgLTMzNiw3ICszMzYsMTEgQEAgV2ViVmlld0ltcGw6OldlYlZp
ZXdJbXBsKFdlYlZpZXdDbGllbnQqIGNsaWVudCwgV2ViRGV2VG9vbHNBZ2VudENsaWVudCogZGV2
VG9vbHMKICAgICBwYWdlQ2xpZW50cy5nZW9sb2NhdGlvbkNsaWVudCA9IG1fZ2VvbG9jYXRpb25D
bGllbnRQcm94eS5nZXQoKTsKICAgICBwYWdlQ2xpZW50cy5iYWNrRm9yd2FyZENsaWVudCA9IEJh
Y2tGb3J3YXJkTGlzdENocm9taXVtOjpjcmVhdGUodGhpcyk7CiAKLSAgICBtX3BhZ2Uuc2V0KG5l
dyBQYWdlKHBhZ2VDbGllbnRzKSk7CisgICAgbV9wYWdlLnNldChuZXcgUGFnZShwYWdlQ2xpZW50
cworI2lmIGRlZmluZWQoRU5BQkxFX1BBR0VfVklTSUJJTElUWV9BUEkpICYmIEVOQUJMRV9QQUdF
X1ZJU0lCSUxJVFlfQVBJCisgICAgICAgICwgbV9jbGllbnQtPnZpc2liaWxpdHlTdGF0ZSgpCisj
ZW5kaWYKKyAgICApKTsKIAogICAgIG1fZ2VvbG9jYXRpb25DbGllbnRQcm94eS0+c2V0Q29udHJv
bGxlcihtX3BhZ2UtPmdlb2xvY2F0aW9uQ29udHJvbGxlcigpKTsKIApAQCAtMTYzOCw2ICsxNjQy
LDE1IEBAIHZvaWQgV2ViVmlld0ltcGw6OmZ1bGxGcmFtZVBsdWdpblpvb21MZXZlbENoYW5nZWQo
ZG91YmxlIHpvb21MZXZlbCkKICAgICBtX2NsaWVudC0+em9vbUxldmVsQ2hhbmdlZCgpOwogfQog
CisjaWYgZGVmaW5lZChFTkFCTEVfUEFHRV9WSVNJQklMSVRZX0FQSSkgJiYgRU5BQkxFX1BBR0Vf
VklTSUJJTElUWV9BUEkKK3ZvaWQgV2ViVmlld0ltcGw6OnNldFZpc2liaWxpdHlTdGF0ZShjb25z
dCBXZWJTdHJpbmcmIHZpc2liaWxpdHlTdGF0ZSkKK3sKKyAgICBpZiAoIW1fcGFnZSkKKyAgICAg
ICAgcmV0dXJuOworICAgIG1fcGFnZS0+c2V0VmlzaWJpbGl0eVN0YXRlKHZpc2liaWxpdHlTdGF0
ZSk7Cit9CisjZW5kaWYKKwogZG91YmxlIFdlYlZpZXc6Onpvb21MZXZlbFRvWm9vbUZhY3Rvcihk
b3VibGUgem9vbUxldmVsKQogewogICAgIHJldHVybiBzdGQ6OnBvdyh0ZXh0U2l6ZU11bHRpcGxp
ZXJSYXRpbywgem9vbUxldmVsKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
c3JjL1dlYlZpZXdJbXBsLmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1w
bC5oCmluZGV4IGQxNjRhNDguLjBjNzIwZjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vc3JjL1dlYlZpZXdJbXBsLmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMv
V2ViVmlld0ltcGwuaApAQCAtMzU2LDYgKzM1NiwxMCBAQCBwdWJsaWM6CiAgICAgLy8gYSBwbHVn
aW4gY2FuIHVwZGF0ZSBpdHMgb3duIHpvb20sIHNheSBiZWNhdXNlIG9mIGl0cyBvd24gVUkuCiAg
ICAgdm9pZCBmdWxsRnJhbWVQbHVnaW5ab29tTGV2ZWxDaGFuZ2VkKGRvdWJsZSB6b29tTGV2ZWwp
OwogCisjaWYgZGVmaW5lZChFTkFCTEVfUEFHRV9WSVNJQklMSVRZX0FQSSkgJiYgRU5BQkxFX1BB
R0VfVklTSUJJTElUWV9BUEkKKyAgICB2aXJ0dWFsIHZvaWQgc2V0VmlzaWJpbGl0eVN0YXRlKGNv
bnN0IFdlYlN0cmluZyYpOworI2VuZGlmCisKIHByaXZhdGU6CiAgICAgZnJpZW5kIGNsYXNzIFdl
YlZpZXc7ICAvLyBTbyBXZWJWaWV3OjpDcmVhdGUgY2FuIGNhbGwgb3VyIGNvbnN0cnVjdG9yCiAg
ICAgZnJpZW5kIGNsYXNzIFdURjo6UmVmQ291bnRlZDxXZWJWaWV3SW1wbD47CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VM
b2cKaW5kZXggMTMyZDBlMC4uOGI4OTM1YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMv
Q2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEy
IEBACisyMDExLTAyLTEwICBTaGlzaGlyIEFncmF3YWwgIDxzaGlzaGlyQGNocm9taXVtLm9yZz4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJbXBsZW1l
bnQgUGFnZSBWaXNpYmlsaXR5IEFQSS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTU0MTgxCisKKyAgICAgICAgKiBDb25maWd1cmF0aW9ucy9GZWF0dXJl
RGVmaW5lcy54Y2NvbmZpZzogQWRkIEVOQUJMRV9QQUdFX1ZJU0lCSUxJVFlfQVBJLgorCiAyMDEx
LTAyLTAzICBZdXJ5IFNlbWlraGF0c2t5ICA8eXVyeXNAY2hyb21pdW0ub3JnPgogCiAgICAgICAg
IFJldmlld2VkIGJ5IFBhdmVsIEZlbGRtYW4uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21h
Yy9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZyBiL1NvdXJjZS9XZWJLaXQv
bWFjL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnCmluZGV4IDM5NzEwMzcu
LjNiZDIwNzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL0NvbmZpZ3VyYXRpb25zL0Zl
YXR1cmVEZWZpbmVzLnhjY29uZmlnCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL0NvbmZpZ3VyYXRp
b25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnCkBAIC04OSw2ICs4OSw3IEBAIEVOQUJMRV9NQVRI
TUwgPSBFTkFCTEVfTUFUSE1MOwogRU5BQkxFX01FVEVSX1RBRyA9IEVOQUJMRV9NRVRFUl9UQUc7
CiBFTkFCTEVfTk9USUZJQ0FUSU9OUyA9IDsKIEVOQUJMRV9PRkZMSU5FX1dFQl9BUFBMSUNBVElP
TlMgPSBFTkFCTEVfT0ZGTElORV9XRUJfQVBQTElDQVRJT05TOworRU5BQkxFX1BBR0VfVklTSUJJ
TElUWV9BUEkgPSA7CiBFTkFCTEVfUFJPR1JFU1NfVEFHID0gRU5BQkxFX1BST0dSRVNTX1RBRzsK
IAogRU5BQkxFX1JFR0lTVEVSX1BST1RPQ09MX0hBTkRMRVIgPSA7CkBAIC0xMjUsNCArMTI2LDQg
QEAgRU5BQkxFX1hIVE1MTVAgPSA7CiBFTkFCTEVfWFBBVEggPSBFTkFCTEVfWFBBVEg7CiBFTkFC
TEVfWFNMVCA9IEVOQUJMRV9YU0xUOwogCi1GRUFUVVJFX0RFRklORVMgPSAkKEVOQUJMRV9MSU5L
X1BSRUZFVENIKSAkKEVOQUJMRV9BQ0NFTEVSQVRFRF8yRF9DQU5WQVMpICQoRU5BQkxFX1dFQkdM
KSAkKEVOQUJMRV8zRF9SRU5ERVJJTkcpICQoRU5BQkxFX0JMT0IpICQoRU5BQkxFX0NIQU5ORUxf
TUVTU0FHSU5HKSAkKEVOQUJMRV9DTElFTlRfQkFTRURfR0VPTE9DQVRJT04pICQoRU5BQkxFX0RB
VEFCQVNFKSAkKEVOQUJMRV9EQVRBR1JJRCkgJChFTkFCTEVfREFUQUxJU1QpICQoRU5BQkxFX0RF
VklDRV9PUklFTlRBVElPTikgJChFTkFCTEVfRElSRUNUT1JZX1VQTE9BRCkgJChFTkFCTEVfRE9N
X1NUT1JBR0UpICQoRU5BQkxFX0VWRU5UU09VUkNFKSAkKEVOQUJMRV9GSUxURVJTKSAkKEVOQUJM
RV9GSUxFX1NZU1RFTSkgJChFTkFCTEVfRlVMTFNDUkVFTl9BUEkpICQoRU5BQkxFX0dFT0xPQ0FU
SU9OKSAkKEVOQUJMRV9JQ09OREFUQUJBU0UpICQoRU5BQkxFX0lNQUdFX1JFU0laRVIpICQoRU5B
QkxFX0lOREVYRURfREFUQUJBU0UpICQoRU5BQkxFX0lOUFVUX1NQRUVDSCkgJChFTkFCTEVfSkFW
QVNDUklQVF9ERUJVR0dFUikgJChFTkFCTEVfTUFUSE1MKSAkKEVOQUJMRV9NRVRFUl9UQUcpICQo
RU5BQkxFX05PVElGSUNBVElPTlMpICQoRU5BQkxFX09GRkxJTkVfV0VCX0FQUExJQ0FUSU9OUykg
JChFTkFCTEVfUFJPR1JFU1NfVEFHKSAkKEVOQUJMRV9SRUdJU1RFUl9QUk9UT0NPTF9IQU5ETEVS
KSAkKEVOQUJMRV9TSEFSRURfV09SS0VSUykgJChFTkFCTEVfU1ZHKSAkKEVOQUJMRV9TVkdfQU5J
TUFUSU9OKSAkKEVOQUJMRV9TVkdfQVNfSU1BR0UpICQoRU5BQkxFX1NWR19ET01fT0JKQ19CSU5E
SU5HUykgJChFTkFCTEVfU1ZHX0ZPTlRTKSAkKEVOQUJMRV9TVkdfRk9SRUlHTl9PQkpFQ1QpICQo
RU5BQkxFX1NWR19VU0UpICQoRU5BQkxFX1ZJREVPKSAkKEVOQUJMRV9NRURJQV9TVEFUSVNUSUNT
KSAkKEVOQUJMRV9XRUJfQVVESU8pICQoRU5BQkxFX1dFQl9TT0NLRVRTKSAkKEVOQUJMRV9XRUJf
VElNSU5HKSAkKEVOQUJMRV9XTUwpICQoRU5BQkxFX1dPUktFUlMpICQoRU5BQkxFX1hIVE1MTVAp
ICQoRU5BQkxFX1hQQVRIKSAkKEVOQUJMRV9YU0xUKTsKK0ZFQVRVUkVfREVGSU5FUyA9ICQoRU5B
QkxFX0xJTktfUFJFRkVUQ0gpICQoRU5BQkxFX0FDQ0VMRVJBVEVEXzJEX0NBTlZBUykgJChFTkFC
TEVfV0VCR0wpICQoRU5BQkxFXzNEX1JFTkRFUklORykgJChFTkFCTEVfQkxPQikgJChFTkFCTEVf
Q0hBTk5FTF9NRVNTQUdJTkcpICQoRU5BQkxFX0NMSUVOVF9CQVNFRF9HRU9MT0NBVElPTikgJChF
TkFCTEVfREFUQUJBU0UpICQoRU5BQkxFX0RBVEFHUklEKSAkKEVOQUJMRV9EQVRBTElTVCkgJChF
TkFCTEVfREVWSUNFX09SSUVOVEFUSU9OKSAkKEVOQUJMRV9ESVJFQ1RPUllfVVBMT0FEKSAkKEVO
QUJMRV9ET01fU1RPUkFHRSkgJChFTkFCTEVfRVZFTlRTT1VSQ0UpICQoRU5BQkxFX0ZJTFRFUlMp
ICQoRU5BQkxFX0ZJTEVfU1lTVEVNKSAkKEVOQUJMRV9GVUxMU0NSRUVOX0FQSSkgJChFTkFCTEVf
R0VPTE9DQVRJT04pICQoRU5BQkxFX0lDT05EQVRBQkFTRSkgJChFTkFCTEVfSU1BR0VfUkVTSVpF
UikgJChFTkFCTEVfSU5ERVhFRF9EQVRBQkFTRSkgJChFTkFCTEVfSU5QVVRfU1BFRUNIKSAkKEVO
QUJMRV9KQVZBU0NSSVBUX0RFQlVHR0VSKSAkKEVOQUJMRV9NQVRITUwpICQoRU5BQkxFX01FVEVS
X1RBRykgJChFTkFCTEVfTk9USUZJQ0FUSU9OUykgJChFTkFCTEVfT0ZGTElORV9XRUJfQVBQTElD
QVRJT05TKSAkKEVOQUJMRV9QQUdFX1ZJU0lCSUxJVFlfQVBJKSAkKEVOQUJMRV9QUk9HUkVTU19U
QUcpICQoRU5BQkxFX1JFR0lTVEVSX1BST1RPQ09MX0hBTkRMRVIpICQoRU5BQkxFX1NIQVJFRF9X
T1JLRVJTKSAkKEVOQUJMRV9TVkcpICQoRU5BQkxFX1NWR19BTklNQVRJT04pICQoRU5BQkxFX1NW
R19BU19JTUFHRSkgJChFTkFCTEVfU1ZHX0RPTV9PQkpDX0JJTkRJTkdTKSAkKEVOQUJMRV9TVkdf
Rk9OVFMpICQoRU5BQkxFX1NWR19GT1JFSUdOX09CSkVDVCkgJChFTkFCTEVfU1ZHX1VTRSkgJChF
TkFCTEVfVklERU8pICQoRU5BQkxFX01FRElBX1NUQVRJU1RJQ1MpICQoRU5BQkxFX1dFQl9BVURJ
TykgJChFTkFCTEVfV0VCX1NPQ0tFVFMpICQoRU5BQkxFX1dFQl9USU1JTkcpICQoRU5BQkxFX1dN
TCkgJChFTkFCTEVfV09SS0VSUykgJChFTkFCTEVfWEhUTUxNUCkgJChFTkFCTEVfWFBBVEgpICQo
RU5BQkxFX1hTTFQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291
cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IDdjMDZmNDkuLmExYmUzNWMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwxMiBAQAorMjAxMS0wMi0xMCAgU2hpc2hpciBBZ3Jhd2FsICA8c2hpc2hpckBj
aHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgSW1wbGVtZW50IFBhZ2UgVmlzaWJpbGl0eSBBUEkuCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01NDE4MQorCisgICAgICAgKiBDb25maWd1cmF0
aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZzogQWRkIEVOQUJMRV9QQUdFX1ZJU0lCSUxJVFlf
QVBJLgorCiAyMDExLTAyLTA2ICBSeW9zdWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgogCiAg
ICAgICAgIFVucmV2aWV3ZWQ7IHNwZWN1bGF0aXZlIFF0IGJ1aWxkIGZpeC4KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnIGIv
U291cmNlL1dlYktpdDIvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcKaW5k
ZXggMzk3MTAzNy4uM2JkMjA3MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ29uZmlndXJh
dGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcKKysrIGIvU291cmNlL1dlYktpdDIvQ29uZmln
dXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcKQEAgLTg5LDYgKzg5LDcgQEAgRU5BQkxF
X01BVEhNTCA9IEVOQUJMRV9NQVRITUw7CiBFTkFCTEVfTUVURVJfVEFHID0gRU5BQkxFX01FVEVS
X1RBRzsKIEVOQUJMRV9OT1RJRklDQVRJT05TID0gOwogRU5BQkxFX09GRkxJTkVfV0VCX0FQUExJ
Q0FUSU9OUyA9IEVOQUJMRV9PRkZMSU5FX1dFQl9BUFBMSUNBVElPTlM7CitFTkFCTEVfUEFHRV9W
SVNJQklMSVRZX0FQSSA9IDsKIEVOQUJMRV9QUk9HUkVTU19UQUcgPSBFTkFCTEVfUFJPR1JFU1Nf
VEFHOwogCiBFTkFCTEVfUkVHSVNURVJfUFJPVE9DT0xfSEFORExFUiA9IDsKQEAgLTEyNSw0ICsx
MjYsNCBAQCBFTkFCTEVfWEhUTUxNUCA9IDsKIEVOQUJMRV9YUEFUSCA9IEVOQUJMRV9YUEFUSDsK
IEVOQUJMRV9YU0xUID0gRU5BQkxFX1hTTFQ7CiAKLUZFQVRVUkVfREVGSU5FUyA9ICQoRU5BQkxF
X0xJTktfUFJFRkVUQ0gpICQoRU5BQkxFX0FDQ0VMRVJBVEVEXzJEX0NBTlZBUykgJChFTkFCTEVf
V0VCR0wpICQoRU5BQkxFXzNEX1JFTkRFUklORykgJChFTkFCTEVfQkxPQikgJChFTkFCTEVfQ0hB
Tk5FTF9NRVNTQUdJTkcpICQoRU5BQkxFX0NMSUVOVF9CQVNFRF9HRU9MT0NBVElPTikgJChFTkFC
TEVfREFUQUJBU0UpICQoRU5BQkxFX0RBVEFHUklEKSAkKEVOQUJMRV9EQVRBTElTVCkgJChFTkFC
TEVfREVWSUNFX09SSUVOVEFUSU9OKSAkKEVOQUJMRV9ESVJFQ1RPUllfVVBMT0FEKSAkKEVOQUJM
RV9ET01fU1RPUkFHRSkgJChFTkFCTEVfRVZFTlRTT1VSQ0UpICQoRU5BQkxFX0ZJTFRFUlMpICQo
RU5BQkxFX0ZJTEVfU1lTVEVNKSAkKEVOQUJMRV9GVUxMU0NSRUVOX0FQSSkgJChFTkFCTEVfR0VP
TE9DQVRJT04pICQoRU5BQkxFX0lDT05EQVRBQkFTRSkgJChFTkFCTEVfSU1BR0VfUkVTSVpFUikg
JChFTkFCTEVfSU5ERVhFRF9EQVRBQkFTRSkgJChFTkFCTEVfSU5QVVRfU1BFRUNIKSAkKEVOQUJM
RV9KQVZBU0NSSVBUX0RFQlVHR0VSKSAkKEVOQUJMRV9NQVRITUwpICQoRU5BQkxFX01FVEVSX1RB
RykgJChFTkFCTEVfTk9USUZJQ0FUSU9OUykgJChFTkFCTEVfT0ZGTElORV9XRUJfQVBQTElDQVRJ
T05TKSAkKEVOQUJMRV9QUk9HUkVTU19UQUcpICQoRU5BQkxFX1JFR0lTVEVSX1BST1RPQ09MX0hB
TkRMRVIpICQoRU5BQkxFX1NIQVJFRF9XT1JLRVJTKSAkKEVOQUJMRV9TVkcpICQoRU5BQkxFX1NW
R19BTklNQVRJT04pICQoRU5BQkxFX1NWR19BU19JTUFHRSkgJChFTkFCTEVfU1ZHX0RPTV9PQkpD
X0JJTkRJTkdTKSAkKEVOQUJMRV9TVkdfRk9OVFMpICQoRU5BQkxFX1NWR19GT1JFSUdOX09CSkVD
VCkgJChFTkFCTEVfU1ZHX1VTRSkgJChFTkFCTEVfVklERU8pICQoRU5BQkxFX01FRElBX1NUQVRJ
U1RJQ1MpICQoRU5BQkxFX1dFQl9BVURJTykgJChFTkFCTEVfV0VCX1NPQ0tFVFMpICQoRU5BQkxF
X1dFQl9USU1JTkcpICQoRU5BQkxFX1dNTCkgJChFTkFCTEVfV09SS0VSUykgJChFTkFCTEVfWEhU
TUxNUCkgJChFTkFCTEVfWFBBVEgpICQoRU5BQkxFX1hTTFQpOworRkVBVFVSRV9ERUZJTkVTID0g
JChFTkFCTEVfTElOS19QUkVGRVRDSCkgJChFTkFCTEVfQUNDRUxFUkFURURfMkRfQ0FOVkFTKSAk
KEVOQUJMRV9XRUJHTCkgJChFTkFCTEVfM0RfUkVOREVSSU5HKSAkKEVOQUJMRV9CTE9CKSAkKEVO
QUJMRV9DSEFOTkVMX01FU1NBR0lORykgJChFTkFCTEVfQ0xJRU5UX0JBU0VEX0dFT0xPQ0FUSU9O
KSAkKEVOQUJMRV9EQVRBQkFTRSkgJChFTkFCTEVfREFUQUdSSUQpICQoRU5BQkxFX0RBVEFMSVNU
KSAkKEVOQUJMRV9ERVZJQ0VfT1JJRU5UQVRJT04pICQoRU5BQkxFX0RJUkVDVE9SWV9VUExPQUQp
ICQoRU5BQkxFX0RPTV9TVE9SQUdFKSAkKEVOQUJMRV9FVkVOVFNPVVJDRSkgJChFTkFCTEVfRklM
VEVSUykgJChFTkFCTEVfRklMRV9TWVNURU0pICQoRU5BQkxFX0ZVTExTQ1JFRU5fQVBJKSAkKEVO
QUJMRV9HRU9MT0NBVElPTikgJChFTkFCTEVfSUNPTkRBVEFCQVNFKSAkKEVOQUJMRV9JTUFHRV9S
RVNJWkVSKSAkKEVOQUJMRV9JTkRFWEVEX0RBVEFCQVNFKSAkKEVOQUJMRV9JTlBVVF9TUEVFQ0gp
ICQoRU5BQkxFX0pBVkFTQ1JJUFRfREVCVUdHRVIpICQoRU5BQkxFX01BVEhNTCkgJChFTkFCTEVf
TUVURVJfVEFHKSAkKEVOQUJMRV9OT1RJRklDQVRJT05TKSAkKEVOQUJMRV9PRkZMSU5FX1dFQl9B
UFBMSUNBVElPTlMpICQoRU5BQkxFX1BBR0VfVklTSUJJTElUWV9BUEkpICQoRU5BQkxFX1BST0dS
RVNTX1RBRykgJChFTkFCTEVfUkVHSVNURVJfUFJPVE9DT0xfSEFORExFUikgJChFTkFCTEVfU0hB
UkVEX1dPUktFUlMpICQoRU5BQkxFX1NWRykgJChFTkFCTEVfU1ZHX0FOSU1BVElPTikgJChFTkFC
TEVfU1ZHX0FTX0lNQUdFKSAkKEVOQUJMRV9TVkdfRE9NX09CSkNfQklORElOR1MpICQoRU5BQkxF
X1NWR19GT05UUykgJChFTkFCTEVfU1ZHX0ZPUkVJR05fT0JKRUNUKSAkKEVOQUJMRV9TVkdfVVNF
KSAkKEVOQUJMRV9WSURFTykgJChFTkFCTEVfTUVESUFfU1RBVElTVElDUykgJChFTkFCTEVfV0VC
X0FVRElPKSAkKEVOQUJMRV9XRUJfU09DS0VUUykgJChFTkFCTEVfV0VCX1RJTUlORykgJChFTkFC
TEVfV01MKSAkKEVOQUJMRV9XT1JLRVJTKSAkKEVOQUJMRV9YSFRNTE1QKSAkKEVOQUJMRV9YUEFU
SCkgJChFTkFCTEVfWFNMVCk7CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9D
aGFuZ2VMb2cKaW5kZXggODI0NTdiMC4uMmE0OWZhNSAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdl
TG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyIEBACisyMDExLTAyLTEwICBT
aGlzaGlyIEFncmF3YWwgIDxzaGlzaGlyQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJbXBsZW1lbnQgUGFnZSBWaXNpYmlsaXR5
IEFQSS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTU0
MTgxCisKKyAgICAgICAgKiBTY3JpcHRzL2J1aWxkLXdlYmtpdDogQWRkIC0tcGFnZS12aXNpYmls
aXR5LWFwaSBmbGFnLgorCiAyMDExLTAyLTA2ICBNYWNpZWogU3RhY2hvd2lhayAgPG1qc0BhcHBs
ZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgUnlvc3VrZSBOaXdhLgpkaWZmIC0tZ2l0IGEv
VG9vbHMvU2NyaXB0cy9idWlsZC13ZWJraXQgYi9Ub29scy9TY3JpcHRzL2J1aWxkLXdlYmtpdApp
bmRleCA3NDAxNWVjLi5iMDA5NGFiIDEwMDc1NQotLS0gYS9Ub29scy9TY3JpcHRzL2J1aWxkLXdl
YmtpdAorKysgYi9Ub29scy9TY3JpcHRzL2J1aWxkLXdlYmtpdApAQCAtOTEsNiArOTEsNyBAQCBt
eSAoCiAgICAgJG5vdGlmaWNhdGlvbnNTdXBwb3J0LAogICAgICRvZmZsaW5lV2ViQXBwbGljYXRp
b25TdXBwb3J0LAogICAgICRvcmllbnRhdGlvbkV2ZW50c1N1cHBvcnQsCisgICAgJHBhZ2VWaXNp
YmlsaXR5QXBpU3VwcG9ydCwKICAgICAkcHJvZ3Jlc3NUYWdTdXBwb3J0LAogICAgICRyZWdpc3Rl
clByb3RvY29sSGFuZGxlclN1cHBvcnQsCiAgICAgJHNoYXJlZFdvcmtlcnNTdXBwb3J0LApAQCAt
MjE0LDYgKzIxNSw5IEBAIG15IEBmZWF0dXJlcyA9ICgKICAgICB7IG9wdGlvbiA9PiAib3JpZW50
YXRpb24tZXZlbnRzIiwgZGVzYyA9PiAiVG9nZ2xlIE9yaWVudGF0aW9uIEV2ZW50cyBzdXBwb3J0
IiwKICAgICAgIGRlZmluZSA9PiAiRU5BQkxFX09SSUVOVEFUSU9OX0VWRU5UUyIsIGRlZmF1bHQg
PT4gMCwgdmFsdWUgPT4gXCRvcmllbnRhdGlvbkV2ZW50c1N1cHBvcnQgfSwKIAorICAgIHsgb3B0
aW9uID0+ICJwYWdlLXZpc2liaWxpdHktYXBpIiwgZGVzYyA9PiAiUGFnZSBWaXNpYmlsaXR5IEFQ
SSBzdXBwb3J0IiwKKyAgICAgIGRlZmluZSA9PiAiRU5BQkxFX1BBR0VfVklTSUJJTElUWV9BUEki
LCBkZWZhdWx0ID0+IDAsIHZhbHVlID0+IFwkcGFnZVZpc2liaWxpdHlBcGlTdXBwb3J0IH0sCisK
ICAgICB7IG9wdGlvbiA9PiAicHJvZ3Jlc3MtdGFnIiwgZGVzYyA9PiAiUHJvZ3Jlc3MgVGFnIHN1
cHBvcnQiLAogICAgICAgZGVmaW5lID0+ICJFTkFCTEVfUFJPR1JFU1NfVEFHIiwgZGVmYXVsdCA9
PiAxLCB2YWx1ZSA9PiBcJHByb2dyZXNzVGFnU3VwcG9ydCB9LAogCmRpZmYgLS1naXQgYS9jb25m
aWd1cmUuYWMgYi9jb25maWd1cmUuYWMKaW5kZXggYjAwY2EzOC4uZGQxMWQwMSAxMDA2NDQKLS0t
IGEvY29uZmlndXJlLmFjCisrKyBiL2NvbmZpZ3VyZS5hYwpAQCAtNTIzLDYgKzUyMywxNCBAQCBB
Q19BUkdfRU5BQkxFKG1hdGhtbCwKICAgICAgICAgICAgICAgW10sW2VuYWJsZV9tYXRobWw9Im5v
Il0pCiBBQ19NU0dfUkVTVUxUKFskZW5hYmxlX21hdGhtbF0pCiAKKyMgY2hlY2sgd2hldGhlciB0
byBlbmFibGUgcGFnZSB2aXNpYmlsaXR5IEFQSS4KK0FDX01TR19DSEVDS0lORyhbd2hldGhlciB0
byBlbmFibGUgUGFnZSBWaXNpYmlsaXR5IEFQSSBzdXBwb3J0XSkKK0FDX0FSR19FTkFCTEUocGFn
ZV92aXNpYmlsaXR5X2FwaSwKKyAgICAgICAgICAgICAgQUNfSEVMUF9TVFJJTkcoWy0tZW5hYmxl
LXBhZ2UtdmlzaWJpbGl0eS1hcGldLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZW5h
YmxlIHBhZ2UgdmlzaWJpbGl0eSBhcGlbZGVmYXVsdD1ub11dKSwKKyAgICAgICAgICAgICAgW10s
W2VuYWJsZV9wYWdlX3Zpc2liaWxpdHlfYXBpPSJubyJdKQorQUNfTVNHX1JFU1VMVChbJGVuYWJs
ZV9wYWdlX3Zpc2liaWxpdHlfYXBpXSkKKwogIyBjaGVjayB3aGV0aGVyIHRvIGVuYWJsZSBTVkcg
c3VwcG9ydAogQUNfTVNHX0NIRUNLSU5HKFt3aGV0aGVyIHRvIGVuYWJsZSBTVkcgc3VwcG9ydF0p
CiBBQ19BUkdfRU5BQkxFKHN2ZywKQEAgLTk3Niw2ICs5ODQsNyBAQCBBTV9DT05ESVRJT05BTChb
RU5BQkxFX01FRElBX1NUQVRJU1RJQ1NdLFt0ZXN0ICIkZW5hYmxlX21lZGlhX3N0YXRpc3RpY3Mi
ID0gInllcwogQU1fQ09ORElUSU9OQUwoW0VOQUJMRV9GVUxMU0NSRUVOX0FQSV0sW3Rlc3QgIiRl
bmFibGVfZnVsbHNjcmVlbl9hcGkiID0gInllcyJdKQogQU1fQ09ORElUSU9OQUwoW0VOQUJMRV9O
T1RJRklDQVRJT05TXSxbdGVzdCAiJGVuYWJsZV9ub3RpZmljYXRpb25zIiA9ICJ5ZXMiXSkKIEFN
X0NPTkRJVElPTkFMKFtFTkFCTEVfT1JJRU5UQVRJT05fRVZFTlRTXSxbdGVzdCAiJGVuYWJsZV9v
cmllbnRhdGlvbl9ldmVudHMiID0gInllcyJdKQorQU1fQ09ORElUSU9OQUwoW0VOQUJMRV9QQUdF
X1ZJU0lCSUxJVFlfQVBJXSxbdGVzdCAiJGVuYWJsZV9wYWdlX3Zpc2liaWxpdHlfYXBpcyIgPSAi
eWVzIl0pCiBBTV9DT05ESVRJT05BTChbRU5BQkxFX1NWR10sW3Rlc3QgIiRlbmFibGVfc3ZnIiA9
ICJ5ZXMiXSkKIEFNX0NPTkRJVElPTkFMKFtFTkFCTEVfU1ZHX0FOSU1BVElPTl0sW3Rlc3QgIiRl
bmFibGVfc3ZnX2FuaW1hdGlvbiIgPSAieWVzIl0pCiBBTV9DT05ESVRJT05BTChbRU5BQkxFX1NW
R19GT05UU10sW3Rlc3QgIiRlbmFibGVfc3ZnX2ZvbnRzIiA9ICJ5ZXMiXSkKQEAgLTEwNjIsNiAr
MTA3MSw3IEBAIEZlYXR1cmVzOgogIEltYWdlIHJlc2l6ZXIgc3VwcG9ydCAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIDogJGVuYWJsZV9pbWFnZV9yZXNpemVyCiAgTGluayBwcmVm
ZXRjaCBzdXBwb3J0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiAkZW5hYmxl
X2xpbmtfcHJlZmV0Y2gKICBPcGNvZGUgc3RhdHMgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICA6ICRlbmFibGVfb3Bjb2RlX3N0YXRzCisgUGFnZSB2aXNpYmlsaXR5
IEFQSSBzdXBwb3J0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiAkZW5hYmxlX3BhZ2Vf
dmlzaWJpbGl0eV9hcGkKICBTaGFyZWRXb3JrZXJzIHN1cHBvcnQgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICA6ICRlbmFibGVfc2hhcmVkX3dvcmtlcnMKICBTcGVlY2ggaW5wdXQg
c3VwcG9ydCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6ICRlbmFibGVfaW5w
dXRfc3BlZWNoCiAgU1ZHIHN1cHBvcnQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgOiAkZW5hYmxlX3N2Zwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>82295</attachid>
            <date>2011-02-14 00:44:13 -0800</date>
            <delta_ts>2011-03-06 18:58:08 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>page_visibility_api.patch</filename>
            <type>text/plain</type>
            <size>32053</size>
            <attacher name="Shishir Agrawal">shishir</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0NoYW5nZUxvZyBiL0NoYW5nZUxvZwppbmRleCAwOWZiN2YxLi5iMmNiZmFh
IDEwMDY0NAotLS0gYS9DaGFuZ2VMb2cKKysrIGIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAK
KzIwMTEtMDItMTAgIFNoaXNoaXIgQWdyYXdhbCAgPHNoaXNoaXJAY2hyb21pdW0ub3JnPgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEltcGxlbWVudCBQ
YWdlIFZpc2liaWxpdHkgQVBJLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9NTQxODEKKworICAgICAgICAqIGNvbmZpZ3VyZS5hYzoKKwogMjAxMS0wMi0x
MCAgUGV0ZXIgVmFyZ2EgIDxwdmFyZ2FAd2Via2l0Lm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBi
eSBDc2FiYSBPc3p0cm9nb27DoWMuCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
Q2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA5ODM1OGVm
Li5lZjdmMTVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMiBAQAorMjAx
MS0wMi0xMCAgU2hpc2hpciBBZ3Jhd2FsICA8c2hpc2hpckBjaHJvbWl1bS5vcmc+CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSW1wbGVtZW50IFBhZ2Ug
VmlzaWJpbGl0eSBBUEkuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD01NDE4MQorCisgICAgICAgICogQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMu
eGNjb25maWc6IEFkZCBFTkFCTEVfUEFHRV9WSVNJQklMSVRZX0FQSS4KKwogMjAxMS0wMi0xMyAg
Q2FtZXJvbiBad2FyaWNoICA8endhcmljaEBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQg
YnkgRGFuIEJlcm5zdGVpbi4KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9Db25m
aWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZwppbmRleCAzOTcxMDM3Li4z
YmQyMDcxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ29uZmlndXJhdGlvbnMv
RmVhdHVyZURlZmluZXMueGNjb25maWcKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NvbmZp
Z3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnCkBAIC04OSw2ICs4OSw3IEBAIEVOQUJM
RV9NQVRITUwgPSBFTkFCTEVfTUFUSE1MOwogRU5BQkxFX01FVEVSX1RBRyA9IEVOQUJMRV9NRVRF
Ul9UQUc7CiBFTkFCTEVfTk9USUZJQ0FUSU9OUyA9IDsKIEVOQUJMRV9PRkZMSU5FX1dFQl9BUFBM
SUNBVElPTlMgPSBFTkFCTEVfT0ZGTElORV9XRUJfQVBQTElDQVRJT05TOworRU5BQkxFX1BBR0Vf
VklTSUJJTElUWV9BUEkgPSA7CiBFTkFCTEVfUFJPR1JFU1NfVEFHID0gRU5BQkxFX1BST0dSRVNT
X1RBRzsKIAogRU5BQkxFX1JFR0lTVEVSX1BST1RPQ09MX0hBTkRMRVIgPSA7CkBAIC0xMjUsNCAr
MTI2LDQgQEAgRU5BQkxFX1hIVE1MTVAgPSA7CiBFTkFCTEVfWFBBVEggPSBFTkFCTEVfWFBBVEg7
CiBFTkFCTEVfWFNMVCA9IEVOQUJMRV9YU0xUOwogCi1GRUFUVVJFX0RFRklORVMgPSAkKEVOQUJM
RV9MSU5LX1BSRUZFVENIKSAkKEVOQUJMRV9BQ0NFTEVSQVRFRF8yRF9DQU5WQVMpICQoRU5BQkxF
X1dFQkdMKSAkKEVOQUJMRV8zRF9SRU5ERVJJTkcpICQoRU5BQkxFX0JMT0IpICQoRU5BQkxFX0NI
QU5ORUxfTUVTU0FHSU5HKSAkKEVOQUJMRV9DTElFTlRfQkFTRURfR0VPTE9DQVRJT04pICQoRU5B
QkxFX0RBVEFCQVNFKSAkKEVOQUJMRV9EQVRBR1JJRCkgJChFTkFCTEVfREFUQUxJU1QpICQoRU5B
QkxFX0RFVklDRV9PUklFTlRBVElPTikgJChFTkFCTEVfRElSRUNUT1JZX1VQTE9BRCkgJChFTkFC
TEVfRE9NX1NUT1JBR0UpICQoRU5BQkxFX0VWRU5UU09VUkNFKSAkKEVOQUJMRV9GSUxURVJTKSAk
KEVOQUJMRV9GSUxFX1NZU1RFTSkgJChFTkFCTEVfRlVMTFNDUkVFTl9BUEkpICQoRU5BQkxFX0dF
T0xPQ0FUSU9OKSAkKEVOQUJMRV9JQ09OREFUQUJBU0UpICQoRU5BQkxFX0lNQUdFX1JFU0laRVIp
ICQoRU5BQkxFX0lOREVYRURfREFUQUJBU0UpICQoRU5BQkxFX0lOUFVUX1NQRUVDSCkgJChFTkFC
TEVfSkFWQVNDUklQVF9ERUJVR0dFUikgJChFTkFCTEVfTUFUSE1MKSAkKEVOQUJMRV9NRVRFUl9U
QUcpICQoRU5BQkxFX05PVElGSUNBVElPTlMpICQoRU5BQkxFX09GRkxJTkVfV0VCX0FQUExJQ0FU
SU9OUykgJChFTkFCTEVfUFJPR1JFU1NfVEFHKSAkKEVOQUJMRV9SRUdJU1RFUl9QUk9UT0NPTF9I
QU5ETEVSKSAkKEVOQUJMRV9TSEFSRURfV09SS0VSUykgJChFTkFCTEVfU1ZHKSAkKEVOQUJMRV9T
VkdfQU5JTUFUSU9OKSAkKEVOQUJMRV9TVkdfQVNfSU1BR0UpICQoRU5BQkxFX1NWR19ET01fT0JK
Q19CSU5ESU5HUykgJChFTkFCTEVfU1ZHX0ZPTlRTKSAkKEVOQUJMRV9TVkdfRk9SRUlHTl9PQkpF
Q1QpICQoRU5BQkxFX1NWR19VU0UpICQoRU5BQkxFX1ZJREVPKSAkKEVOQUJMRV9NRURJQV9TVEFU
SVNUSUNTKSAkKEVOQUJMRV9XRUJfQVVESU8pICQoRU5BQkxFX1dFQl9TT0NLRVRTKSAkKEVOQUJM
RV9XRUJfVElNSU5HKSAkKEVOQUJMRV9XTUwpICQoRU5BQkxFX1dPUktFUlMpICQoRU5BQkxFX1hI
VE1MTVApICQoRU5BQkxFX1hQQVRIKSAkKEVOQUJMRV9YU0xUKTsKK0ZFQVRVUkVfREVGSU5FUyA9
ICQoRU5BQkxFX0xJTktfUFJFRkVUQ0gpICQoRU5BQkxFX0FDQ0VMRVJBVEVEXzJEX0NBTlZBUykg
JChFTkFCTEVfV0VCR0wpICQoRU5BQkxFXzNEX1JFTkRFUklORykgJChFTkFCTEVfQkxPQikgJChF
TkFCTEVfQ0hBTk5FTF9NRVNTQUdJTkcpICQoRU5BQkxFX0NMSUVOVF9CQVNFRF9HRU9MT0NBVElP
TikgJChFTkFCTEVfREFUQUJBU0UpICQoRU5BQkxFX0RBVEFHUklEKSAkKEVOQUJMRV9EQVRBTElT
VCkgJChFTkFCTEVfREVWSUNFX09SSUVOVEFUSU9OKSAkKEVOQUJMRV9ESVJFQ1RPUllfVVBMT0FE
KSAkKEVOQUJMRV9ET01fU1RPUkFHRSkgJChFTkFCTEVfRVZFTlRTT1VSQ0UpICQoRU5BQkxFX0ZJ
TFRFUlMpICQoRU5BQkxFX0ZJTEVfU1lTVEVNKSAkKEVOQUJMRV9GVUxMU0NSRUVOX0FQSSkgJChF
TkFCTEVfR0VPTE9DQVRJT04pICQoRU5BQkxFX0lDT05EQVRBQkFTRSkgJChFTkFCTEVfSU1BR0Vf
UkVTSVpFUikgJChFTkFCTEVfSU5ERVhFRF9EQVRBQkFTRSkgJChFTkFCTEVfSU5QVVRfU1BFRUNI
KSAkKEVOQUJMRV9KQVZBU0NSSVBUX0RFQlVHR0VSKSAkKEVOQUJMRV9NQVRITUwpICQoRU5BQkxF
X01FVEVSX1RBRykgJChFTkFCTEVfTk9USUZJQ0FUSU9OUykgJChFTkFCTEVfT0ZGTElORV9XRUJf
QVBQTElDQVRJT05TKSAkKEVOQUJMRV9QQUdFX1ZJU0lCSUxJVFlfQVBJKSAkKEVOQUJMRV9QUk9H
UkVTU19UQUcpICQoRU5BQkxFX1JFR0lTVEVSX1BST1RPQ09MX0hBTkRMRVIpICQoRU5BQkxFX1NI
QVJFRF9XT1JLRVJTKSAkKEVOQUJMRV9TVkcpICQoRU5BQkxFX1NWR19BTklNQVRJT04pICQoRU5B
QkxFX1NWR19BU19JTUFHRSkgJChFTkFCTEVfU1ZHX0RPTV9PQkpDX0JJTkRJTkdTKSAkKEVOQUJM
RV9TVkdfRk9OVFMpICQoRU5BQkxFX1NWR19GT1JFSUdOX09CSkVDVCkgJChFTkFCTEVfU1ZHX1VT
RSkgJChFTkFCTEVfVklERU8pICQoRU5BQkxFX01FRElBX1NUQVRJU1RJQ1MpICQoRU5BQkxFX1dF
Ql9BVURJTykgJChFTkFCTEVfV0VCX1NPQ0tFVFMpICQoRU5BQkxFX1dFQl9USU1JTkcpICQoRU5B
QkxFX1dNTCkgJChFTkFCTEVfV09SS0VSUykgJChFTkFCTEVfWEhUTUxNUCkgJChFTkFCTEVfWFBB
VEgpICQoRU5BQkxFX1hTTFQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9n
IGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDEzMDZkNjQuLjhjNmQwMzQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwzNCBAQAorMjAxMS0wMi0xMCAgU2hpc2hpciBBZ3Jhd2FsICA8c2hp
c2hpckBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgSW1wbGVtZW50IFBhZ2UgVmlzaWJpbGl0eSBBUEkuCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01NDE4MQorCisgICAgICAgIE5vIG5l
dyB0ZXN0cy4gKE9PUFMhKQorCisgICAgICAgICogV2ViQ29yZS5leHAuaW46CisgICAgICAgICog
Q29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWc6IEFkZCBFTkFCTEVfUEFHRV9W
SVNJQklMSVRZX0FQSS4KKyAgICAgICAgKiBkb20vRG9jdW1lbnQuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6RG9jdW1lbnQ6OnZpc2liaWxpdHlTdGF0ZSk6IFJldHVybnMgZG9jdW1lbnQgdmlzaWJp
bGl0eSBzdGF0ZS4KKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50Ojp2aXNpYmxlKTogUmV0dXJu
cyB0cnVlIGlmZiBkb2N1bWVudCBpcyB2aXNpYmxlLgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1l
bnQ6OnRyaWdnZXJWaXNpYmlsaXR5Q2hhbmdlRXZlbnQpOiBUcmlnZ2VycyBkb2N1bWVudCB2aXNp
YmlsaXR5IGNoYW5nZSBldmVudC4KKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50Ojppc1Zpc2li
aWxpdHlTdGF0ZVZhbHVlVmFsaWQpOiBSZXR1cm5zIHRydWUgaWYgaW5wdXQgdmlzaWJpbGl0eSB2
YWx1ZSBpcyB2YWxpZC4KKyAgICAgICAgKiBkb20vRG9jdW1lbnQuaDogQWRkZWQgZnVuY3Rpb25z
IGZvciBkb2N1bWVudCB2aXNpYmlsdHkgcHJvcGVydGllcyBhbmQgdmlzaWJpbGl0eSBjaGFuZ2Ug
ZXZlbnRzLgorICAgICAgICAqIGRvbS9Eb2N1bWVudC5pZGw6IEFkZGVkIG5ldyBkb2N1bWVudCBw
cm9wZXJ0aWVzOiB2aXNpYmxlIChib29sKSBhbmQgdmlzaWJpbGl0eVN0YXRlIChET01TdHJpbmcp
LgorICAgICAgICAqIGRvbS9FdmVudE5hbWVzLmg6IEFkZGVkIHZpc2liaWxpdHljaGFuZ2VldmVu
dC4KKyAgICAgICAgKiBwYWdlL0ZyYW1lLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lOjp0
cmlnZ2VyVmlzaWJpbGl0eUNoYW5nZUV2ZW50KTogVHJpZ2dlcnMgdmlzaWJpbGl0eSBjaGFuZ2Ug
aW4gZG9jdW1lbnQgYW5kIGFsbAorICAgICAgICBjaGlsZCBmcmFtZXMuCisgICAgICAgICogcGFn
ZS9GcmFtZS5oOiBkaXR0by4KKyAgICAgICAgKiBwYWdlL1BhZ2UuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6UGFnZTo6UGFnZSk6IFRha2UgaW5pdGlhbCB2aXNpYmxpdHkgc3RhdGUgYXMgaW5wdXQg
cGFyYW0uCisgICAgICAgIChXZWJDb3JlOjpQYWdlOjpzZXRWaXNpYmlsaXR5U3RhdGUpOiBTZXRz
IHZpc2liaWxpdHkgc3RhdGUuCisgICAgICAgIChXZWJDb3JlOjpQYWdlOjp2aXNpYmlsaXR5U3Rh
dGUpOiBSZXR1cnNuIGN1cnJlbnQgdmlzaWJpbGl0eSBzdGF0ZS4KKyAgICAgICAgKiBwYWdlL1Bh
Z2UuaDogZGl0dG8uCisgICAgICAgICogc3ZnL2dyYXBoaWNzL1NWR0ltYWdlLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlNWR0ltYWdlOjpkYXRhQ2hhbmdlZCk6IFBhc3MgaW5pdGlhbCB2aXNpYmls
aXR5IHRvIFBhZ2UgY29uc3RydWN0b3IuCisKIDIwMTEtMDItMTIgIFNhbSBXZWluaWcgIDxzYW1A
d2Via2l0Lm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBEYW4gQmVybnN0ZWluLgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25m
aWcgYi9Tb3VyY2UvV2ViQ29yZS9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZp
ZwppbmRleCAzOTcxMDM3Li4zYmQyMDcxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Db25m
aWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZworKysgYi9Tb3VyY2UvV2ViQ29yZS9D
b25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZwpAQCAtODksNiArODksNyBAQCBF
TkFCTEVfTUFUSE1MID0gRU5BQkxFX01BVEhNTDsKIEVOQUJMRV9NRVRFUl9UQUcgPSBFTkFCTEVf
TUVURVJfVEFHOwogRU5BQkxFX05PVElGSUNBVElPTlMgPSA7CiBFTkFCTEVfT0ZGTElORV9XRUJf
QVBQTElDQVRJT05TID0gRU5BQkxFX09GRkxJTkVfV0VCX0FQUExJQ0FUSU9OUzsKK0VOQUJMRV9Q
QUdFX1ZJU0lCSUxJVFlfQVBJID0gOwogRU5BQkxFX1BST0dSRVNTX1RBRyA9IEVOQUJMRV9QUk9H
UkVTU19UQUc7CiAKIEVOQUJMRV9SRUdJU1RFUl9QUk9UT0NPTF9IQU5ETEVSID0gOwpAQCAtMTI1
LDQgKzEyNiw0IEBAIEVOQUJMRV9YSFRNTE1QID0gOwogRU5BQkxFX1hQQVRIID0gRU5BQkxFX1hQ
QVRIOwogRU5BQkxFX1hTTFQgPSBFTkFCTEVfWFNMVDsKIAotRkVBVFVSRV9ERUZJTkVTID0gJChF
TkFCTEVfTElOS19QUkVGRVRDSCkgJChFTkFCTEVfQUNDRUxFUkFURURfMkRfQ0FOVkFTKSAkKEVO
QUJMRV9XRUJHTCkgJChFTkFCTEVfM0RfUkVOREVSSU5HKSAkKEVOQUJMRV9CTE9CKSAkKEVOQUJM
RV9DSEFOTkVMX01FU1NBR0lORykgJChFTkFCTEVfQ0xJRU5UX0JBU0VEX0dFT0xPQ0FUSU9OKSAk
KEVOQUJMRV9EQVRBQkFTRSkgJChFTkFCTEVfREFUQUdSSUQpICQoRU5BQkxFX0RBVEFMSVNUKSAk
KEVOQUJMRV9ERVZJQ0VfT1JJRU5UQVRJT04pICQoRU5BQkxFX0RJUkVDVE9SWV9VUExPQUQpICQo
RU5BQkxFX0RPTV9TVE9SQUdFKSAkKEVOQUJMRV9FVkVOVFNPVVJDRSkgJChFTkFCTEVfRklMVEVS
UykgJChFTkFCTEVfRklMRV9TWVNURU0pICQoRU5BQkxFX0ZVTExTQ1JFRU5fQVBJKSAkKEVOQUJM
RV9HRU9MT0NBVElPTikgJChFTkFCTEVfSUNPTkRBVEFCQVNFKSAkKEVOQUJMRV9JTUFHRV9SRVNJ
WkVSKSAkKEVOQUJMRV9JTkRFWEVEX0RBVEFCQVNFKSAkKEVOQUJMRV9JTlBVVF9TUEVFQ0gpICQo
RU5BQkxFX0pBVkFTQ1JJUFRfREVCVUdHRVIpICQoRU5BQkxFX01BVEhNTCkgJChFTkFCTEVfTUVU
RVJfVEFHKSAkKEVOQUJMRV9OT1RJRklDQVRJT05TKSAkKEVOQUJMRV9PRkZMSU5FX1dFQl9BUFBM
SUNBVElPTlMpICQoRU5BQkxFX1BST0dSRVNTX1RBRykgJChFTkFCTEVfUkVHSVNURVJfUFJPVE9D
T0xfSEFORExFUikgJChFTkFCTEVfU0hBUkVEX1dPUktFUlMpICQoRU5BQkxFX1NWRykgJChFTkFC
TEVfU1ZHX0FOSU1BVElPTikgJChFTkFCTEVfU1ZHX0FTX0lNQUdFKSAkKEVOQUJMRV9TVkdfRE9N
X09CSkNfQklORElOR1MpICQoRU5BQkxFX1NWR19GT05UUykgJChFTkFCTEVfU1ZHX0ZPUkVJR05f
T0JKRUNUKSAkKEVOQUJMRV9TVkdfVVNFKSAkKEVOQUJMRV9WSURFTykgJChFTkFCTEVfTUVESUFf
U1RBVElTVElDUykgJChFTkFCTEVfV0VCX0FVRElPKSAkKEVOQUJMRV9XRUJfU09DS0VUUykgJChF
TkFCTEVfV0VCX1RJTUlORykgJChFTkFCTEVfV01MKSAkKEVOQUJMRV9XT1JLRVJTKSAkKEVOQUJM
RV9YSFRNTE1QKSAkKEVOQUJMRV9YUEFUSCkgJChFTkFCTEVfWFNMVCk7CitGRUFUVVJFX0RFRklO
RVMgPSAkKEVOQUJMRV9MSU5LX1BSRUZFVENIKSAkKEVOQUJMRV9BQ0NFTEVSQVRFRF8yRF9DQU5W
QVMpICQoRU5BQkxFX1dFQkdMKSAkKEVOQUJMRV8zRF9SRU5ERVJJTkcpICQoRU5BQkxFX0JMT0Ip
ICQoRU5BQkxFX0NIQU5ORUxfTUVTU0FHSU5HKSAkKEVOQUJMRV9DTElFTlRfQkFTRURfR0VPTE9D
QVRJT04pICQoRU5BQkxFX0RBVEFCQVNFKSAkKEVOQUJMRV9EQVRBR1JJRCkgJChFTkFCTEVfREFU
QUxJU1QpICQoRU5BQkxFX0RFVklDRV9PUklFTlRBVElPTikgJChFTkFCTEVfRElSRUNUT1JZX1VQ
TE9BRCkgJChFTkFCTEVfRE9NX1NUT1JBR0UpICQoRU5BQkxFX0VWRU5UU09VUkNFKSAkKEVOQUJM
RV9GSUxURVJTKSAkKEVOQUJMRV9GSUxFX1NZU1RFTSkgJChFTkFCTEVfRlVMTFNDUkVFTl9BUEkp
ICQoRU5BQkxFX0dFT0xPQ0FUSU9OKSAkKEVOQUJMRV9JQ09OREFUQUJBU0UpICQoRU5BQkxFX0lN
QUdFX1JFU0laRVIpICQoRU5BQkxFX0lOREVYRURfREFUQUJBU0UpICQoRU5BQkxFX0lOUFVUX1NQ
RUVDSCkgJChFTkFCTEVfSkFWQVNDUklQVF9ERUJVR0dFUikgJChFTkFCTEVfTUFUSE1MKSAkKEVO
QUJMRV9NRVRFUl9UQUcpICQoRU5BQkxFX05PVElGSUNBVElPTlMpICQoRU5BQkxFX09GRkxJTkVf
V0VCX0FQUExJQ0FUSU9OUykgJChFTkFCTEVfUEFHRV9WSVNJQklMSVRZX0FQSSkgJChFTkFCTEVf
UFJPR1JFU1NfVEFHKSAkKEVOQUJMRV9SRUdJU1RFUl9QUk9UT0NPTF9IQU5ETEVSKSAkKEVOQUJM
RV9TSEFSRURfV09SS0VSUykgJChFTkFCTEVfU1ZHKSAkKEVOQUJMRV9TVkdfQU5JTUFUSU9OKSAk
KEVOQUJMRV9TVkdfQVNfSU1BR0UpICQoRU5BQkxFX1NWR19ET01fT0JKQ19CSU5ESU5HUykgJChF
TkFCTEVfU1ZHX0ZPTlRTKSAkKEVOQUJMRV9TVkdfRk9SRUlHTl9PQkpFQ1QpICQoRU5BQkxFX1NW
R19VU0UpICQoRU5BQkxFX1ZJREVPKSAkKEVOQUJMRV9NRURJQV9TVEFUSVNUSUNTKSAkKEVOQUJM
RV9XRUJfQVVESU8pICQoRU5BQkxFX1dFQl9TT0NLRVRTKSAkKEVOQUJMRV9XRUJfVElNSU5HKSAk
KEVOQUJMRV9XTUwpICQoRU5BQkxFX1dPUktFUlMpICQoRU5BQkxFX1hIVE1MTVApICQoRU5BQkxF
X1hQQVRIKSAkKEVOQUJMRV9YU0xUKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUuZXhwLmluIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KaW5kZXggZTA5ZmJlNC4u
ZDJjNzJkYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KKysrIGIv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KQEAgLTY2MCw3ICs2NjAsNiBAQCBfX1pON1dl
YkNvcmU0UGFnZTZnb0JhY2tFdgogX19aTjdXZWJDb3JlNFBhZ2U4Z29Ub0l0ZW1FUE5TXzExSGlz
dG9yeUl0ZW1FTlNfMTNGcmFtZUxvYWRUeXBlRQogX19aTjdXZWJDb3JlNFBhZ2U5Z29Gb3J3YXJk
RXYKIF9fWk43V2ViQ29yZTRQYWdlOWluaXRHcm91cEV2Ci1fX1pON1dlYkNvcmU0UGFnZUMxRVJL
TlMwXzExUGFnZUNsaWVudHNFCiBfX1pON1dlYkNvcmU0UGFnZUQxRXYKIF9fWk43V2ViQ29yZTRQ
YXRoMTRhZGRSb3VuZGVkUmVjdEVSS05TXzlGbG9hdFJlY3RFUktOU185RmxvYXRTaXplRQogX19a
TjdXZWJDb3JlNFBhdGhDMUV2CkBAIC0xNzIwLDYgKzE3MTksMTIgQEAgX19aTjdXZWJDb3JlOERv
Y3VtZW50MTJ1cGRhdGVMYXlvdXRFdgogX19aTks3V2ViQ29yZTROb2RlMTZ0cmF2ZXJzZU5leHRO
b2RlRVBLUzBfCiAjZW5kaWYKIAorI2lmIEVOQUJMRShQQUdFX1ZJU0lCSUxJVFlfQVBJKQorX19a
TjdXZWJDb3JlNFBhZ2VDMUVSS05TMF8xMVBhZ2VDbGllbnRzRVJLTjNXVEY2U3RyaW5nRQorI2Vs
c2UKK19fWk43V2ViQ29yZTRQYWdlQzFFUktOUzBfMTFQYWdlQ2xpZW50c0UKKyNlbmRpZgorCiAj
aWYgRU5BQkxFKE9GRkxJTkVfV0VCX0FQUExJQ0FUSU9OUykKIF9fWk43V2ViQ29yZTIzQXBwbGlj
YXRpb25DYWNoZVN0b3JhZ2UxNHF1b3RhRm9yT3JpZ2luRVBLTlNfMTRTZWN1cml0eU9yaWdpbkVS
eAogX19aTjdXZWJDb3JlMjNBcHBsaWNhdGlvbkNhY2hlU3RvcmFnZTE0c2V0TWF4aW11bVNpemVF
eApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKaW5kZXggNDRiNGU0OS4uYmNmYTM1YyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9k
b20vRG9jdW1lbnQuY3BwCkBAIC0xMzc4LDYgKzEzNzgsMzIgQEAgdm9pZCBEb2N1bWVudDo6cmVt
b3ZlVGl0bGUoRWxlbWVudCogdGl0bGVFbGVtZW50KQogICAgIH0KIH0KIAorI2lmIEVOQUJMRShQ
QUdFX1ZJU0lCSUxJVFlfQVBJKQorU3RyaW5nIERvY3VtZW50Ojp2aXNpYmlsaXR5U3RhdGUoKSBj
b25zdAoreworICAgIGlmICghbV9mcmFtZSB8fCAhbV9mcmFtZS0+cGFnZSgpKQorICAgICAgICBy
ZXR1cm4gInZpc2libGUiOworICAgIHJldHVybiBtX2ZyYW1lLT5wYWdlKCktPnZpc2liaWxpdHlT
dGF0ZSgpOworfQorCitib29sIERvY3VtZW50Ojp2aXNpYmxlKCkgY29uc3QKK3sKKyAgICByZXR1
cm4gdmlzaWJpbGl0eVN0YXRlKCkgPT0gInZpc2libGUiOworfQorCit2b2lkIERvY3VtZW50Ojp0
cmlnZ2VyVmlzaWJpbGl0eUNoYW5nZUV2ZW50KCkKK3sKKyAgICBkaXNwYXRjaEV2ZW50KEV2ZW50
OjpjcmVhdGUoZXZlbnROYW1lcygpLnZpc2liaWxpdHljaGFuZ2VFdmVudCwgZmFsc2UsIGZhbHNl
KSk7Cit9CisKK2Jvb2wgRG9jdW1lbnQ6OmlzVmlzaWJpbGl0eVN0YXRlVmFsdWVWYWxpZChjb25z
dCBTdHJpbmcmIHZpc2liaWxpdHlTdGF0ZSkKK3sKKyAgICBpZiAodmlzaWJpbGl0eVN0YXRlID09
ICJ2aXNpYmxlIiB8fCB2aXNpYmlsaXR5U3RhdGUgPT0gImhpZGRlbiIpCisgICAgICAgIHJldHVy
biB0cnVlOworICAgIHJldHVybiBmYWxzZTsKK30KKyNlbmRpZgorCiBTdHJpbmcgRG9jdW1lbnQ6
Om5vZGVOYW1lKCkgY29uc3QKIHsKICAgICByZXR1cm4gIiNkb2N1bWVudCI7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1
bWVudC5oCmluZGV4IDcyYjdiNGQuLjU5ZTc0ZmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9Eb2N1bWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCkBAIC0y
OTksNiArMjk5LDkgQEAgcHVibGljOgogI2lmIEVOQUJMRShGVUxMU0NSRUVOX0FQSSkKICAgICBE
RUZJTkVfQVRUUklCVVRFX0VWRU5UX0xJU1RFTkVSKHdlYmtpdGZ1bGxzY3JlZW5jaGFuZ2UpOwog
I2VuZGlmCisjaWYgRU5BQkxFKFBBR0VfVklTSUJJTElUWV9BUEkpCisgICAgREVGSU5FX0FUVFJJ
QlVURV9FVkVOVF9MSVNURU5FUih2aXNpYmlsaXR5Y2hhbmdlKTsKKyNlbmRpZgogCiAgICAgVmll
d3BvcnRBcmd1bWVudHMgdmlld3BvcnRBcmd1bWVudHMoKSBjb25zdCB7IHJldHVybiBtX3ZpZXdw
b3J0QXJndW1lbnRzOyB9CiAKQEAgLTM3NSw2ICszNzgsMTMgQEAgcHVibGljOgogCiAgICAgdmly
dHVhbCBLVVJMIGJhc2VVUkkoKSBjb25zdDsKIAorI2lmIEVOQUJMRShQQUdFX1ZJU0lCSUxJVFlf
QVBJKQorICAgIFN0cmluZyB2aXNpYmlsaXR5U3RhdGUoKSBjb25zdDsKKyAgICBib29sIHZpc2li
bGUoKSBjb25zdDsKKyAgICB2b2lkIHRyaWdnZXJWaXNpYmlsaXR5Q2hhbmdlRXZlbnQoKTsKKyAg
ICBzdGF0aWMgYm9vbCBpc1Zpc2liaWxpdHlTdGF0ZVZhbHVlVmFsaWQoY29uc3QgU3RyaW5nJik7
CisjZW5kaWYKKwogICAgIFBhc3NSZWZQdHI8Tm9kZT4gYWRvcHROb2RlKFBhc3NSZWZQdHI8Tm9k
ZT4gc291cmNlLCBFeGNlcHRpb25Db2RlJik7CiAKICAgICBQYXNzUmVmUHRyPEhUTUxDb2xsZWN0
aW9uPiBpbWFnZXMoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5p
ZGwgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaWRsCmluZGV4IGMyMTVkZjAuLmU2MDBi
NDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5pZGwKKysrIGIvU291
cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmlkbApAQCAtMzQyLDYgKzM0MiwxMSBAQCBtb2R1bGUg
Y29yZSB7CiAgICAgICAgIGJvb2xlYW4gaXNIVE1MRG9jdW1lbnQoKTsKICNlbmRpZgogCisjaWYg
ZGVmaW5lZChFTkFCTEVfUEFHRV9WSVNJQklMSVRZX0FQSSkgJiYgRU5BQkxFX1BBR0VfVklTSUJJ
TElUWV9BUEkKKyAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyB2aXNpYmlsaXR5
U3RhdGU7CisgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBib29sZWFuIHZpc2libGU7CisjZW5k
aWYKKwogICAgIH07CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudE5h
bWVzLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnROYW1lcy5oCmluZGV4IDQzOWU5ZDguLmQy
NjhmODQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudE5hbWVzLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvZG9tL0V2ZW50TmFtZXMuaApAQCAtMTA1LDYgKzEwNSw3IEBAIG5hbWVz
cGFjZSBXZWJDb3JlIHsKICAgICBtYWNybyh0ZXh0SW5wdXQpIFwKICAgICBtYWNybyh1bmxvYWQp
IFwKICAgICBtYWNybyh1cGRhdGVyZWFkeSkgXAorICAgIG1hY3JvKHZpc2liaWxpdHljaGFuZ2Up
IFwKICAgICBtYWNybyh3cml0ZSkgXAogICAgIG1hY3JvKHdyaXRlZW5kKSBcCiAgICAgbWFjcm8o
d3JpdGVzdGFydCkgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lLmNwcAppbmRleCAwYzFhMmRjLi5lYWZlZWIzIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0ZyYW1lLmNwcApAQCAtNjc1LDYgKzY3NSwxNiBAQCB2b2lkIEZyYW1lOjpzZXRE
T01XaW5kb3coRE9NV2luZG93KiBkb21XaW5kb3cpCiAgICAgbV9kb21XaW5kb3cgPSBkb21XaW5k
b3c7CiB9CiAKKyNpZiBFTkFCTEUoUEFHRV9WSVNJQklMSVRZX0FQSSkKK3ZvaWQgRnJhbWU6OnRy
aWdnZXJWaXNpYmlsaXR5Q2hhbmdlRXZlbnQoKQoreworICAgIGlmIChtX2RvYykKKyAgICAgICAg
bV9kb2MtPnRyaWdnZXJWaXNpYmlsaXR5Q2hhbmdlRXZlbnQoKTsKKyAgICBmb3IgKEZyYW1lKiBj
aGlsZCA9IHRyZWUoKS0+Zmlyc3RDaGlsZCgpOyBjaGlsZDsgY2hpbGQgPSBjaGlsZC0+dHJlZSgp
LT5uZXh0U2libGluZygpKQorICAgICAgICBjaGlsZC0+dHJpZ2dlclZpc2liaWxpdHlDaGFuZ2VF
dmVudCgpOworfQorI2VuZGlmCisKIERPTVdpbmRvdyogRnJhbWU6OmRvbVdpbmRvdygpIGNvbnN0
CiB7CiAgICAgaWYgKCFtX2RvbVdpbmRvdykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvRnJhbWUuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWUuaAppbmRleCBhMWU1YzEwLi5h
NTNmNTIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9GcmFtZS5oCkBAIC0xMTgsNiArMTE4LDEwIEBAIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAogICAgICAgICB2b2lkIHRyYW5zZmVyQ2hpbGRGcmFtZVRvTmV3RG9jdW1lbnQo
KTsKIAorI2lmIEVOQUJMRShQQUdFX1ZJU0lCSUxJVFlfQVBJKQorICAgICAgICB2b2lkIHRyaWdn
ZXJWaXNpYmlsaXR5Q2hhbmdlRXZlbnQoKTsKKyNlbmRpZgorCiAgICAgLy8gPT09PT09PT0gQWxs
IHB1YmxpYyBmdW5jdGlvbnMgYmVsb3cgdGhpcyBwb2ludCBhcmUgY2FuZGlkYXRlcyB0byBtb3Zl
IG91dCBvZiBGcmFtZSBpbnRvIGFub3RoZXIgY2xhc3MuID09PT09PT09CiAKICAgICAgICAgYm9v
bCBpc0Rpc2Nvbm5lY3RlZCgpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9QYWdlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAKaW5kZXggZDIxODc0ZS4u
MDJhODhlNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCkBAIC0xMTYsNyArMTE2LDExIEBAIHN0YXRpYyB2
b2lkIG5ldHdvcmtTdGF0ZUNoYW5nZWQoKQogICAgICAgICBmcmFtZXNbaV0tPmRvY3VtZW50KCkt
PmRpc3BhdGNoV2luZG93RXZlbnQoRXZlbnQ6OmNyZWF0ZShldmVudE5hbWUsIGZhbHNlLCBmYWxz
ZSkpOwogfQogCi1QYWdlOjpQYWdlKGNvbnN0IFBhZ2VDbGllbnRzJiBwYWdlQ2xpZW50cykKK1Bh
Z2U6OlBhZ2UoY29uc3QgUGFnZUNsaWVudHMmIHBhZ2VDbGllbnRzCisjaWYgRU5BQkxFKFBBR0Vf
VklTSUJJTElUWV9BUEkpCisgICAgICAgICAgICAsIGNvbnN0IFN0cmluZyYgaW5pdGlhbFZpc2li
aWxpdHlTdGF0ZQorI2VuZGlmCispCiAgICAgOiBtX2Nocm9tZShhZG9wdFB0cihuZXcgQ2hyb21l
KHRoaXMsIHBhZ2VDbGllbnRzLmNocm9tZUNsaWVudCkpKQogICAgICwgbV9kcmFnQ2FyZXRDb250
cm9sbGVyKGFkb3B0UHRyKG5ldyBTZWxlY3Rpb25Db250cm9sbGVyKDAsIHRydWUpKSkKICNpZiBF
TkFCTEUoRFJBR19TVVBQT1JUKQpAQCAtMTYxLDYgKzE2NSw5IEBAIFBhZ2U6OlBhZ2UoY29uc3Qg
UGFnZUNsaWVudHMmIHBhZ2VDbGllbnRzKQogICAgICwgbV9jdXN0b21IVE1MVG9rZW5pemVyQ2h1
bmtTaXplKC0xKQogICAgICwgbV9jYW5TdGFydE1lZGlhKHRydWUpCiAgICAgLCBtX3ZpZXdNb2Rl
KFZpZXdNb2RlV2luZG93ZWQpCisjaWYgRU5BQkxFKFBBR0VfVklTSUJJTElUWV9BUEkpCisgICAg
LCBtX3Zpc2liaWxpdHlTdGF0ZShpbml0aWFsVmlzaWJpbGl0eVN0YXRlKQorI2VuZGlmCiB7CiAg
ICAgaWYgKCFhbGxQYWdlcykgewogICAgICAgICBhbGxQYWdlcyA9IG5ldyBIYXNoU2V0PFBhZ2Uq
PjsKQEAgLTkwNiw2ICs5MTMsMjUgQEAgdm9pZCBQYWdlOjpjaGVja0ZyYW1lQ291bnRDb25zaXN0
ZW5jeSgpIGNvbnN0CiB9CiAjZW5kaWYKIAorI2lmIEVOQUJMRShQQUdFX1ZJU0lCSUxJVFlfQVBJ
KQordm9pZCBQYWdlOjpzZXRWaXNpYmlsaXR5U3RhdGUoY29uc3QgU3RyaW5nJiB2aXNpYmlsaXR5
U3RhdGUpCit7CisgICAgaWYgKCFEb2N1bWVudDo6aXNWaXNpYmlsaXR5U3RhdGVWYWx1ZVZhbGlk
KHZpc2liaWxpdHlTdGF0ZSkpCisgICAgICAgIHJldHVybjsKKyAgICBpZiAobV92aXNpYmlsaXR5
U3RhdGUgPT0gdmlzaWJpbGl0eVN0YXRlKQorICAgICAgICByZXR1cm47CisgICAgbV92aXNpYmls
aXR5U3RhdGUgPSB2aXNpYmlsaXR5U3RhdGU7CisKKyAgICBpZiAobV9tYWluRnJhbWUpCisgICAg
ICAgIG1fbWFpbkZyYW1lLT50cmlnZ2VyVmlzaWJpbGl0eUNoYW5nZUV2ZW50KCk7Cit9CisKK1N0
cmluZyBQYWdlOjp2aXNpYmlsaXR5U3RhdGUoKSBjb25zdAoreworICAgIHJldHVybiBtX3Zpc2li
aWxpdHlTdGF0ZTsKK30KKyNlbmRpZgorCiBQYWdlOjpQYWdlQ2xpZW50czo6UGFnZUNsaWVudHMo
KQogICAgIDogY2hyb21lQ2xpZW50KDApCiAgICAgLCBjb250ZXh0TWVudUNsaWVudCgwKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L1BhZ2UuaAppbmRleCAwNzFiMTQyLi4xNGJhNGQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL1BhZ2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaApAQCAtMTE1LDcg
KzExNSwxMSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgICAgICBTcGVlY2hJbnB1dENs
aWVudCogc3BlZWNoSW5wdXRDbGllbnQ7CiAgICAgICAgIH07CiAKLSAgICAgICAgUGFnZShjb25z
dCBQYWdlQ2xpZW50cyYpOworICAgICAgICBQYWdlKGNvbnN0IFBhZ2VDbGllbnRzJgorI2lmIEVO
QUJMRShQQUdFX1ZJU0lCSUxJVFlfQVBJKQorICAgICAgICAgICAgLCBjb25zdCBTdHJpbmcmIGlu
aXRpYWxWaXNpYmlsaXR5U3RhdGU9InZpc2libGUiCisjZW5kaWYKKyAgICAgICAgKTsKICAgICAg
ICAgflBhZ2UoKTsKIAogICAgICAgICBSZW5kZXJUaGVtZSogdGhlbWUoKSBjb25zdCB7IHJldHVy
biBtX3RoZW1lLmdldCgpOyB9OwpAQCAtMjg3LDYgKzI5MSwxMiBAQCBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAgICAgICAgIC8vIHJlY3Vyc2l2ZSBmcmFtZXNldCBwYWdlcyBjYW4gcXVpY2tseSBicmlu
ZyB0aGUgcHJvZ3JhbSB0byBpdHMga25lZXMKICAgICAgICAgLy8gd2l0aCBleHBvbmVudGlhbCBn
cm93dGggaW4gdGhlIG51bWJlciBvZiBmcmFtZXMuCiAgICAgICAgIHN0YXRpYyBjb25zdCBpbnQg
bWF4TnVtYmVyT2ZGcmFtZXMgPSAxMDAwOworCisjaWYgRU5BQkxFKFBBR0VfVklTSUJJTElUWV9B
UEkpCisgICAgICAgIFN0cmluZyB2aXNpYmlsaXR5U3RhdGUoKSBjb25zdDsKKyAgICAgICAgdm9p
ZCBzZXRWaXNpYmlsaXR5U3RhdGUoY29uc3QgU3RyaW5nJik7CisjZW5kaWYKKwogICAgIHByaXZh
dGU6CiAgICAgICAgIHZvaWQgaW5pdEdyb3VwKCk7CiAKQEAgLTM4Niw2ICszOTYsMTEgQEAgbmFt
ZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBWaWV3TW9kZSBtX3ZpZXdNb2RlOwogCiAgICAgICAg
IFZpZXdwb3J0QXJndW1lbnRzIG1fdmlld3BvcnRBcmd1bWVudHM7CisKKyNpZiBFTkFCTEUoUEFH
RV9WSVNJQklMSVRZX0FQSSkKKyAgICAgICAgU3RyaW5nIG1fdmlzaWJpbGl0eVN0YXRlOworI2Vu
ZGlmCisKICAgICB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvZ3JhcGhpY3MvU1ZHSW1hZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUvc3Zn
L2dyYXBoaWNzL1NWR0ltYWdlLmNwcAppbmRleCAyZDQwMGE0Li5kZWM3NTE4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9zdmcvZ3JhcGhpY3MvU1ZHSW1hZ2UuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9ncmFwaGljcy9TVkdJbWFnZS5jcHAKQEAgLTI2NSw3ICsyNjUsMTEgQEAgYm9v
bCBTVkdJbWFnZTo6ZGF0YUNoYW5nZWQoYm9vbCBhbGxEYXRhUmVjZWl2ZWQpCiAgICAgICAgIC8v
IEZJWE1FOiBJZiB0aGlzIFNWRyBlbmRzIHVwIGxvYWRpbmcgaXRzZWxmLCB3ZSBtaWdodCBsZWFr
IHRoZSB3b3JsZC4KICAgICAgICAgLy8gVGhlIGNvbW1lbnQgc2FpZCB0aGF0IHRoZSBDYWNoZSBj
b2RlIGRvZXMgbm90IGtub3cgYWJvdXQgQ2FjaGVkSW1hZ2VzCiAgICAgICAgIC8vIGhvbGRpbmcg
RnJhbWVzIGFuZCB3b24ndCBrbm93IHRvIGJyZWFrIHRoZSBjeWNsZS4gQnV0IAotICAgICAgICBt
X3BhZ2Uuc2V0KG5ldyBQYWdlKHBhZ2VDbGllbnRzKSk7CisgICAgICAgIG1fcGFnZS5zZXQobmV3
IFBhZ2UocGFnZUNsaWVudHMKKyNpZiBFTkFCTEUoUEFHRV9WSVNJQklMSVRZX0FQSSkKKyAgICAg
ICAgICAgICwgInZpc2libGUiCisjZW5kaWYKKyAgICAgICAgKSk7CiAgICAgICAgIG1fcGFnZS0+
c2V0dGluZ3MoKS0+c2V0TWVkaWFFbmFibGVkKGZhbHNlKTsKICAgICAgICAgbV9wYWdlLT5zZXR0
aW5ncygpLT5zZXRKYXZhU2NyaXB0RW5hYmxlZChmYWxzZSk7CiAgICAgICAgIG1fcGFnZS0+c2V0
dGluZ3MoKS0+c2V0UGx1Z2luc0VuYWJsZWQoZmFsc2UpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxv
ZwppbmRleCAxY2IwMDY4Li44ODYyMjAyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDE5IEBACisyMDExLTAyLTEwICBTaGlzaGlyIEFncmF3YWwgIDxzaGlzaGlyQGNocm9t
aXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBJbXBsZW1lbnQgUGFnZSBWaXNpYmlsaXR5IEFQSS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTU0MTgxCisKKyAgICAgICAgKiBmZWF0dXJlcy5neXBp
OgorICAgICAgICAqIHB1YmxpYy9XZWJWaWV3Lmg6IEFkZGVkIGZ1bmN0aW9uIHRvIHNldCB2aXNp
YmlsdHkgc3RhdGUuCisgICAgICAgICogcHVibGljL1dlYlZpZXdDbGllbnQuaDoKKyAgICAgICAg
KFdlYktpdDo6V2ViVmlld0NsaWVudDo6dmlzaWJpbGl0eVN0YXRlKTogUmV0dXJucyB2aXNpYmls
aXR5IHN0YXRlLgorICAgICAgICAqIHNyYy9XZWJWaWV3SW1wbC5jcHA6CisgICAgICAgIChXZWJL
aXQ6OldlYlZpZXdJbXBsOjpXZWJWaWV3SW1wbCk6IFBhc3MgaW5pdGlhbCB2aXNpYmlsaXR5IHRv
IFBhZ2UgY29uc3RydWN0b3IuCisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpzZXRWaXNp
YmlsaXR5U3RhdGUpOiBTZXQgdmlzaWJpbGl0eSBzdGF0ZSBvZiB0aGUgdW5kZXJseWluZyBQYWdl
LgorICAgICAgICAqIHNyYy9XZWJWaWV3SW1wbC5oOiBkaXR0by4KKwogMjAxMS0wMi0xMSAgWmhl
bnlhbyBNbyAgPHptb0Bnb29nbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEtlbm5ldGgg
UnVzc2VsbC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vZmVhdHVyZXMuZ3lw
aSBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vZmVhdHVyZXMuZ3lwaQppbmRleCA4OTQ0ZmRlLi5h
NDI0MDY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL2ZlYXR1cmVzLmd5cGkK
KysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9mZWF0dXJlcy5neXBpCkBAIC02OSw2ICs2OSw3
IEBACiAgICAgICAgICdFTkFCTEVfT0ZGTElORV9XRUJfQVBQTElDQVRJT05TPTEnLAogICAgICAg
ICAnRU5BQkxFX09QRU5UWVBFX1NBTklUSVpFUj0xJywKICAgICAgICAgJ0VOQUJMRV9PUklFTlRB
VElPTl9FVkVOVFM9MCcsCisgICAgICAgICdFTkFCTEVfUEFHRV9WSVNJQklMSVRZX0FQST0xJywK
ICAgICAgICAgJ0VOQUJMRV9QUk9HUkVTU19UQUc9MScsCiAgICAgICAgICdFTkFCTEVfUkVHSVNU
RVJfUFJPVE9DT0xfSEFORExFUj0wJywKICAgICAgICAgJ0VOQUJMRV9SRVFVRVNUX0FOSU1BVElP
Tl9GUkFNRT0xJywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dl
YlZpZXcuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlZpZXcuaAppbmRleCA0
MjQzOTk4Li44MDZjZTY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1Ymxp
Yy9XZWJWaWV3LmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViVmlldy5o
CkBAIC0zNjQsNiArMzY0LDEzIEBAIHB1YmxpYzoKICAgICAvLyBBUElzLgogICAgIHZpcnR1YWwg
V2ViR3JhcGhpY3NDb250ZXh0M0QqIGdyYXBoaWNzQ29udGV4dDNEKCkgPSAwOwogCisgICAgLy8g
VmlzaWJpbGl0eSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLQorCisjaWYgZGVmaW5lZChFTkFCTEVfUEFHRV9WSVNJQklMSVRZX0FQSSkg
JiYgRU5BQkxFX1BBR0VfVklTSUJJTElUWV9BUEkKKyAgICAvLyBTZXRzIHRoZSB2aXNpYmlsaXR5
IG9mIHRoZSBXZWJWaWV3LgorICAgIHZpcnR1YWwgdm9pZCBzZXRWaXNpYmlsaXR5U3RhdGUoY29u
c3QgV2ViU3RyaW5nJikgPSAwOworI2VuZGlmCisKIHByb3RlY3RlZDoKICAgICB+V2ViVmlldygp
IHt9CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViVmll
d0NsaWVudC5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViVmlld0NsaWVudC5o
CmluZGV4IDI1ODg3ODguLmUzYTc0NTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vcHVibGljL1dlYlZpZXdDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1
YmxpYy9XZWJWaWV3Q2xpZW50LmgKQEAgLTMzNiw2ICszMzYsMTMgQEAgcHVibGljOgogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBXZWJTdHJpbmcmIHVybCwK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgV2ViU3RyaW5n
JiB0aXRsZSkgeyB9CiAKKyAgICAvLyBWaXNpYmlsaXR5IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyNpZiBkZWZpbmVkKEVOQUJM
RV9QQUdFX1ZJU0lCSUxJVFlfQVBJKSAmJiBFTkFCTEVfUEFHRV9WSVNJQklMSVRZX0FQSQorICAg
IC8vIEN1cnJlbnQgdmlzaWJpbGl0eS4KKyAgICB2aXJ0dWFsIFdlYlN0cmluZyB2aXNpYmlsaXR5
U3RhdGUoKSBjb25zdCB7IHJldHVybiBXZWJTdHJpbmcoInZpc2libGUiKTsgfQorI2VuZGlmCisK
IHByb3RlY3RlZDoKICAgICB+V2ViVmlld0NsaWVudCgpIHsgfQogfTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmNwcAppbmRleCAxOGE5NTNlLi44YWU5YWZjIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuY3BwCkBAIC0zMzYsNyArMzM2
LDExIEBAIFdlYlZpZXdJbXBsOjpXZWJWaWV3SW1wbChXZWJWaWV3Q2xpZW50KiBjbGllbnQsIFdl
YkRldlRvb2xzQWdlbnRDbGllbnQqIGRldlRvb2xzCiAgICAgcGFnZUNsaWVudHMuZ2VvbG9jYXRp
b25DbGllbnQgPSBtX2dlb2xvY2F0aW9uQ2xpZW50UHJveHkuZ2V0KCk7CiAgICAgcGFnZUNsaWVu
dHMuYmFja0ZvcndhcmRDbGllbnQgPSBCYWNrRm9yd2FyZExpc3RDaHJvbWl1bTo6Y3JlYXRlKHRo
aXMpOwogCi0gICAgbV9wYWdlLnNldChuZXcgUGFnZShwYWdlQ2xpZW50cykpOworICAgIG1fcGFn
ZS5zZXQobmV3IFBhZ2UocGFnZUNsaWVudHMKKyNpZiBkZWZpbmVkKEVOQUJMRV9QQUdFX1ZJU0lC
SUxJVFlfQVBJKSAmJiBFTkFCTEVfUEFHRV9WSVNJQklMSVRZX0FQSQorICAgICAgICAsIG1fY2xp
ZW50LT52aXNpYmlsaXR5U3RhdGUoKQorI2VuZGlmCisgICAgKSk7CiAKICAgICBtX2dlb2xvY2F0
aW9uQ2xpZW50UHJveHktPnNldENvbnRyb2xsZXIobV9wYWdlLT5nZW9sb2NhdGlvbkNvbnRyb2xs
ZXIoKSk7CiAKQEAgLTE2MzgsNiArMTY0MiwxNSBAQCB2b2lkIFdlYlZpZXdJbXBsOjpmdWxsRnJh
bWVQbHVnaW5ab29tTGV2ZWxDaGFuZ2VkKGRvdWJsZSB6b29tTGV2ZWwpCiAgICAgbV9jbGllbnQt
Pnpvb21MZXZlbENoYW5nZWQoKTsKIH0KIAorI2lmIGRlZmluZWQoRU5BQkxFX1BBR0VfVklTSUJJ
TElUWV9BUEkpICYmIEVOQUJMRV9QQUdFX1ZJU0lCSUxJVFlfQVBJCit2b2lkIFdlYlZpZXdJbXBs
OjpzZXRWaXNpYmlsaXR5U3RhdGUoY29uc3QgV2ViU3RyaW5nJiB2aXNpYmlsaXR5U3RhdGUpCit7
CisgICAgaWYgKCFtX3BhZ2UpCisgICAgICAgIHJldHVybjsKKyAgICBtX3BhZ2UtPnNldFZpc2li
aWxpdHlTdGF0ZSh2aXNpYmlsaXR5U3RhdGUpOworfQorI2VuZGlmCisKIGRvdWJsZSBXZWJWaWV3
Ojp6b29tTGV2ZWxUb1pvb21GYWN0b3IoZG91YmxlIHpvb21MZXZlbCkKIHsKICAgICByZXR1cm4g
c3RkOjpwb3codGV4dFNpemVNdWx0aXBsaWVyUmF0aW8sIHpvb21MZXZlbCk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5oIGIvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuaAppbmRleCA3NjQwY2ViLi5mYjUyMmUwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmgKQEAgLTM1Nyw2ICszNTcsMTAg
QEAgcHVibGljOgogICAgIC8vIGEgcGx1Z2luIGNhbiB1cGRhdGUgaXRzIG93biB6b29tLCBzYXkg
YmVjYXVzZSBvZiBpdHMgb3duIFVJLgogICAgIHZvaWQgZnVsbEZyYW1lUGx1Z2luWm9vbUxldmVs
Q2hhbmdlZChkb3VibGUgem9vbUxldmVsKTsKIAorI2lmIGRlZmluZWQoRU5BQkxFX1BBR0VfVklT
SUJJTElUWV9BUEkpICYmIEVOQUJMRV9QQUdFX1ZJU0lCSUxJVFlfQVBJCisgICAgdmlydHVhbCB2
b2lkIHNldFZpc2liaWxpdHlTdGF0ZShjb25zdCBXZWJTdHJpbmcmKTsKKyNlbmRpZgorCiBwcml2
YXRlOgogICAgIGZyaWVuZCBjbGFzcyBXZWJWaWV3OyAgLy8gU28gV2ViVmlldzo6Q3JlYXRlIGNh
biBjYWxsIG91ciBjb25zdHJ1Y3RvcgogICAgIGZyaWVuZCBjbGFzcyBXVEY6OlJlZkNvdW50ZWQ8
V2ViVmlld0ltcGw+OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nIGIv
U291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCmluZGV4IDRhM2M3NGYuLmU2ZGRhNzYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L21h
Yy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMiBAQAorMjAxMS0wMi0xMCAgU2hpc2hpciBBZ3Jhd2Fs
ICA8c2hpc2hpckBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgSW1wbGVtZW50IFBhZ2UgVmlzaWJpbGl0eSBBUEkuCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01NDE4MQorCisgICAgICAg
ICogQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWc6IEFkZCBFTkFCTEVfUEFH
RV9WSVNJQklMSVRZX0FQSS4KKwogMjAxMS0wMi0xMSAgR2VvZmZyZXkgR2FyZW4gIDxnZ2FyZW5A
YXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IE9saXZlciBIdW50LgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9tYWMvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25m
aWcgYi9Tb3VyY2UvV2ViS2l0L21hYy9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2Nv
bmZpZwppbmRleCAzOTcxMDM3Li4zYmQyMDcxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21h
Yy9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZworKysgYi9Tb3VyY2UvV2Vi
S2l0L21hYy9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZwpAQCAtODksNiAr
ODksNyBAQCBFTkFCTEVfTUFUSE1MID0gRU5BQkxFX01BVEhNTDsKIEVOQUJMRV9NRVRFUl9UQUcg
PSBFTkFCTEVfTUVURVJfVEFHOwogRU5BQkxFX05PVElGSUNBVElPTlMgPSA7CiBFTkFCTEVfT0ZG
TElORV9XRUJfQVBQTElDQVRJT05TID0gRU5BQkxFX09GRkxJTkVfV0VCX0FQUExJQ0FUSU9OUzsK
K0VOQUJMRV9QQUdFX1ZJU0lCSUxJVFlfQVBJID0gOwogRU5BQkxFX1BST0dSRVNTX1RBRyA9IEVO
QUJMRV9QUk9HUkVTU19UQUc7CiAKIEVOQUJMRV9SRUdJU1RFUl9QUk9UT0NPTF9IQU5ETEVSID0g
OwpAQCAtMTI1LDQgKzEyNiw0IEBAIEVOQUJMRV9YSFRNTE1QID0gOwogRU5BQkxFX1hQQVRIID0g
RU5BQkxFX1hQQVRIOwogRU5BQkxFX1hTTFQgPSBFTkFCTEVfWFNMVDsKIAotRkVBVFVSRV9ERUZJ
TkVTID0gJChFTkFCTEVfTElOS19QUkVGRVRDSCkgJChFTkFCTEVfQUNDRUxFUkFURURfMkRfQ0FO
VkFTKSAkKEVOQUJMRV9XRUJHTCkgJChFTkFCTEVfM0RfUkVOREVSSU5HKSAkKEVOQUJMRV9CTE9C
KSAkKEVOQUJMRV9DSEFOTkVMX01FU1NBR0lORykgJChFTkFCTEVfQ0xJRU5UX0JBU0VEX0dFT0xP
Q0FUSU9OKSAkKEVOQUJMRV9EQVRBQkFTRSkgJChFTkFCTEVfREFUQUdSSUQpICQoRU5BQkxFX0RB
VEFMSVNUKSAkKEVOQUJMRV9ERVZJQ0VfT1JJRU5UQVRJT04pICQoRU5BQkxFX0RJUkVDVE9SWV9V
UExPQUQpICQoRU5BQkxFX0RPTV9TVE9SQUdFKSAkKEVOQUJMRV9FVkVOVFNPVVJDRSkgJChFTkFC
TEVfRklMVEVSUykgJChFTkFCTEVfRklMRV9TWVNURU0pICQoRU5BQkxFX0ZVTExTQ1JFRU5fQVBJ
KSAkKEVOQUJMRV9HRU9MT0NBVElPTikgJChFTkFCTEVfSUNPTkRBVEFCQVNFKSAkKEVOQUJMRV9J
TUFHRV9SRVNJWkVSKSAkKEVOQUJMRV9JTkRFWEVEX0RBVEFCQVNFKSAkKEVOQUJMRV9JTlBVVF9T
UEVFQ0gpICQoRU5BQkxFX0pBVkFTQ1JJUFRfREVCVUdHRVIpICQoRU5BQkxFX01BVEhNTCkgJChF
TkFCTEVfTUVURVJfVEFHKSAkKEVOQUJMRV9OT1RJRklDQVRJT05TKSAkKEVOQUJMRV9PRkZMSU5F
X1dFQl9BUFBMSUNBVElPTlMpICQoRU5BQkxFX1BST0dSRVNTX1RBRykgJChFTkFCTEVfUkVHSVNU
RVJfUFJPVE9DT0xfSEFORExFUikgJChFTkFCTEVfU0hBUkVEX1dPUktFUlMpICQoRU5BQkxFX1NW
RykgJChFTkFCTEVfU1ZHX0FOSU1BVElPTikgJChFTkFCTEVfU1ZHX0FTX0lNQUdFKSAkKEVOQUJM
RV9TVkdfRE9NX09CSkNfQklORElOR1MpICQoRU5BQkxFX1NWR19GT05UUykgJChFTkFCTEVfU1ZH
X0ZPUkVJR05fT0JKRUNUKSAkKEVOQUJMRV9TVkdfVVNFKSAkKEVOQUJMRV9WSURFTykgJChFTkFC
TEVfTUVESUFfU1RBVElTVElDUykgJChFTkFCTEVfV0VCX0FVRElPKSAkKEVOQUJMRV9XRUJfU09D
S0VUUykgJChFTkFCTEVfV0VCX1RJTUlORykgJChFTkFCTEVfV01MKSAkKEVOQUJMRV9XT1JLRVJT
KSAkKEVOQUJMRV9YSFRNTE1QKSAkKEVOQUJMRV9YUEFUSCkgJChFTkFCTEVfWFNMVCk7CitGRUFU
VVJFX0RFRklORVMgPSAkKEVOQUJMRV9MSU5LX1BSRUZFVENIKSAkKEVOQUJMRV9BQ0NFTEVSQVRF
RF8yRF9DQU5WQVMpICQoRU5BQkxFX1dFQkdMKSAkKEVOQUJMRV8zRF9SRU5ERVJJTkcpICQoRU5B
QkxFX0JMT0IpICQoRU5BQkxFX0NIQU5ORUxfTUVTU0FHSU5HKSAkKEVOQUJMRV9DTElFTlRfQkFT
RURfR0VPTE9DQVRJT04pICQoRU5BQkxFX0RBVEFCQVNFKSAkKEVOQUJMRV9EQVRBR1JJRCkgJChF
TkFCTEVfREFUQUxJU1QpICQoRU5BQkxFX0RFVklDRV9PUklFTlRBVElPTikgJChFTkFCTEVfRElS
RUNUT1JZX1VQTE9BRCkgJChFTkFCTEVfRE9NX1NUT1JBR0UpICQoRU5BQkxFX0VWRU5UU09VUkNF
KSAkKEVOQUJMRV9GSUxURVJTKSAkKEVOQUJMRV9GSUxFX1NZU1RFTSkgJChFTkFCTEVfRlVMTFND
UkVFTl9BUEkpICQoRU5BQkxFX0dFT0xPQ0FUSU9OKSAkKEVOQUJMRV9JQ09OREFUQUJBU0UpICQo
RU5BQkxFX0lNQUdFX1JFU0laRVIpICQoRU5BQkxFX0lOREVYRURfREFUQUJBU0UpICQoRU5BQkxF
X0lOUFVUX1NQRUVDSCkgJChFTkFCTEVfSkFWQVNDUklQVF9ERUJVR0dFUikgJChFTkFCTEVfTUFU
SE1MKSAkKEVOQUJMRV9NRVRFUl9UQUcpICQoRU5BQkxFX05PVElGSUNBVElPTlMpICQoRU5BQkxF
X09GRkxJTkVfV0VCX0FQUExJQ0FUSU9OUykgJChFTkFCTEVfUEFHRV9WSVNJQklMSVRZX0FQSSkg
JChFTkFCTEVfUFJPR1JFU1NfVEFHKSAkKEVOQUJMRV9SRUdJU1RFUl9QUk9UT0NPTF9IQU5ETEVS
KSAkKEVOQUJMRV9TSEFSRURfV09SS0VSUykgJChFTkFCTEVfU1ZHKSAkKEVOQUJMRV9TVkdfQU5J
TUFUSU9OKSAkKEVOQUJMRV9TVkdfQVNfSU1BR0UpICQoRU5BQkxFX1NWR19ET01fT0JKQ19CSU5E
SU5HUykgJChFTkFCTEVfU1ZHX0ZPTlRTKSAkKEVOQUJMRV9TVkdfRk9SRUlHTl9PQkpFQ1QpICQo
RU5BQkxFX1NWR19VU0UpICQoRU5BQkxFX1ZJREVPKSAkKEVOQUJMRV9NRURJQV9TVEFUSVNUSUNT
KSAkKEVOQUJMRV9XRUJfQVVESU8pICQoRU5BQkxFX1dFQl9TT0NLRVRTKSAkKEVOQUJMRV9XRUJf
VElNSU5HKSAkKEVOQUJMRV9XTUwpICQoRU5BQkxFX1dPUktFUlMpICQoRU5BQkxFX1hIVE1MTVAp
ICQoRU5BQkxFX1hQQVRIKSAkKEVOQUJMRV9YU0xUKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCBhYzU0YmMzLi43
MmM3MTFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNl
L1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMTEtMDItMTAgIFNoaXNoaXIg
QWdyYXdhbCAgPHNoaXNoaXJAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIEltcGxlbWVudCBQYWdlIFZpc2liaWxpdHkgQVBJLgor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTQxODEKKwor
ICAgICAgICogQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWc6IEFkZCBFTkFC
TEVfUEFHRV9WSVNJQklMSVRZX0FQSS4KKwogMjAxMS0wMi0xMSAgQWxleGV5IFByb3NrdXJ5YWtv
diAgPGFwQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBBbmRlcnMgQ2FybHNzb24u
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5l
cy54Y2NvbmZpZyBiL1NvdXJjZS9XZWJLaXQyL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVz
LnhjY29uZmlnCmluZGV4IDM5NzEwMzcuLjNiZDIwNzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnCkBAIC04OSw2ICs4
OSw3IEBAIEVOQUJMRV9NQVRITUwgPSBFTkFCTEVfTUFUSE1MOwogRU5BQkxFX01FVEVSX1RBRyA9
IEVOQUJMRV9NRVRFUl9UQUc7CiBFTkFCTEVfTk9USUZJQ0FUSU9OUyA9IDsKIEVOQUJMRV9PRkZM
SU5FX1dFQl9BUFBMSUNBVElPTlMgPSBFTkFCTEVfT0ZGTElORV9XRUJfQVBQTElDQVRJT05TOwor
RU5BQkxFX1BBR0VfVklTSUJJTElUWV9BUEkgPSA7CiBFTkFCTEVfUFJPR1JFU1NfVEFHID0gRU5B
QkxFX1BST0dSRVNTX1RBRzsKIAogRU5BQkxFX1JFR0lTVEVSX1BST1RPQ09MX0hBTkRMRVIgPSA7
CkBAIC0xMjUsNCArMTI2LDQgQEAgRU5BQkxFX1hIVE1MTVAgPSA7CiBFTkFCTEVfWFBBVEggPSBF
TkFCTEVfWFBBVEg7CiBFTkFCTEVfWFNMVCA9IEVOQUJMRV9YU0xUOwogCi1GRUFUVVJFX0RFRklO
RVMgPSAkKEVOQUJMRV9MSU5LX1BSRUZFVENIKSAkKEVOQUJMRV9BQ0NFTEVSQVRFRF8yRF9DQU5W
QVMpICQoRU5BQkxFX1dFQkdMKSAkKEVOQUJMRV8zRF9SRU5ERVJJTkcpICQoRU5BQkxFX0JMT0Ip
ICQoRU5BQkxFX0NIQU5ORUxfTUVTU0FHSU5HKSAkKEVOQUJMRV9DTElFTlRfQkFTRURfR0VPTE9D
QVRJT04pICQoRU5BQkxFX0RBVEFCQVNFKSAkKEVOQUJMRV9EQVRBR1JJRCkgJChFTkFCTEVfREFU
QUxJU1QpICQoRU5BQkxFX0RFVklDRV9PUklFTlRBVElPTikgJChFTkFCTEVfRElSRUNUT1JZX1VQ
TE9BRCkgJChFTkFCTEVfRE9NX1NUT1JBR0UpICQoRU5BQkxFX0VWRU5UU09VUkNFKSAkKEVOQUJM
RV9GSUxURVJTKSAkKEVOQUJMRV9GSUxFX1NZU1RFTSkgJChFTkFCTEVfRlVMTFNDUkVFTl9BUEkp
ICQoRU5BQkxFX0dFT0xPQ0FUSU9OKSAkKEVOQUJMRV9JQ09OREFUQUJBU0UpICQoRU5BQkxFX0lN
QUdFX1JFU0laRVIpICQoRU5BQkxFX0lOREVYRURfREFUQUJBU0UpICQoRU5BQkxFX0lOUFVUX1NQ
RUVDSCkgJChFTkFCTEVfSkFWQVNDUklQVF9ERUJVR0dFUikgJChFTkFCTEVfTUFUSE1MKSAkKEVO
QUJMRV9NRVRFUl9UQUcpICQoRU5BQkxFX05PVElGSUNBVElPTlMpICQoRU5BQkxFX09GRkxJTkVf
V0VCX0FQUExJQ0FUSU9OUykgJChFTkFCTEVfUFJPR1JFU1NfVEFHKSAkKEVOQUJMRV9SRUdJU1RF
Ul9QUk9UT0NPTF9IQU5ETEVSKSAkKEVOQUJMRV9TSEFSRURfV09SS0VSUykgJChFTkFCTEVfU1ZH
KSAkKEVOQUJMRV9TVkdfQU5JTUFUSU9OKSAkKEVOQUJMRV9TVkdfQVNfSU1BR0UpICQoRU5BQkxF
X1NWR19ET01fT0JKQ19CSU5ESU5HUykgJChFTkFCTEVfU1ZHX0ZPTlRTKSAkKEVOQUJMRV9TVkdf
Rk9SRUlHTl9PQkpFQ1QpICQoRU5BQkxFX1NWR19VU0UpICQoRU5BQkxFX1ZJREVPKSAkKEVOQUJM
RV9NRURJQV9TVEFUSVNUSUNTKSAkKEVOQUJMRV9XRUJfQVVESU8pICQoRU5BQkxFX1dFQl9TT0NL
RVRTKSAkKEVOQUJMRV9XRUJfVElNSU5HKSAkKEVOQUJMRV9XTUwpICQoRU5BQkxFX1dPUktFUlMp
ICQoRU5BQkxFX1hIVE1MTVApICQoRU5BQkxFX1hQQVRIKSAkKEVOQUJMRV9YU0xUKTsKK0ZFQVRV
UkVfREVGSU5FUyA9ICQoRU5BQkxFX0xJTktfUFJFRkVUQ0gpICQoRU5BQkxFX0FDQ0VMRVJBVEVE
XzJEX0NBTlZBUykgJChFTkFCTEVfV0VCR0wpICQoRU5BQkxFXzNEX1JFTkRFUklORykgJChFTkFC
TEVfQkxPQikgJChFTkFCTEVfQ0hBTk5FTF9NRVNTQUdJTkcpICQoRU5BQkxFX0NMSUVOVF9CQVNF
RF9HRU9MT0NBVElPTikgJChFTkFCTEVfREFUQUJBU0UpICQoRU5BQkxFX0RBVEFHUklEKSAkKEVO
QUJMRV9EQVRBTElTVCkgJChFTkFCTEVfREVWSUNFX09SSUVOVEFUSU9OKSAkKEVOQUJMRV9ESVJF
Q1RPUllfVVBMT0FEKSAkKEVOQUJMRV9ET01fU1RPUkFHRSkgJChFTkFCTEVfRVZFTlRTT1VSQ0Up
ICQoRU5BQkxFX0ZJTFRFUlMpICQoRU5BQkxFX0ZJTEVfU1lTVEVNKSAkKEVOQUJMRV9GVUxMU0NS
RUVOX0FQSSkgJChFTkFCTEVfR0VPTE9DQVRJT04pICQoRU5BQkxFX0lDT05EQVRBQkFTRSkgJChF
TkFCTEVfSU1BR0VfUkVTSVpFUikgJChFTkFCTEVfSU5ERVhFRF9EQVRBQkFTRSkgJChFTkFCTEVf
SU5QVVRfU1BFRUNIKSAkKEVOQUJMRV9KQVZBU0NSSVBUX0RFQlVHR0VSKSAkKEVOQUJMRV9NQVRI
TUwpICQoRU5BQkxFX01FVEVSX1RBRykgJChFTkFCTEVfTk9USUZJQ0FUSU9OUykgJChFTkFCTEVf
T0ZGTElORV9XRUJfQVBQTElDQVRJT05TKSAkKEVOQUJMRV9QQUdFX1ZJU0lCSUxJVFlfQVBJKSAk
KEVOQUJMRV9QUk9HUkVTU19UQUcpICQoRU5BQkxFX1JFR0lTVEVSX1BST1RPQ09MX0hBTkRMRVIp
ICQoRU5BQkxFX1NIQVJFRF9XT1JLRVJTKSAkKEVOQUJMRV9TVkcpICQoRU5BQkxFX1NWR19BTklN
QVRJT04pICQoRU5BQkxFX1NWR19BU19JTUFHRSkgJChFTkFCTEVfU1ZHX0RPTV9PQkpDX0JJTkRJ
TkdTKSAkKEVOQUJMRV9TVkdfRk9OVFMpICQoRU5BQkxFX1NWR19GT1JFSUdOX09CSkVDVCkgJChF
TkFCTEVfU1ZHX1VTRSkgJChFTkFCTEVfVklERU8pICQoRU5BQkxFX01FRElBX1NUQVRJU1RJQ1Mp
ICQoRU5BQkxFX1dFQl9BVURJTykgJChFTkFCTEVfV0VCX1NPQ0tFVFMpICQoRU5BQkxFX1dFQl9U
SU1JTkcpICQoRU5BQkxFX1dNTCkgJChFTkFCTEVfV09SS0VSUykgJChFTkFCTEVfWEhUTUxNUCkg
JChFTkFCTEVfWFBBVEgpICQoRU5BQkxFX1hTTFQpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdl
TG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDRlNTlkYWUuLjk2Y2I4ZTQgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMiBAQAor
MjAxMS0wMi0xMCAgU2hpc2hpciBBZ3Jhd2FsICA8c2hpc2hpckBjaHJvbWl1bS5vcmc+CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSW1wbGVtZW50IFBh
Z2UgVmlzaWJpbGl0eSBBUEkuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD01NDE4MQorCisgICAgICAgICogU2NyaXB0cy9idWlsZC13ZWJraXQ6IEFkZCAt
LXBhZ2UtdmlzaWJpbGl0eS1hcGkgZmxhZy4KKwogMjAxMS0wMi0xMiAgQ2hhbmcgU2h1ICA8Y3No
dUB3ZWJraXQub3JnPgogCiAgICAgICAgIFVucmV2aWV3ZWQuCmRpZmYgLS1naXQgYS9Ub29scy9T
Y3JpcHRzL2J1aWxkLXdlYmtpdCBiL1Rvb2xzL1NjcmlwdHMvYnVpbGQtd2Via2l0CmluZGV4IDc0
MDE1ZWMuLmIwMDk0YWIgMTAwNzU1Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvYnVpbGQtd2Via2l0Cisr
KyBiL1Rvb2xzL1NjcmlwdHMvYnVpbGQtd2Via2l0CkBAIC05MSw2ICs5MSw3IEBAIG15ICgKICAg
ICAkbm90aWZpY2F0aW9uc1N1cHBvcnQsCiAgICAgJG9mZmxpbmVXZWJBcHBsaWNhdGlvblN1cHBv
cnQsCiAgICAgJG9yaWVudGF0aW9uRXZlbnRzU3VwcG9ydCwKKyAgICAkcGFnZVZpc2liaWxpdHlB
cGlTdXBwb3J0LAogICAgICRwcm9ncmVzc1RhZ1N1cHBvcnQsCiAgICAgJHJlZ2lzdGVyUHJvdG9j
b2xIYW5kbGVyU3VwcG9ydCwKICAgICAkc2hhcmVkV29ya2Vyc1N1cHBvcnQsCkBAIC0yMTQsNiAr
MjE1LDkgQEAgbXkgQGZlYXR1cmVzID0gKAogICAgIHsgb3B0aW9uID0+ICJvcmllbnRhdGlvbi1l
dmVudHMiLCBkZXNjID0+ICJUb2dnbGUgT3JpZW50YXRpb24gRXZlbnRzIHN1cHBvcnQiLAogICAg
ICAgZGVmaW5lID0+ICJFTkFCTEVfT1JJRU5UQVRJT05fRVZFTlRTIiwgZGVmYXVsdCA9PiAwLCB2
YWx1ZSA9PiBcJG9yaWVudGF0aW9uRXZlbnRzU3VwcG9ydCB9LAogCisgICAgeyBvcHRpb24gPT4g
InBhZ2UtdmlzaWJpbGl0eS1hcGkiLCBkZXNjID0+ICJQYWdlIFZpc2liaWxpdHkgQVBJIHN1cHBv
cnQiLAorICAgICAgZGVmaW5lID0+ICJFTkFCTEVfUEFHRV9WSVNJQklMSVRZX0FQSSIsIGRlZmF1
bHQgPT4gMCwgdmFsdWUgPT4gXCRwYWdlVmlzaWJpbGl0eUFwaVN1cHBvcnQgfSwKKwogICAgIHsg
b3B0aW9uID0+ICJwcm9ncmVzcy10YWciLCBkZXNjID0+ICJQcm9ncmVzcyBUYWcgc3VwcG9ydCIs
CiAgICAgICBkZWZpbmUgPT4gIkVOQUJMRV9QUk9HUkVTU19UQUciLCBkZWZhdWx0ID0+IDEsIHZh
bHVlID0+IFwkcHJvZ3Jlc3NUYWdTdXBwb3J0IH0sCiAKZGlmZiAtLWdpdCBhL2NvbmZpZ3VyZS5h
YyBiL2NvbmZpZ3VyZS5hYwppbmRleCA2MTA0MTZjLi5lMzk2NzgyIDEwMDY0NAotLS0gYS9jb25m
aWd1cmUuYWMKKysrIGIvY29uZmlndXJlLmFjCkBAIC01MjMsNiArNTIzLDE0IEBAIEFDX0FSR19F
TkFCTEUobWF0aG1sLAogICAgICAgICAgICAgICBbXSxbZW5hYmxlX21hdGhtbD0ibm8iXSkKIEFD
X01TR19SRVNVTFQoWyRlbmFibGVfbWF0aG1sXSkKIAorIyBjaGVjayB3aGV0aGVyIHRvIGVuYWJs
ZSBwYWdlIHZpc2liaWxpdHkgQVBJLgorQUNfTVNHX0NIRUNLSU5HKFt3aGV0aGVyIHRvIGVuYWJs
ZSBQYWdlIFZpc2liaWxpdHkgQVBJIHN1cHBvcnRdKQorQUNfQVJHX0VOQUJMRShwYWdlX3Zpc2li
aWxpdHlfYXBpLAorICAgICAgICAgICAgICBBQ19IRUxQX1NUUklORyhbLS1lbmFibGUtcGFnZS12
aXNpYmlsaXR5LWFwaV0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtlbmFibGUgcGFn
ZSB2aXNpYmlsaXR5IGFwaVtkZWZhdWx0PW5vXV0pLAorICAgICAgICAgICAgICBbXSxbZW5hYmxl
X3BhZ2VfdmlzaWJpbGl0eV9hcGk9Im5vIl0pCitBQ19NU0dfUkVTVUxUKFskZW5hYmxlX3BhZ2Vf
dmlzaWJpbGl0eV9hcGldKQorCiAjIGNoZWNrIHdoZXRoZXIgdG8gZW5hYmxlIFNWRyBzdXBwb3J0
CiBBQ19NU0dfQ0hFQ0tJTkcoW3doZXRoZXIgdG8gZW5hYmxlIFNWRyBzdXBwb3J0XSkKIEFDX0FS
R19FTkFCTEUoc3ZnLApAQCAtOTcxLDYgKzk3OSw3IEBAIEFNX0NPTkRJVElPTkFMKFtFTkFCTEVf
TUVESUFfU1RBVElTVElDU10sW3Rlc3QgIiRlbmFibGVfbWVkaWFfc3RhdGlzdGljcyIgPSAieWVz
CiBBTV9DT05ESVRJT05BTChbRU5BQkxFX0ZVTExTQ1JFRU5fQVBJXSxbdGVzdCAiJGVuYWJsZV9m
dWxsc2NyZWVuX2FwaSIgPSAieWVzIl0pCiBBTV9DT05ESVRJT05BTChbRU5BQkxFX05PVElGSUNB
VElPTlNdLFt0ZXN0ICIkZW5hYmxlX25vdGlmaWNhdGlvbnMiID0gInllcyJdKQogQU1fQ09ORElU
SU9OQUwoW0VOQUJMRV9PUklFTlRBVElPTl9FVkVOVFNdLFt0ZXN0ICIkZW5hYmxlX29yaWVudGF0
aW9uX2V2ZW50cyIgPSAieWVzIl0pCitBTV9DT05ESVRJT05BTChbRU5BQkxFX1BBR0VfVklTSUJJ
TElUWV9BUEldLFt0ZXN0ICIkZW5hYmxlX3BhZ2VfdmlzaWJpbGl0eV9hcGlzIiA9ICJ5ZXMiXSkK
IEFNX0NPTkRJVElPTkFMKFtFTkFCTEVfU1ZHXSxbdGVzdCAiJGVuYWJsZV9zdmciID0gInllcyJd
KQogQU1fQ09ORElUSU9OQUwoW0VOQUJMRV9TVkdfQU5JTUFUSU9OXSxbdGVzdCAiJGVuYWJsZV9z
dmdfYW5pbWF0aW9uIiA9ICJ5ZXMiXSkKIEFNX0NPTkRJVElPTkFMKFtFTkFCTEVfU1ZHX0ZPTlRT
XSxbdGVzdCAiJGVuYWJsZV9zdmdfZm9udHMiID0gInllcyJdKQpAQCAtMTA1Nyw2ICsxMDY2LDcg
QEAgRmVhdHVyZXM6CiAgSW1hZ2UgcmVzaXplciBzdXBwb3J0ICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgOiAkZW5hYmxlX2ltYWdlX3Jlc2l6ZXIKICBMaW5rIHByZWZldGNoIHN1
cHBvcnQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6ICRlbmFibGVfbGlua19w
cmVmZXRjaAogIE9wY29kZSBzdGF0cyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIDogJGVuYWJsZV9vcGNvZGVfc3RhdHMKKyBQYWdlIHZpc2liaWxpdHkgQVBJIHN1
cHBvcnQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6ICRlbmFibGVfcGFnZV92aXNpYmls
aXR5X2FwaQogIFNoYXJlZFdvcmtlcnMgc3VwcG9ydCAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIDogJGVuYWJsZV9zaGFyZWRfd29ya2VycwogIFNwZWVjaCBpbnB1dCBzdXBwb3J0
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogJGVuYWJsZV9pbnB1dF9zcGVl
Y2gKICBTVkcgc3VwcG9ydCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICA6ICRlbmFibGVfc3ZnCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>84908</attachid>
            <date>2011-03-06 18:58:08 -0800</date>
            <delta_ts>2011-04-20 17:33:49 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>visibility.patch</filename>
            <type>text/plain</type>
            <size>32971</size>
            <attacher name="Shishir Agrawal">shishir</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0NoYW5nZUxvZyBiL0NoYW5nZUxvZwppbmRleCBmZGQzNTA5Li42NDhlMzdm
IDEwMDY0NAotLS0gYS9DaGFuZ2VMb2cKKysrIGIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAK
KzIwMTEtMDMtMDYgIFNoaXNoaXIgQWdyYXdhbCAgPHNoaXNoaXJAY2hyb21pdW0ub3JnPgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEltcGxlbWVudCBQ
YWdlIFZpc2liaWxpdHkgQVBJLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9NTQxODEKKworICAgICAgICAqIGNvbmZpZ3VyZS5hYzoKKwogMjAxMS0wMy0w
NCAgRGltaXRyaSBHbGF6a292ICA8ZGdsYXprb3ZAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJl
dmlld2VkIGJ5IEFkYW0gQmFydGguCkBAIC01OCw3ICs2Nyw2IEBACiAgICAgICAgICogU291cmNl
L2NtYWtlY29uZmlnLmguY21ha2U6CiAgICAgICAgICogY29uZmlndXJlLmFjOgogCi0+Pj4+Pj4+
IC5yODAxODgKIDIwMTEtMDMtMDIgIEFuZHJhcyBCZWNzaSAgPGFiZWNzaUB3ZWJraXQub3JnPgog
CiAgICAgICAgIFJldmlld2VkIGJ5IExhc3psbyBHb21ib3MuCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxv
ZwppbmRleCBiY2NjYWQ5Li4xYTM4Zjc3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxMiBAQAorMjAxMS0wMy0wNiAgU2hpc2hpciBBZ3Jhd2FsICA8c2hpc2hpckBjaHJvbWl1
bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
SW1wbGVtZW50IFBhZ2UgVmlzaWJpbGl0eSBBUEkuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD01NDE4MQorCisgICAgICAgICogQ29uZmlndXJhdGlvbnMv
RmVhdHVyZURlZmluZXMueGNjb25maWc6IEFkZCBFTkFCTEVfUEFHRV9WSVNJQklMSVRZX0FQSS4K
KwogMjAxMS0wMy0wNSAgQWRhbSBCYXJ0aCAgPGFiYXJ0aEB3ZWJraXQub3JnPgogCiAgICAgICAg
IFJldmlld2VkIGJ5IERpbWl0cmkgR2xhemtvdi4KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZwppbmRl
eCAwYzFkMTNjLi40YzMwYjljIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ29u
ZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnCkBAIC05MSw2ICs5
MSw3IEBAIEVOQUJMRV9NQVRITUwgPSBFTkFCTEVfTUFUSE1MOwogRU5BQkxFX01FVEVSX1RBRyA9
IEVOQUJMRV9NRVRFUl9UQUc7CiBFTkFCTEVfTk9USUZJQ0FUSU9OUyA9IDsKIEVOQUJMRV9PRkZM
SU5FX1dFQl9BUFBMSUNBVElPTlMgPSBFTkFCTEVfT0ZGTElORV9XRUJfQVBQTElDQVRJT05TOwor
RU5BQkxFX1BBR0VfVklTSUJJTElUWV9BUEkgPSA7CiBFTkFCTEVfUFJPR1JFU1NfVEFHID0gRU5B
QkxFX1BST0dSRVNTX1RBRzsKIAogRU5BQkxFX1JFR0lTVEVSX1BST1RPQ09MX0hBTkRMRVIgPSA7
CkBAIC0xMjcsNCArMTI4LDQgQEAgRU5BQkxFX1hIVE1MTVAgPSA7CiBFTkFCTEVfWFBBVEggPSBF
TkFCTEVfWFBBVEg7CiBFTkFCTEVfWFNMVCA9IEVOQUJMRV9YU0xUOwogCi1GRUFUVVJFX0RFRklO
RVMgPSAkKEVOQUJMRV9MSU5LX1BSRUZFVENIKSAkKEVOQUJMRV9BQ0NFTEVSQVRFRF8yRF9DQU5W
QVMpICQoRU5BQkxFX1dFQkdMKSAkKEVOQUJMRV8zRF9SRU5ERVJJTkcpICQoRU5BQkxFX0JMT0Ip
ICQoRU5BQkxFX0NIQU5ORUxfTUVTU0FHSU5HKSAkKEVOQUJMRV9DTElFTlRfQkFTRURfR0VPTE9D
QVRJT04pICQoRU5BQkxFX0RBVEFCQVNFKSAkKEVOQUJMRV9EQVRBR1JJRCkgJChFTkFCTEVfREFU
QUxJU1QpICQoRU5BQkxFX0RBVEFfVFJBTlNGRVJfSVRFTVMpICQoRU5BQkxFX0RFVklDRV9PUklF
TlRBVElPTikgJChFTkFCTEVfRElSRUNUT1JZX1VQTE9BRCkgJChFTkFCTEVfRE9NX1NUT1JBR0Up
ICQoRU5BQkxFX0VWRU5UU09VUkNFKSAkKEVOQUJMRV9GSUxURVJTKSAkKEVOQUJMRV9GSUxFX1NZ
U1RFTSkgJChFTkFCTEVfRlVMTFNDUkVFTl9BUEkpICQoRU5BQkxFX0dFT0xPQ0FUSU9OKSAkKEVO
QUJMRV9JQ09OREFUQUJBU0UpICQoRU5BQkxFX0lNQUdFX1JFU0laRVIpICQoRU5BQkxFX0lOREVY
RURfREFUQUJBU0UpICQoRU5BQkxFX0lOUFVUX1NQRUVDSCkgJChFTkFCTEVfSkFWQVNDUklQVF9E
RUJVR0dFUikgJChFTkFCTEVfTUFUSE1MKSAkKEVOQUJMRV9NRVRFUl9UQUcpICQoRU5BQkxFX05P
VElGSUNBVElPTlMpICQoRU5BQkxFX09GRkxJTkVfV0VCX0FQUExJQ0FUSU9OUykgJChFTkFCTEVf
UFJPR1JFU1NfVEFHKSAkKEVOQUJMRV9SRUdJU1RFUl9QUk9UT0NPTF9IQU5ETEVSKSAkKEVOQUJM
RV9TSEFSRURfV09SS0VSUykgJChFTkFCTEVfU1ZHKSAkKEVOQUJMRV9TVkdfQU5JTUFUSU9OKSAk
KEVOQUJMRV9TVkdfQVNfSU1BR0UpICQoRU5BQkxFX1NWR19ET01fT0JKQ19CSU5ESU5HUykgJChF
TkFCTEVfU1ZHX0ZPTlRTKSAkKEVOQUJMRV9TVkdfRk9SRUlHTl9PQkpFQ1QpICQoRU5BQkxFX1NW
R19VU0UpICQoRU5BQkxFX1ZJREVPKSAkKEVOQUJMRV9NRURJQV9TVEFUSVNUSUNTKSAkKEVOQUJM
RV9XRUJfQVVESU8pICQoRU5BQkxFX1dFQl9TT0NLRVRTKSAkKEVOQUJMRV9XRUJfVElNSU5HKSAk
KEVOQUJMRV9XTUwpICQoRU5BQkxFX1dPUktFUlMpICQoRU5BQkxFX1hIVE1MTVApICQoRU5BQkxF
X1hQQVRIKSAkKEVOQUJMRV9YU0xUKTsKK0ZFQVRVUkVfREVGSU5FUyA9ICQoRU5BQkxFX0xJTktf
UFJFRkVUQ0gpICQoRU5BQkxFX0FDQ0VMRVJBVEVEXzJEX0NBTlZBUykgJChFTkFCTEVfV0VCR0wp
ICQoRU5BQkxFXzNEX1JFTkRFUklORykgJChFTkFCTEVfQkxPQikgJChFTkFCTEVfQ0hBTk5FTF9N
RVNTQUdJTkcpICQoRU5BQkxFX0NMSUVOVF9CQVNFRF9HRU9MT0NBVElPTikgJChFTkFCTEVfREFU
QUJBU0UpICQoRU5BQkxFX0RBVEFHUklEKSAkKEVOQUJMRV9EQVRBTElTVCkgJChFTkFCTEVfREFU
QV9UUkFOU0ZFUl9JVEVNUykgJChFTkFCTEVfREVWSUNFX09SSUVOVEFUSU9OKSAkKEVOQUJMRV9E
SVJFQ1RPUllfVVBMT0FEKSAkKEVOQUJMRV9ET01fU1RPUkFHRSkgJChFTkFCTEVfRVZFTlRTT1VS
Q0UpICQoRU5BQkxFX0ZJTFRFUlMpICQoRU5BQkxFX0ZJTEVfU1lTVEVNKSAkKEVOQUJMRV9GVUxM
U0NSRUVOX0FQSSkgJChFTkFCTEVfR0VPTE9DQVRJT04pICQoRU5BQkxFX0lDT05EQVRBQkFTRSkg
JChFTkFCTEVfSU1BR0VfUkVTSVpFUikgJChFTkFCTEVfSU5ERVhFRF9EQVRBQkFTRSkgJChFTkFC
TEVfSU5QVVRfU1BFRUNIKSAkKEVOQUJMRV9KQVZBU0NSSVBUX0RFQlVHR0VSKSAkKEVOQUJMRV9N
QVRITUwpICQoRU5BQkxFX01FVEVSX1RBRykgJChFTkFCTEVfTk9USUZJQ0FUSU9OUykgJChFTkFC
TEVfT0ZGTElORV9XRUJfQVBQTElDQVRJT05TKSAkKEVOQUJMRV9QQUdFX1ZJU0lCSUxJVFlfQVBJ
KSAkKEVOQUJMRV9QUk9HUkVTU19UQUcpICQoRU5BQkxFX1JFR0lTVEVSX1BST1RPQ09MX0hBTkRM
RVIpICQoRU5BQkxFX1NIQVJFRF9XT1JLRVJTKSAkKEVOQUJMRV9TVkcpICQoRU5BQkxFX1NWR19B
TklNQVRJT04pICQoRU5BQkxFX1NWR19BU19JTUFHRSkgJChFTkFCTEVfU1ZHX0RPTV9PQkpDX0JJ
TkRJTkdTKSAkKEVOQUJMRV9TVkdfRk9OVFMpICQoRU5BQkxFX1NWR19GT1JFSUdOX09CSkVDVCkg
JChFTkFCTEVfU1ZHX1VTRSkgJChFTkFCTEVfVklERU8pICQoRU5BQkxFX01FRElBX1NUQVRJU1RJ
Q1MpICQoRU5BQkxFX1dFQl9BVURJTykgJChFTkFCTEVfV0VCX1NPQ0tFVFMpICQoRU5BQkxFX1dF
Ql9USU1JTkcpICQoRU5BQkxFX1dNTCkgJChFTkFCTEVfV09SS0VSUykgJChFTkFCTEVfWEhUTUxN
UCkgJChFTkFCTEVfWFBBVEgpICQoRU5BQkxFX1hTTFQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGFjOTJiMzYu
LjAzYzVkZWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzNCBAQAorMjAxMS0wMy0wNiAgU2hpc2hp
ciBBZ3Jhd2FsICA8c2hpc2hpckBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSW1wbGVtZW50IFBhZ2UgVmlzaWJpbGl0eSBBUEku
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01NDE4MQor
CisgICAgICAgIE5vIG5ldyB0ZXN0cy4gKE9PUFMhKQorCisgICAgICAgICogV2ViQ29yZS5leHAu
aW46CisgICAgICAgICogQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWc6IEFk
ZCBFTkFCTEVfUEFHRV9WSVNJQklMSVRZX0FQSS4KKyAgICAgICAgKiBkb20vRG9jdW1lbnQuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OndlYmtpdFZpc2liaWxpdHlTdGF0ZSk6IFJl
dHVybnMgZG9jdW1lbnQgdmlzaWJpbGl0eSBzdGF0ZS4KKyAgICAgICAgKFdlYkNvcmU6OkRvY3Vt
ZW50Ojp3ZWJraXRJc1Zpc2libGUpOiBSZXR1cm5zIHRydWUgaWZmIGRvY3VtZW50IGlzIHZpc2li
bGUuCisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6dHJpZ2dlclZpc2liaWxpdHlTdGF0ZUNo
YW5nZUV2ZW50KTogVHJpZ2dlcnMgZG9jdW1lbnQgdmlzaWJpbGl0eSBjaGFuZ2UgZXZlbnQuCisg
ICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6aXNWaXNpYmlsaXR5U3RhdGVWYWx1ZVZhbGlkKTog
UmV0dXJucyB0cnVlIGlmIGlucHV0IHZpc2liaWxpdHkgdmFsdWUgaXMgdmFsaWQuCisgICAgICAg
ICogZG9tL0RvY3VtZW50Lmg6IEFkZGVkIGZ1bmN0aW9ucyBmb3IgZG9jdW1lbnQgdmlzaWJpbHR5
IHByb3BlcnRpZXMgYW5kIHZpc2liaWxpdHkgY2hhbmdlIGV2ZW50cy4KKyAgICAgICAgKiBkb20v
RG9jdW1lbnQuaWRsOiBBZGRlZCBuZXcgZG9jdW1lbnQgcHJvcGVydGllczogdmlzaWJsZSAoYm9v
bCkgYW5kIHZpc2liaWxpdHlTdGF0ZSAoRE9NU3RyaW5nKS4KKyAgICAgICAgKiBkb20vRXZlbnRO
YW1lcy5oOiBBZGRlZCB2aXNpYmlsaXR5c3RhdGVjaGFuZ2VldmVudC4KKyAgICAgICAgKiBwYWdl
L0ZyYW1lLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lOjp0cmlnZ2VyVmlzaWJpbGl0eVN0
YXRlQ2hhbmdlRXZlbnQpOiBUcmlnZ2VycyB2aXNpYmlsaXR5IGNoYW5nZSBpbiBkb2N1bWVudCBh
bmQgYWxsCisgICAgICAgIGNoaWxkIGZyYW1lcy4KKyAgICAgICAgKiBwYWdlL0ZyYW1lLmg6IGRp
dHRvLgorICAgICAgICAqIHBhZ2UvUGFnZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQYWdlOjpQ
YWdlKTogVGFrZSBpbml0aWFsIHZpc2libGl0eSBzdGF0ZSBhcyBpbnB1dCBwYXJhbS4KKyAgICAg
ICAgKFdlYkNvcmU6OlBhZ2U6OnNldFZpc2liaWxpdHlTdGF0ZSk6IFNldHMgdmlzaWJpbGl0eSBz
dGF0ZS4KKyAgICAgICAgKFdlYkNvcmU6OlBhZ2U6OnZpc2liaWxpdHlTdGF0ZSk6IFJldHVyc24g
Y3VycmVudCB2aXNpYmlsaXR5IHN0YXRlLgorICAgICAgICAqIHBhZ2UvUGFnZS5oOiBkaXR0by4K
KyAgICAgICAgKiBzdmcvZ3JhcGhpY3MvU1ZHSW1hZ2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
U1ZHSW1hZ2U6OmRhdGFDaGFuZ2VkKTogUGFzcyBpbml0aWFsIHZpc2liaWxpdHkgdG8gUGFnZSBj
b25zdHJ1Y3Rvci4KKwogMjAxMS0wMy0wNiAgSmVzc2llIEJlcmxpbiAgPGpiZXJsaW5AYXBwbGUu
Y29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IFNhbSBXZWluaWcuCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZyBiL1NvdXJj
ZS9XZWJDb3JlL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnCmluZGV4IDBj
MWQxM2MuLjRjMzBiOWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NvbmZpZ3VyYXRpb25z
L0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NvbmZpZ3VyYXRp
b25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnCkBAIC05MSw2ICs5MSw3IEBAIEVOQUJMRV9NQVRI
TUwgPSBFTkFCTEVfTUFUSE1MOwogRU5BQkxFX01FVEVSX1RBRyA9IEVOQUJMRV9NRVRFUl9UQUc7
CiBFTkFCTEVfTk9USUZJQ0FUSU9OUyA9IDsKIEVOQUJMRV9PRkZMSU5FX1dFQl9BUFBMSUNBVElP
TlMgPSBFTkFCTEVfT0ZGTElORV9XRUJfQVBQTElDQVRJT05TOworRU5BQkxFX1BBR0VfVklTSUJJ
TElUWV9BUEkgPSA7CiBFTkFCTEVfUFJPR1JFU1NfVEFHID0gRU5BQkxFX1BST0dSRVNTX1RBRzsK
IAogRU5BQkxFX1JFR0lTVEVSX1BST1RPQ09MX0hBTkRMRVIgPSA7CkBAIC0xMjcsNCArMTI4LDQg
QEAgRU5BQkxFX1hIVE1MTVAgPSA7CiBFTkFCTEVfWFBBVEggPSBFTkFCTEVfWFBBVEg7CiBFTkFC
TEVfWFNMVCA9IEVOQUJMRV9YU0xUOwogCi1GRUFUVVJFX0RFRklORVMgPSAkKEVOQUJMRV9MSU5L
X1BSRUZFVENIKSAkKEVOQUJMRV9BQ0NFTEVSQVRFRF8yRF9DQU5WQVMpICQoRU5BQkxFX1dFQkdM
KSAkKEVOQUJMRV8zRF9SRU5ERVJJTkcpICQoRU5BQkxFX0JMT0IpICQoRU5BQkxFX0NIQU5ORUxf
TUVTU0FHSU5HKSAkKEVOQUJMRV9DTElFTlRfQkFTRURfR0VPTE9DQVRJT04pICQoRU5BQkxFX0RB
VEFCQVNFKSAkKEVOQUJMRV9EQVRBR1JJRCkgJChFTkFCTEVfREFUQUxJU1QpICQoRU5BQkxFX0RB
VEFfVFJBTlNGRVJfSVRFTVMpICQoRU5BQkxFX0RFVklDRV9PUklFTlRBVElPTikgJChFTkFCTEVf
RElSRUNUT1JZX1VQTE9BRCkgJChFTkFCTEVfRE9NX1NUT1JBR0UpICQoRU5BQkxFX0VWRU5UU09V
UkNFKSAkKEVOQUJMRV9GSUxURVJTKSAkKEVOQUJMRV9GSUxFX1NZU1RFTSkgJChFTkFCTEVfRlVM
TFNDUkVFTl9BUEkpICQoRU5BQkxFX0dFT0xPQ0FUSU9OKSAkKEVOQUJMRV9JQ09OREFUQUJBU0Up
ICQoRU5BQkxFX0lNQUdFX1JFU0laRVIpICQoRU5BQkxFX0lOREVYRURfREFUQUJBU0UpICQoRU5B
QkxFX0lOUFVUX1NQRUVDSCkgJChFTkFCTEVfSkFWQVNDUklQVF9ERUJVR0dFUikgJChFTkFCTEVf
TUFUSE1MKSAkKEVOQUJMRV9NRVRFUl9UQUcpICQoRU5BQkxFX05PVElGSUNBVElPTlMpICQoRU5B
QkxFX09GRkxJTkVfV0VCX0FQUExJQ0FUSU9OUykgJChFTkFCTEVfUFJPR1JFU1NfVEFHKSAkKEVO
QUJMRV9SRUdJU1RFUl9QUk9UT0NPTF9IQU5ETEVSKSAkKEVOQUJMRV9TSEFSRURfV09SS0VSUykg
JChFTkFCTEVfU1ZHKSAkKEVOQUJMRV9TVkdfQU5JTUFUSU9OKSAkKEVOQUJMRV9TVkdfQVNfSU1B
R0UpICQoRU5BQkxFX1NWR19ET01fT0JKQ19CSU5ESU5HUykgJChFTkFCTEVfU1ZHX0ZPTlRTKSAk
KEVOQUJMRV9TVkdfRk9SRUlHTl9PQkpFQ1QpICQoRU5BQkxFX1NWR19VU0UpICQoRU5BQkxFX1ZJ
REVPKSAkKEVOQUJMRV9NRURJQV9TVEFUSVNUSUNTKSAkKEVOQUJMRV9XRUJfQVVESU8pICQoRU5B
QkxFX1dFQl9TT0NLRVRTKSAkKEVOQUJMRV9XRUJfVElNSU5HKSAkKEVOQUJMRV9XTUwpICQoRU5B
QkxFX1dPUktFUlMpICQoRU5BQkxFX1hIVE1MTVApICQoRU5BQkxFX1hQQVRIKSAkKEVOQUJMRV9Y
U0xUKTsKK0ZFQVRVUkVfREVGSU5FUyA9ICQoRU5BQkxFX0xJTktfUFJFRkVUQ0gpICQoRU5BQkxF
X0FDQ0VMRVJBVEVEXzJEX0NBTlZBUykgJChFTkFCTEVfV0VCR0wpICQoRU5BQkxFXzNEX1JFTkRF
UklORykgJChFTkFCTEVfQkxPQikgJChFTkFCTEVfQ0hBTk5FTF9NRVNTQUdJTkcpICQoRU5BQkxF
X0NMSUVOVF9CQVNFRF9HRU9MT0NBVElPTikgJChFTkFCTEVfREFUQUJBU0UpICQoRU5BQkxFX0RB
VEFHUklEKSAkKEVOQUJMRV9EQVRBTElTVCkgJChFTkFCTEVfREFUQV9UUkFOU0ZFUl9JVEVNUykg
JChFTkFCTEVfREVWSUNFX09SSUVOVEFUSU9OKSAkKEVOQUJMRV9ESVJFQ1RPUllfVVBMT0FEKSAk
KEVOQUJMRV9ET01fU1RPUkFHRSkgJChFTkFCTEVfRVZFTlRTT1VSQ0UpICQoRU5BQkxFX0ZJTFRF
UlMpICQoRU5BQkxFX0ZJTEVfU1lTVEVNKSAkKEVOQUJMRV9GVUxMU0NSRUVOX0FQSSkgJChFTkFC
TEVfR0VPTE9DQVRJT04pICQoRU5BQkxFX0lDT05EQVRBQkFTRSkgJChFTkFCTEVfSU1BR0VfUkVT
SVpFUikgJChFTkFCTEVfSU5ERVhFRF9EQVRBQkFTRSkgJChFTkFCTEVfSU5QVVRfU1BFRUNIKSAk
KEVOQUJMRV9KQVZBU0NSSVBUX0RFQlVHR0VSKSAkKEVOQUJMRV9NQVRITUwpICQoRU5BQkxFX01F
VEVSX1RBRykgJChFTkFCTEVfTk9USUZJQ0FUSU9OUykgJChFTkFCTEVfT0ZGTElORV9XRUJfQVBQ
TElDQVRJT05TKSAkKEVOQUJMRV9QQUdFX1ZJU0lCSUxJVFlfQVBJKSAkKEVOQUJMRV9QUk9HUkVT
U19UQUcpICQoRU5BQkxFX1JFR0lTVEVSX1BST1RPQ09MX0hBTkRMRVIpICQoRU5BQkxFX1NIQVJF
RF9XT1JLRVJTKSAkKEVOQUJMRV9TVkcpICQoRU5BQkxFX1NWR19BTklNQVRJT04pICQoRU5BQkxF
X1NWR19BU19JTUFHRSkgJChFTkFCTEVfU1ZHX0RPTV9PQkpDX0JJTkRJTkdTKSAkKEVOQUJMRV9T
VkdfRk9OVFMpICQoRU5BQkxFX1NWR19GT1JFSUdOX09CSkVDVCkgJChFTkFCTEVfU1ZHX1VTRSkg
JChFTkFCTEVfVklERU8pICQoRU5BQkxFX01FRElBX1NUQVRJU1RJQ1MpICQoRU5BQkxFX1dFQl9B
VURJTykgJChFTkFCTEVfV0VCX1NPQ0tFVFMpICQoRU5BQkxFX1dFQl9USU1JTkcpICQoRU5BQkxF
X1dNTCkgJChFTkFCTEVfV09SS0VSUykgJChFTkFCTEVfWEhUTUxNUCkgJChFTkFCTEVfWFBBVEgp
ICQoRU5BQkxFX1hTTFQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAu
aW4gYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgppbmRleCA1OTY3NTZjLi4xMTRkZmU3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLmV4cC5pbgpAQCAtNjc3LDcgKzY3Nyw2IEBAIF9fWk43V2ViQ29yZTRQ
YWdlNmdvQmFja0V2CiBfX1pON1dlYkNvcmU0UGFnZThnb1RvSXRlbUVQTlNfMTFIaXN0b3J5SXRl
bUVOU18xM0ZyYW1lTG9hZFR5cGVFCiBfX1pON1dlYkNvcmU0UGFnZTlnb0ZvcndhcmRFdgogX19a
TjdXZWJDb3JlNFBhZ2U5aW5pdEdyb3VwRXYKLV9fWk43V2ViQ29yZTRQYWdlQzFFUktOUzBfMTFQ
YWdlQ2xpZW50c0UKIF9fWk43V2ViQ29yZTRQYWdlRDFFdgogX19aTjdXZWJDb3JlNFBhdGgxNGFk
ZFJvdW5kZWRSZWN0RVJLTlNfOUZsb2F0UmVjdEVSS05TXzlGbG9hdFNpemVFCiBfX1pON1dlYkNv
cmU0UGF0aEMxRXYKQEAgLTE3NjcsNiArMTc2NiwxMiBAQCBfX1pON1dlYkNvcmU4RG9jdW1lbnQx
MnVwZGF0ZUxheW91dEV2CiBfX1pOSzdXZWJDb3JlNE5vZGUxNnRyYXZlcnNlTmV4dE5vZGVFUEtT
MF8KICNlbmRpZgogCisjaWYgRU5BQkxFKFBBR0VfVklTSUJJTElUWV9BUEkpCitfX1pON1dlYkNv
cmU0UGFnZUMxRVJLTlMwXzExUGFnZUNsaWVudHNFUktOM1dURjZTdHJpbmdFCisjZWxzZQorX19a
TjdXZWJDb3JlNFBhZ2VDMUVSS05TMF8xMVBhZ2VDbGllbnRzRQorI2VuZGlmCisKICNpZiBFTkFC
TEUoT0ZGTElORV9XRUJfQVBQTElDQVRJT05TKQogX19aTjdXZWJDb3JlMjNBcHBsaWNhdGlvbkNh
Y2hlU3RvcmFnZTE0cXVvdGFGb3JPcmlnaW5FUEtOU18xNFNlY3VyaXR5T3JpZ2luRVJ4CiBfX1pO
N1dlYkNvcmUyM0FwcGxpY2F0aW9uQ2FjaGVTdG9yYWdlMTRzZXRNYXhpbXVtU2l6ZUV4CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUv
ZG9tL0RvY3VtZW50LmNwcAppbmRleCBjYTc2OGQwLi43OTA5OGE5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1
bWVudC5jcHAKQEAgLTEzNzYsNiArMTM3NiwzMiBAQCB2b2lkIERvY3VtZW50OjpyZW1vdmVUaXRs
ZShFbGVtZW50KiB0aXRsZUVsZW1lbnQpCiAgICAgfQogfQogCisjaWYgRU5BQkxFKFBBR0VfVklT
SUJJTElUWV9BUEkpCitTdHJpbmcgRG9jdW1lbnQ6OndlYmtpdFZpc2liaWxpdHlTdGF0ZSgpIGNv
bnN0Cit7CisgICAgaWYgKCFtX2ZyYW1lIHx8ICFtX2ZyYW1lLT5wYWdlKCkpCisgICAgICAgIHJl
dHVybiAidmlzaWJsZSI7CisgICAgcmV0dXJuIG1fZnJhbWUtPnBhZ2UoKS0+dmlzaWJpbGl0eVN0
YXRlKCk7Cit9CisKK2Jvb2wgRG9jdW1lbnQ6OndlYmtpdElzVmlzaWJsZSgpIGNvbnN0Cit7Cisg
ICAgcmV0dXJuIHdlYmtpdFZpc2liaWxpdHlTdGF0ZSgpID09ICJ2aXNpYmxlIjsKK30KKwordm9p
ZCBEb2N1bWVudDo6dHJpZ2dlclZpc2liaWxpdHlTdGF0ZUNoYW5nZUV2ZW50KCkKK3sKKyAgICBk
aXNwYXRjaEV2ZW50KEV2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLndlYmtpdHZpc2liaWxpdHlz
dGF0ZWNoYW5nZUV2ZW50LCBmYWxzZSwgZmFsc2UpKTsKK30KKworYm9vbCBEb2N1bWVudDo6aXNW
aXNpYmlsaXR5U3RhdGVWYWx1ZVZhbGlkKGNvbnN0IFN0cmluZyYgdmlzaWJpbGl0eVN0YXRlKQor
eworICAgIGlmICh2aXNpYmlsaXR5U3RhdGUgPT0gInZpc2libGUiIHx8IHZpc2liaWxpdHlTdGF0
ZSA9PSAiaGlkZGVuIikKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgcmV0dXJuIGZhbHNlOwor
fQorI2VuZGlmCisKIFN0cmluZyBEb2N1bWVudDo6bm9kZU5hbWUoKSBjb25zdAogewogICAgIHJl
dHVybiAiI2RvY3VtZW50IjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVu
dC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKaW5kZXggZDU2NWUzZS4uZjQ3YTAy
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKKysrIGIvU291cmNl
L1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKQEAgLTMwMSw2ICszMDEsOSBAQCBwdWJsaWM6CiAjaWYg
RU5BQkxFKEZVTExTQ1JFRU5fQVBJKQogICAgIERFRklORV9BVFRSSUJVVEVfRVZFTlRfTElTVEVO
RVIod2Via2l0ZnVsbHNjcmVlbmNoYW5nZSk7CiAjZW5kaWYKKyNpZiBFTkFCTEUoUEFHRV9WSVNJ
QklMSVRZX0FQSSkKKyAgICBERUZJTkVfQVRUUklCVVRFX0VWRU5UX0xJU1RFTkVSKHdlYmtpdHZp
c2liaWxpdHlzdGF0ZWNoYW5nZSk7CisjZW5kaWYKIAogICAgIFZpZXdwb3J0QXJndW1lbnRzIHZp
ZXdwb3J0QXJndW1lbnRzKCkgY29uc3QgeyByZXR1cm4gbV92aWV3cG9ydEFyZ3VtZW50czsgfQog
CkBAIC0zNzcsNiArMzgwLDEzIEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgS1VSTCBiYXNlVVJJ
KCkgY29uc3Q7CiAKKyNpZiBFTkFCTEUoUEFHRV9WSVNJQklMSVRZX0FQSSkKKyAgICBTdHJpbmcg
d2Via2l0VmlzaWJpbGl0eVN0YXRlKCkgY29uc3Q7CisgICAgYm9vbCB3ZWJraXRJc1Zpc2libGUo
KSBjb25zdDsKKyAgICB2b2lkIHRyaWdnZXJWaXNpYmlsaXR5U3RhdGVDaGFuZ2VFdmVudCgpOwor
ICAgIHN0YXRpYyBib29sIGlzVmlzaWJpbGl0eVN0YXRlVmFsdWVWYWxpZChjb25zdCBTdHJpbmcm
KTsKKyNlbmRpZgorCiAgICAgUGFzc1JlZlB0cjxOb2RlPiBhZG9wdE5vZGUoUGFzc1JlZlB0cjxO
b2RlPiBzb3VyY2UsIEV4Y2VwdGlvbkNvZGUmKTsKIAogICAgIFBhc3NSZWZQdHI8SFRNTENvbGxl
Y3Rpb24+IGltYWdlcygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50
LmlkbCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5pZGwKaW5kZXggMTFkNjY3OC4uMmU0
Y2JmZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmlkbAorKysgYi9T
b3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaWRsCkBAIC0zNDMsNiArMzQzLDExIEBAIG1vZHVs
ZSBjb3JlIHsKICAgICAgICAgYm9vbGVhbiBpc0hUTUxEb2N1bWVudCgpOwogI2VuZGlmCiAKKyNp
ZiBkZWZpbmVkKEVOQUJMRV9QQUdFX1ZJU0lCSUxJVFlfQVBJKSAmJiBFTkFCTEVfUEFHRV9WSVNJ
QklMSVRZX0FQSQorICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIHdlYmtpdFZp
c2liaWxpdHlTdGF0ZTsKKyAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIGJvb2xlYW4gd2Via2l0
SXNWaXNpYmxlOworI2VuZGlmCisKICAgICB9OwogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vRXZlbnROYW1lcy5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50TmFtZXMuaApp
bmRleCBmNzA5NTcxLi5mNjE3YWZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRXZl
bnROYW1lcy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudE5hbWVzLmgKQEAgLTEwOCw2
ICsxMDgsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgbWFjcm8odW5sb2FkKSBcCiAgICAg
bWFjcm8odXBkYXRlcmVhZHkpIFwKICAgICBtYWNybyh2ZXJzaW9uY2hhbmdlKSBcCisgICAgbWFj
cm8od2Via2l0dmlzaWJpbGl0eXN0YXRlY2hhbmdlKSBcCiAgICAgbWFjcm8od3JpdGUpIFwKICAg
ICBtYWNybyh3cml0ZWVuZCkgXAogICAgIG1hY3JvKHdyaXRlc3RhcnQpIFwKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFt
ZS5jcHAKaW5kZXggNjQ1OGI5My4uNDViMjNmYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGFnZS9GcmFtZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZS5jcHAKQEAgLTY2
OCw2ICs2NjgsMTYgQEAgdm9pZCBGcmFtZTo6c2V0RE9NV2luZG93KERPTVdpbmRvdyogZG9tV2lu
ZG93KQogICAgIG1fZG9tV2luZG93ID0gZG9tV2luZG93OwogfQogCisjaWYgRU5BQkxFKFBBR0Vf
VklTSUJJTElUWV9BUEkpCit2b2lkIEZyYW1lOjp0cmlnZ2VyVmlzaWJpbGl0eVN0YXRlQ2hhbmdl
RXZlbnQoKQoreworICAgIGlmIChtX2RvYykKKyAgICAgICAgbV9kb2MtPnRyaWdnZXJWaXNpYmls
aXR5U3RhdGVDaGFuZ2VFdmVudCgpOworICAgIGZvciAoRnJhbWUqIGNoaWxkID0gdHJlZSgpLT5m
aXJzdENoaWxkKCk7IGNoaWxkOyBjaGlsZCA9IGNoaWxkLT50cmVlKCktPm5leHRTaWJsaW5nKCkp
CisgICAgICAgIGNoaWxkLT50cmlnZ2VyVmlzaWJpbGl0eVN0YXRlQ2hhbmdlRXZlbnQoKTsKK30K
KyNlbmRpZgorCiBET01XaW5kb3cqIEZyYW1lOjpkb21XaW5kb3coKSBjb25zdAogewogICAgIGlm
ICghbV9kb21XaW5kb3cpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lLmgKaW5kZXggMjVmOGFhYy4uYWJkNmVmYyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZS5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvRnJhbWUuaApAQCAtMTE4LDYgKzExOCwxMCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
ICAgICAgICAgdm9pZCB0cmFuc2ZlckNoaWxkRnJhbWVUb05ld0RvY3VtZW50KCk7CiAKKyNpZiBF
TkFCTEUoUEFHRV9WSVNJQklMSVRZX0FQSSkKKyAgICAgICAgdm9pZCB0cmlnZ2VyVmlzaWJpbGl0
eVN0YXRlQ2hhbmdlRXZlbnQoKTsKKyNlbmRpZgorCiAgICAgLy8gPT09PT09PT0gQWxsIHB1Ymxp
YyBmdW5jdGlvbnMgYmVsb3cgdGhpcyBwb2ludCBhcmUgY2FuZGlkYXRlcyB0byBtb3ZlIG91dCBv
ZiBGcmFtZSBpbnRvIGFub3RoZXIgY2xhc3MuID09PT09PT09CiAKICAgICAgICAgYm9vbCBpc0Rp
c2Nvbm5lY3RlZCgpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdl
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAKaW5kZXggNDExZWEzYy4uNmMwZjQ4
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL1BhZ2UuY3BwCkBAIC0xMTYsNyArMTE2LDExIEBAIHN0YXRpYyB2b2lkIG5l
dHdvcmtTdGF0ZUNoYW5nZWQoKQogICAgICAgICBmcmFtZXNbaV0tPmRvY3VtZW50KCktPmRpc3Bh
dGNoV2luZG93RXZlbnQoRXZlbnQ6OmNyZWF0ZShldmVudE5hbWUsIGZhbHNlLCBmYWxzZSkpOwog
fQogCi1QYWdlOjpQYWdlKGNvbnN0IFBhZ2VDbGllbnRzJiBwYWdlQ2xpZW50cykKK1BhZ2U6OlBh
Z2UoY29uc3QgUGFnZUNsaWVudHMmIHBhZ2VDbGllbnRzCisjaWYgRU5BQkxFKFBBR0VfVklTSUJJ
TElUWV9BUEkpCisgICAgICAgICAgICAsIGNvbnN0IFN0cmluZyYgaW5pdGlhbFZpc2liaWxpdHlT
dGF0ZQorI2VuZGlmCispCiAgICAgOiBtX2Nocm9tZShhZG9wdFB0cihuZXcgQ2hyb21lKHRoaXMs
IHBhZ2VDbGllbnRzLmNocm9tZUNsaWVudCkpKQogICAgICwgbV9kcmFnQ2FyZXRDb250cm9sbGVy
KGFkb3B0UHRyKG5ldyBTZWxlY3Rpb25Db250cm9sbGVyKDAsIHRydWUpKSkKICNpZiBFTkFCTEUo
RFJBR19TVVBQT1JUKQpAQCAtMTYyLDYgKzE2Niw5IEBAIFBhZ2U6OlBhZ2UoY29uc3QgUGFnZUNs
aWVudHMmIHBhZ2VDbGllbnRzKQogICAgICwgbV9jYW5TdGFydE1lZGlhKHRydWUpCiAgICAgLCBt
X3ZpZXdNb2RlKFZpZXdNb2RlV2luZG93ZWQpCiAgICAgLCBtX21pbmltdW1UaW1lckludGVydmFs
KFNldHRpbmdzOjpkZWZhdWx0TWluRE9NVGltZXJJbnRlcnZhbCgpKQorI2lmIEVOQUJMRShQQUdF
X1ZJU0lCSUxJVFlfQVBJKQorICAgICwgbV92aXNpYmlsaXR5U3RhdGUoaW5pdGlhbFZpc2liaWxp
dHlTdGF0ZSkKKyNlbmRpZgogewogICAgIGlmICghYWxsUGFnZXMpIHsKICAgICAgICAgYWxsUGFn
ZXMgPSBuZXcgSGFzaFNldDxQYWdlKj47CkBAIC05MDUsNiArOTEyLDI1IEBAIHZvaWQgUGFnZTo6
Y2hlY2tGcmFtZUNvdW50Q29uc2lzdGVuY3koKSBjb25zdAogfQogI2VuZGlmCiAKKyNpZiBFTkFC
TEUoUEFHRV9WSVNJQklMSVRZX0FQSSkKK3ZvaWQgUGFnZTo6c2V0VmlzaWJpbGl0eVN0YXRlKGNv
bnN0IFN0cmluZyYgdmlzaWJpbGl0eVN0YXRlKQoreworICAgIGlmICghRG9jdW1lbnQ6OmlzVmlz
aWJpbGl0eVN0YXRlVmFsdWVWYWxpZCh2aXNpYmlsaXR5U3RhdGUpKQorICAgICAgICByZXR1cm47
CisgICAgaWYgKG1fdmlzaWJpbGl0eVN0YXRlID09IHZpc2liaWxpdHlTdGF0ZSkKKyAgICAgICAg
cmV0dXJuOworICAgIG1fdmlzaWJpbGl0eVN0YXRlID0gdmlzaWJpbGl0eVN0YXRlOworCisgICAg
aWYgKG1fbWFpbkZyYW1lKQorICAgICAgICBtX21haW5GcmFtZS0+dHJpZ2dlclZpc2liaWxpdHlT
dGF0ZUNoYW5nZUV2ZW50KCk7Cit9CisKK1N0cmluZyBQYWdlOjp2aXNpYmlsaXR5U3RhdGUoKSBj
b25zdAoreworICAgIHJldHVybiBtX3Zpc2liaWxpdHlTdGF0ZTsKK30KKyNlbmRpZgorCiBQYWdl
OjpQYWdlQ2xpZW50czo6UGFnZUNsaWVudHMoKQogICAgIDogY2hyb21lQ2xpZW50KDApCiAgICAg
LCBjb250ZXh0TWVudUNsaWVudCgwKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9Q
YWdlLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaAppbmRleCA0NDk4ZDM2Li5hZTc5ZTll
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL1BhZ2UuaApAQCAtMTE1LDcgKzExNSwxMSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAgICAgICAgICAgICBTcGVlY2hJbnB1dENsaWVudCogc3BlZWNoSW5wdXRDbGllbnQ7CiAgICAg
ICAgIH07CiAKLSAgICAgICAgUGFnZShjb25zdCBQYWdlQ2xpZW50cyYpOworICAgICAgICBQYWdl
KGNvbnN0IFBhZ2VDbGllbnRzJgorI2lmIEVOQUJMRShQQUdFX1ZJU0lCSUxJVFlfQVBJKQorICAg
ICAgICAgICAgLCBjb25zdCBTdHJpbmcmIGluaXRpYWxWaXNpYmlsaXR5U3RhdGU9InZpc2libGUi
CisjZW5kaWYKKyAgICAgICAgKTsKICAgICAgICAgflBhZ2UoKTsKIAogICAgICAgICBSZW5kZXJU
aGVtZSogdGhlbWUoKSBjb25zdCB7IHJldHVybiBtX3RoZW1lLmdldCgpOyB9OwpAQCAtMjg0LDYg
KzI4OCwxMiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIC8vIHJlY3Vyc2l2ZSBmcmFt
ZXNldCBwYWdlcyBjYW4gcXVpY2tseSBicmluZyB0aGUgcHJvZ3JhbSB0byBpdHMga25lZXMKICAg
ICAgICAgLy8gd2l0aCBleHBvbmVudGlhbCBncm93dGggaW4gdGhlIG51bWJlciBvZiBmcmFtZXMu
CiAgICAgICAgIHN0YXRpYyBjb25zdCBpbnQgbWF4TnVtYmVyT2ZGcmFtZXMgPSAxMDAwOworCisj
aWYgRU5BQkxFKFBBR0VfVklTSUJJTElUWV9BUEkpCisgICAgICAgIFN0cmluZyB2aXNpYmlsaXR5
U3RhdGUoKSBjb25zdDsKKyAgICAgICAgdm9pZCBzZXRWaXNpYmlsaXR5U3RhdGUoY29uc3QgU3Ry
aW5nJik7CisjZW5kaWYKKwogICAgIHByaXZhdGU6CiAgICAgICAgIHZvaWQgaW5pdEdyb3VwKCk7
CiAKQEAgLTM4Niw2ICszOTYsMTAgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBWaWV3
cG9ydEFyZ3VtZW50cyBtX3ZpZXdwb3J0QXJndW1lbnRzOwogCiAgICAgICAgIGRvdWJsZSBtX21p
bmltdW1UaW1lckludGVydmFsOworCisjaWYgRU5BQkxFKFBBR0VfVklTSUJJTElUWV9BUEkpCisg
ICAgICAgIFN0cmluZyBtX3Zpc2liaWxpdHlTdGF0ZTsKKyNlbmRpZgogICAgIH07CiAKIH0gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9ncmFwaGlj
cy9TVkdJbWFnZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvZ3JhcGhpY3MvU1ZHSW1hZ2UuY3Bw
CmluZGV4IDg1YzAwZjMuLjg5OTQ5ZTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9n
cmFwaGljcy9TVkdJbWFnZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL2dyYXBoaWNzL1NW
R0ltYWdlLmNwcApAQCAtMjYzLDEyICsyNjMsMTMgQEAgYm9vbCBTVkdJbWFnZTo6ZGF0YUNoYW5n
ZWQoYm9vbCBhbGxEYXRhUmVjZWl2ZWQpCiAjZW5kaWYKIAogICAgICAgICAvLyBGSVhNRTogSWYg
dGhpcyBTVkcgZW5kcyB1cCBsb2FkaW5nIGl0c2VsZiwgd2UgbWlnaHQgbGVhayB0aGUgd29ybGQu
Ci0gICAgICAgIC8vIFRoZSBDYWNoZSBjb2RlIGRvZXMgbm90IGtub3cgYWJvdXQgQ2FjaGVkSW1h
Z2VzIGhvbGRpbmcgRnJhbWVzIGFuZAotICAgICAgICAvLyB3b24ndCBrbm93IHRvIGJyZWFrIHRo
ZSBjeWNsZS4KLSAgICAgICAgLy8gVGhpcyB3aWxsIGJlY29tZSBhbiBpc3N1ZSB3aGVuIFNWR0lt
YWdlIHdpbGwgYmUgYWJsZSB0byBsb2FkIG90aGVyCi0gICAgICAgIC8vIFNWR0ltYWdlIG9iamVj
dHMsIGJ1dCB3ZSdyZSBzYWZlIG5vdywgYmVjYXVzZSBTVkdJbWFnZSBjYW4gb25seSBiZQotICAg
ICAgICAvLyBsb2FkZWQgYnkgYSB0b3AtbGV2ZWwgZG9jdW1lbnQuCi0gICAgICAgIG1fcGFnZS5z
ZXQobmV3IFBhZ2UocGFnZUNsaWVudHMpKTsKKyAgICAgICAgLy8gVGhlIGNvbW1lbnQgc2FpZCB0
aGF0IHRoZSBDYWNoZSBjb2RlIGRvZXMgbm90IGtub3cgYWJvdXQgQ2FjaGVkSW1hZ2VzCisgICAg
ICAgIC8vIGhvbGRpbmcgRnJhbWVzIGFuZCB3b24ndCBrbm93IHRvIGJyZWFrIHRoZSBjeWNsZS4g
QnV0IAorICAgICAgICBtX3BhZ2Uuc2V0KG5ldyBQYWdlKHBhZ2VDbGllbnRzCisjaWYgRU5BQkxF
KFBBR0VfVklTSUJJTElUWV9BUEkpCisgICAgICAgICAgICAsICJ2aXNpYmxlIgorI2VuZGlmCisg
ICAgICAgICkpOwogICAgICAgICBtX3BhZ2UtPnNldHRpbmdzKCktPnNldE1lZGlhRW5hYmxlZChm
YWxzZSk7CiAgICAgICAgIG1fcGFnZS0+c2V0dGluZ3MoKS0+c2V0SmF2YVNjcmlwdEVuYWJsZWQo
ZmFsc2UpOwogICAgICAgICBtX3BhZ2UtPnNldHRpbmdzKCktPnNldFBsdWdpbnNFbmFibGVkKGZh
bHNlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nIGIvU291
cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXggMmIyMDVjZS4uYWJkMzQ5MSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOSBAQAorMjAxMS0wMy0wNiAgU2hp
c2hpciBBZ3Jhd2FsICA8c2hpc2hpckBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSW1wbGVtZW50IFBhZ2UgVmlzaWJpbGl0eSBB
UEkuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01NDE4
MQorCisgICAgICAgICogZmVhdHVyZXMuZ3lwaToKKyAgICAgICAgKiBwdWJsaWMvV2ViVmlldy5o
OiBBZGRlZCBmdW5jdGlvbiB0byBzZXQgdmlzaWJpbHR5IHN0YXRlLgorICAgICAgICAqIHB1Ymxp
Yy9XZWJWaWV3Q2xpZW50Lmg6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdDbGllbnQ6OnZpc2li
aWxpdHlTdGF0ZSk6IFJldHVybnMgdmlzaWJpbGl0eSBzdGF0ZS4KKyAgICAgICAgKiBzcmMvV2Vi
Vmlld0ltcGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6V2ViVmlld0ltcGwp
OiBQYXNzIGluaXRpYWwgdmlzaWJpbGl0eSB0byBQYWdlIGNvbnN0cnVjdG9yLgorICAgICAgICAo
V2ViS2l0OjpXZWJWaWV3SW1wbDo6c2V0VmlzaWJpbGl0eVN0YXRlKTogU2V0IHZpc2liaWxpdHkg
c3RhdGUgb2YgdGhlIHVuZGVybHlpbmcgUGFnZS4KKyAgICAgICAgKiBzcmMvV2ViVmlld0ltcGwu
aDogZGl0dG8uCisKIDIwMTEtMDMtMDYgIFNyZWVyYW0gUmFtYWNoYW5kcmFuICA8c3JlZXJhbUBn
b29nbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IERpbWl0cmkgR2xhemtvdi4KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vZmVhdHVyZXMuZ3lwaSBiL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vZmVhdHVyZXMuZ3lwaQppbmRleCA0ZTkxZDYwLi45NWU1NmQzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL2ZlYXR1cmVzLmd5cGkKKysrIGIvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9mZWF0dXJlcy5neXBpCkBAIC03Miw2ICs3Miw3IEBACiAgICAgICAgICdF
TkFCTEVfT0ZGTElORV9XRUJfQVBQTElDQVRJT05TPTEnLAogICAgICAgICAnRU5BQkxFX09QRU5U
WVBFX1NBTklUSVpFUj0xJywKICAgICAgICAgJ0VOQUJMRV9PUklFTlRBVElPTl9FVkVOVFM9MCcs
CisgICAgICAgICdFTkFCTEVfUEFHRV9WSVNJQklMSVRZX0FQST0xJywKICAgICAgICAgJ0VOQUJM
RV9QUk9HUkVTU19UQUc9MScsCiAgICAgICAgICdFTkFCTEVfUkVHSVNURVJfUFJPVE9DT0xfSEFO
RExFUj0wJywKICAgICAgICAgJ0VOQUJMRV9SRVFVRVNUX0FOSU1BVElPTl9GUkFNRT0xJywKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlZpZXcuaCBiL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlZpZXcuaAppbmRleCAwODFmZGRiLi5kNTA0OWI5
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJWaWV3LmgKKysr
IGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViVmlldy5oCkBAIC0zNjEsNiArMzYx
LDEzIEBAIHB1YmxpYzoKICAgICAvLyBBUElzLgogICAgIHZpcnR1YWwgV2ViR3JhcGhpY3NDb250
ZXh0M0QqIGdyYXBoaWNzQ29udGV4dDNEKCkgPSAwOwogCisgICAgLy8gVmlzaWJpbGl0eSAtLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQor
CisjaWYgZGVmaW5lZChFTkFCTEVfUEFHRV9WSVNJQklMSVRZX0FQSSkgJiYgRU5BQkxFX1BBR0Vf
VklTSUJJTElUWV9BUEkKKyAgICAvLyBTZXRzIHRoZSB2aXNpYmlsaXR5IG9mIHRoZSBXZWJWaWV3
LgorICAgIHZpcnR1YWwgdm9pZCBzZXRWaXNpYmlsaXR5U3RhdGUoY29uc3QgV2ViU3RyaW5nJikg
PSAwOworI2VuZGlmCisKIHByb3RlY3RlZDoKICAgICB+V2ViVmlldygpIHt9CiB9OwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViVmlld0NsaWVudC5oIGIvU291
cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViVmlld0NsaWVudC5oCmluZGV4IDI1ODg3ODgu
LmUzYTc0NTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlZp
ZXdDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJWaWV3Q2xp
ZW50LmgKQEAgLTMzNiw2ICszMzYsMTMgQEAgcHVibGljOgogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBjb25zdCBXZWJTdHJpbmcmIHVybCwKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgV2ViU3RyaW5nJiB0aXRsZSkgeyB9CiAK
KyAgICAvLyBWaXNpYmlsaXR5IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyNpZiBkZWZpbmVkKEVOQUJMRV9QQUdFX1ZJU0lCSUxJ
VFlfQVBJKSAmJiBFTkFCTEVfUEFHRV9WSVNJQklMSVRZX0FQSQorICAgIC8vIEN1cnJlbnQgdmlz
aWJpbGl0eS4KKyAgICB2aXJ0dWFsIFdlYlN0cmluZyB2aXNpYmlsaXR5U3RhdGUoKSBjb25zdCB7
IHJldHVybiBXZWJTdHJpbmcoInZpc2libGUiKTsgfQorI2VuZGlmCisKIHByb3RlY3RlZDoKICAg
ICB+V2ViVmlld0NsaWVudCgpIHsgfQogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vc3JjL1dlYlZpZXdJbXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dl
YlZpZXdJbXBsLmNwcAppbmRleCBjYjE0OTM1Li4zYmU0NjViIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuY3BwCkBAIC0zMzcsNyArMzM3LDExIEBAIFdlYlZpZXdJ
bXBsOjpXZWJWaWV3SW1wbChXZWJWaWV3Q2xpZW50KiBjbGllbnQsIFdlYkRldlRvb2xzQWdlbnRD
bGllbnQqIGRldlRvb2xzCiAgICAgcGFnZUNsaWVudHMuZ2VvbG9jYXRpb25DbGllbnQgPSBtX2dl
b2xvY2F0aW9uQ2xpZW50UHJveHkuZ2V0KCk7CiAgICAgcGFnZUNsaWVudHMuYmFja0ZvcndhcmRD
bGllbnQgPSBCYWNrRm9yd2FyZExpc3RDaHJvbWl1bTo6Y3JlYXRlKHRoaXMpOwogCi0gICAgbV9w
YWdlLnNldChuZXcgUGFnZShwYWdlQ2xpZW50cykpOworICAgIG1fcGFnZS5zZXQobmV3IFBhZ2Uo
cGFnZUNsaWVudHMKKyNpZiBkZWZpbmVkKEVOQUJMRV9QQUdFX1ZJU0lCSUxJVFlfQVBJKSAmJiBF
TkFCTEVfUEFHRV9WSVNJQklMSVRZX0FQSQorICAgICAgICAsIG1fY2xpZW50LT52aXNpYmlsaXR5
U3RhdGUoKQorI2VuZGlmCisgICAgKSk7CiAKICAgICBtX2dlb2xvY2F0aW9uQ2xpZW50UHJveHkt
PnNldENvbnRyb2xsZXIobV9wYWdlLT5nZW9sb2NhdGlvbkNvbnRyb2xsZXIoKSk7CiAKQEAgLTE2
NjEsNiArMTY2NSwxNSBAQCB2b2lkIFdlYlZpZXdJbXBsOjpmdWxsRnJhbWVQbHVnaW5ab29tTGV2
ZWxDaGFuZ2VkKGRvdWJsZSB6b29tTGV2ZWwpCiAgICAgbV9jbGllbnQtPnpvb21MZXZlbENoYW5n
ZWQoKTsKIH0KIAorI2lmIGRlZmluZWQoRU5BQkxFX1BBR0VfVklTSUJJTElUWV9BUEkpICYmIEVO
QUJMRV9QQUdFX1ZJU0lCSUxJVFlfQVBJCit2b2lkIFdlYlZpZXdJbXBsOjpzZXRWaXNpYmlsaXR5
U3RhdGUoY29uc3QgV2ViU3RyaW5nJiB2aXNpYmlsaXR5U3RhdGUpCit7CisgICAgaWYgKCFtX3Bh
Z2UpCisgICAgICAgIHJldHVybjsKKyAgICBtX3BhZ2UtPnNldFZpc2liaWxpdHlTdGF0ZSh2aXNp
YmlsaXR5U3RhdGUpOworfQorI2VuZGlmCisKIGRvdWJsZSBXZWJWaWV3Ojp6b29tTGV2ZWxUb1pv
b21GYWN0b3IoZG91YmxlIHpvb21MZXZlbCkKIHsKICAgICByZXR1cm4gc3RkOjpwb3codGV4dFNp
emVNdWx0aXBsaWVyUmF0aW8sIHpvb21MZXZlbCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMv
V2ViVmlld0ltcGwuaAppbmRleCA2ZGM5ZTkzLi45NTk4YzIzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vc3JjL1dlYlZpZXdJbXBsLmgKQEAgLTM1Miw2ICszNTIsMTAgQEAgcHVibGljOgogICAg
IC8vIGEgcGx1Z2luIGNhbiB1cGRhdGUgaXRzIG93biB6b29tLCBzYXkgYmVjYXVzZSBvZiBpdHMg
b3duIFVJLgogICAgIHZvaWQgZnVsbEZyYW1lUGx1Z2luWm9vbUxldmVsQ2hhbmdlZChkb3VibGUg
em9vbUxldmVsKTsKIAorI2lmIGRlZmluZWQoRU5BQkxFX1BBR0VfVklTSUJJTElUWV9BUEkpICYm
IEVOQUJMRV9QQUdFX1ZJU0lCSUxJVFlfQVBJCisgICAgdmlydHVhbCB2b2lkIHNldFZpc2liaWxp
dHlTdGF0ZShjb25zdCBXZWJTdHJpbmcmKTsKKyNlbmRpZgorCiBwcml2YXRlOgogICAgIGZyaWVu
ZCBjbGFzcyBXZWJWaWV3OyAgLy8gU28gV2ViVmlldzo6Q3JlYXRlIGNhbiBjYWxsIG91ciBjb25z
dHJ1Y3RvcgogICAgIGZyaWVuZCBjbGFzcyBXVEY6OlJlZkNvdW50ZWQ8V2ViVmlld0ltcGw+Owpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9t
YWMvQ2hhbmdlTG9nCmluZGV4IGE4YWNiNjcuLmFjMDYxNTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvbWFjL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwxMiBAQAorMjAxMS0wMy0wNiAgU2hpc2hpciBBZ3Jhd2FsICA8c2hpc2hpckBjaHJv
bWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgSW1wbGVtZW50IFBhZ2UgVmlzaWJpbGl0eSBBUEkuCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01NDE4MQorCisgICAgICAgICogQ29uZmlndXJhdGlv
bnMvRmVhdHVyZURlZmluZXMueGNjb25maWc6IEFkZCBFTkFCTEVfUEFHRV9WSVNJQklMSVRZX0FQ
SS4KKwogMjAxMS0wMy0wNiAgSmVzc2llIEJlcmxpbiAgPGpiZXJsaW5AYXBwbGUuY29tPgogCiAg
ICAgICAgIFJldmlld2VkIGJ5IFNhbSBXZWluaWcuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L21hYy9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZyBiL1NvdXJjZS9XZWJL
aXQvbWFjL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnCmluZGV4IDBjMWQx
M2MuLjRjMzBiOWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL0NvbmZpZ3VyYXRpb25z
L0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL0NvbmZpZ3Vy
YXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnCkBAIC05MSw2ICs5MSw3IEBAIEVOQUJMRV9N
QVRITUwgPSBFTkFCTEVfTUFUSE1MOwogRU5BQkxFX01FVEVSX1RBRyA9IEVOQUJMRV9NRVRFUl9U
QUc7CiBFTkFCTEVfTk9USUZJQ0FUSU9OUyA9IDsKIEVOQUJMRV9PRkZMSU5FX1dFQl9BUFBMSUNB
VElPTlMgPSBFTkFCTEVfT0ZGTElORV9XRUJfQVBQTElDQVRJT05TOworRU5BQkxFX1BBR0VfVklT
SUJJTElUWV9BUEkgPSA7CiBFTkFCTEVfUFJPR1JFU1NfVEFHID0gRU5BQkxFX1BST0dSRVNTX1RB
RzsKIAogRU5BQkxFX1JFR0lTVEVSX1BST1RPQ09MX0hBTkRMRVIgPSA7CkBAIC0xMjcsNCArMTI4
LDQgQEAgRU5BQkxFX1hIVE1MTVAgPSA7CiBFTkFCTEVfWFBBVEggPSBFTkFCTEVfWFBBVEg7CiBF
TkFCTEVfWFNMVCA9IEVOQUJMRV9YU0xUOwogCi1GRUFUVVJFX0RFRklORVMgPSAkKEVOQUJMRV9M
SU5LX1BSRUZFVENIKSAkKEVOQUJMRV9BQ0NFTEVSQVRFRF8yRF9DQU5WQVMpICQoRU5BQkxFX1dF
QkdMKSAkKEVOQUJMRV8zRF9SRU5ERVJJTkcpICQoRU5BQkxFX0JMT0IpICQoRU5BQkxFX0NIQU5O
RUxfTUVTU0FHSU5HKSAkKEVOQUJMRV9DTElFTlRfQkFTRURfR0VPTE9DQVRJT04pICQoRU5BQkxF
X0RBVEFCQVNFKSAkKEVOQUJMRV9EQVRBR1JJRCkgJChFTkFCTEVfREFUQUxJU1QpICQoRU5BQkxF
X0RBVEFfVFJBTlNGRVJfSVRFTVMpICQoRU5BQkxFX0RFVklDRV9PUklFTlRBVElPTikgJChFTkFC
TEVfRElSRUNUT1JZX1VQTE9BRCkgJChFTkFCTEVfRE9NX1NUT1JBR0UpICQoRU5BQkxFX0VWRU5U
U09VUkNFKSAkKEVOQUJMRV9GSUxURVJTKSAkKEVOQUJMRV9GSUxFX1NZU1RFTSkgJChFTkFCTEVf
RlVMTFNDUkVFTl9BUEkpICQoRU5BQkxFX0dFT0xPQ0FUSU9OKSAkKEVOQUJMRV9JQ09OREFUQUJB
U0UpICQoRU5BQkxFX0lNQUdFX1JFU0laRVIpICQoRU5BQkxFX0lOREVYRURfREFUQUJBU0UpICQo
RU5BQkxFX0lOUFVUX1NQRUVDSCkgJChFTkFCTEVfSkFWQVNDUklQVF9ERUJVR0dFUikgJChFTkFC
TEVfTUFUSE1MKSAkKEVOQUJMRV9NRVRFUl9UQUcpICQoRU5BQkxFX05PVElGSUNBVElPTlMpICQo
RU5BQkxFX09GRkxJTkVfV0VCX0FQUExJQ0FUSU9OUykgJChFTkFCTEVfUFJPR1JFU1NfVEFHKSAk
KEVOQUJMRV9SRUdJU1RFUl9QUk9UT0NPTF9IQU5ETEVSKSAkKEVOQUJMRV9TSEFSRURfV09SS0VS
UykgJChFTkFCTEVfU1ZHKSAkKEVOQUJMRV9TVkdfQU5JTUFUSU9OKSAkKEVOQUJMRV9TVkdfQVNf
SU1BR0UpICQoRU5BQkxFX1NWR19ET01fT0JKQ19CSU5ESU5HUykgJChFTkFCTEVfU1ZHX0ZPTlRT
KSAkKEVOQUJMRV9TVkdfRk9SRUlHTl9PQkpFQ1QpICQoRU5BQkxFX1NWR19VU0UpICQoRU5BQkxF
X1ZJREVPKSAkKEVOQUJMRV9NRURJQV9TVEFUSVNUSUNTKSAkKEVOQUJMRV9XRUJfQVVESU8pICQo
RU5BQkxFX1dFQl9TT0NLRVRTKSAkKEVOQUJMRV9XRUJfVElNSU5HKSAkKEVOQUJMRV9XTUwpICQo
RU5BQkxFX1dPUktFUlMpICQoRU5BQkxFX1hIVE1MTVApICQoRU5BQkxFX1hQQVRIKSAkKEVOQUJM
RV9YU0xUKTsKK0ZFQVRVUkVfREVGSU5FUyA9ICQoRU5BQkxFX0xJTktfUFJFRkVUQ0gpICQoRU5B
QkxFX0FDQ0VMRVJBVEVEXzJEX0NBTlZBUykgJChFTkFCTEVfV0VCR0wpICQoRU5BQkxFXzNEX1JF
TkRFUklORykgJChFTkFCTEVfQkxPQikgJChFTkFCTEVfQ0hBTk5FTF9NRVNTQUdJTkcpICQoRU5B
QkxFX0NMSUVOVF9CQVNFRF9HRU9MT0NBVElPTikgJChFTkFCTEVfREFUQUJBU0UpICQoRU5BQkxF
X0RBVEFHUklEKSAkKEVOQUJMRV9EQVRBTElTVCkgJChFTkFCTEVfREFUQV9UUkFOU0ZFUl9JVEVN
UykgJChFTkFCTEVfREVWSUNFX09SSUVOVEFUSU9OKSAkKEVOQUJMRV9ESVJFQ1RPUllfVVBMT0FE
KSAkKEVOQUJMRV9ET01fU1RPUkFHRSkgJChFTkFCTEVfRVZFTlRTT1VSQ0UpICQoRU5BQkxFX0ZJ
TFRFUlMpICQoRU5BQkxFX0ZJTEVfU1lTVEVNKSAkKEVOQUJMRV9GVUxMU0NSRUVOX0FQSSkgJChF
TkFCTEVfR0VPTE9DQVRJT04pICQoRU5BQkxFX0lDT05EQVRBQkFTRSkgJChFTkFCTEVfSU1BR0Vf
UkVTSVpFUikgJChFTkFCTEVfSU5ERVhFRF9EQVRBQkFTRSkgJChFTkFCTEVfSU5QVVRfU1BFRUNI
KSAkKEVOQUJMRV9KQVZBU0NSSVBUX0RFQlVHR0VSKSAkKEVOQUJMRV9NQVRITUwpICQoRU5BQkxF
X01FVEVSX1RBRykgJChFTkFCTEVfTk9USUZJQ0FUSU9OUykgJChFTkFCTEVfT0ZGTElORV9XRUJf
QVBQTElDQVRJT05TKSAkKEVOQUJMRV9QQUdFX1ZJU0lCSUxJVFlfQVBJKSAkKEVOQUJMRV9QUk9H
UkVTU19UQUcpICQoRU5BQkxFX1JFR0lTVEVSX1BST1RPQ09MX0hBTkRMRVIpICQoRU5BQkxFX1NI
QVJFRF9XT1JLRVJTKSAkKEVOQUJMRV9TVkcpICQoRU5BQkxFX1NWR19BTklNQVRJT04pICQoRU5B
QkxFX1NWR19BU19JTUFHRSkgJChFTkFCTEVfU1ZHX0RPTV9PQkpDX0JJTkRJTkdTKSAkKEVOQUJM
RV9TVkdfRk9OVFMpICQoRU5BQkxFX1NWR19GT1JFSUdOX09CSkVDVCkgJChFTkFCTEVfU1ZHX1VT
RSkgJChFTkFCTEVfVklERU8pICQoRU5BQkxFX01FRElBX1NUQVRJU1RJQ1MpICQoRU5BQkxFX1dF
Ql9BVURJTykgJChFTkFCTEVfV0VCX1NPQ0tFVFMpICQoRU5BQkxFX1dFQl9USU1JTkcpICQoRU5B
QkxFX1dNTCkgJChFTkFCTEVfV09SS0VSUykgJChFTkFCTEVfWEhUTUxNUCkgJChFTkFCTEVfWFBB
VEgpICQoRU5BQkxFX1hTTFQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9n
IGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IDBlMTllZDAuLjM0NmYzMDQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwxMiBAQAorMjAxMS0wMy0wNiAgU2hpc2hpciBBZ3Jhd2FsICA8c2hp
c2hpckBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgSW1wbGVtZW50IFBhZ2UgVmlzaWJpbGl0eSBBUEkuCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01NDE4MQorCisgICAgICAgKiBDb25m
aWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZzogQWRkIEVOQUJMRV9QQUdFX1ZJU0lC
SUxJVFlfQVBJLgorCiAyMDExLTAzLTA2ICBKZXNzaWUgQmVybGluICA8amJlcmxpbkBhcHBsZS5j
b20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgU2FtIFdlaW5pZy4KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnIGIvU291cmNl
L1dlYktpdDIvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcKaW5kZXggMzk3
MTAzNy4uM2JkMjA3MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ29uZmlndXJhdGlvbnMv
RmVhdHVyZURlZmluZXMueGNjb25maWcKKysrIGIvU291cmNlL1dlYktpdDIvQ29uZmlndXJhdGlv
bnMvRmVhdHVyZURlZmluZXMueGNjb25maWcKQEAgLTg5LDYgKzg5LDcgQEAgRU5BQkxFX01BVEhN
TCA9IEVOQUJMRV9NQVRITUw7CiBFTkFCTEVfTUVURVJfVEFHID0gRU5BQkxFX01FVEVSX1RBRzsK
IEVOQUJMRV9OT1RJRklDQVRJT05TID0gOwogRU5BQkxFX09GRkxJTkVfV0VCX0FQUExJQ0FUSU9O
UyA9IEVOQUJMRV9PRkZMSU5FX1dFQl9BUFBMSUNBVElPTlM7CitFTkFCTEVfUEFHRV9WSVNJQklM
SVRZX0FQSSA9IDsKIEVOQUJMRV9QUk9HUkVTU19UQUcgPSBFTkFCTEVfUFJPR1JFU1NfVEFHOwog
CiBFTkFCTEVfUkVHSVNURVJfUFJPVE9DT0xfSEFORExFUiA9IDsKQEAgLTEyNSw0ICsxMjYsNCBA
QCBFTkFCTEVfWEhUTUxNUCA9IDsKIEVOQUJMRV9YUEFUSCA9IEVOQUJMRV9YUEFUSDsKIEVOQUJM
RV9YU0xUID0gRU5BQkxFX1hTTFQ7CiAKLUZFQVRVUkVfREVGSU5FUyA9ICQoRU5BQkxFX0xJTktf
UFJFRkVUQ0gpICQoRU5BQkxFX0FDQ0VMRVJBVEVEXzJEX0NBTlZBUykgJChFTkFCTEVfV0VCR0wp
ICQoRU5BQkxFXzNEX1JFTkRFUklORykgJChFTkFCTEVfQkxPQikgJChFTkFCTEVfQ0hBTk5FTF9N
RVNTQUdJTkcpICQoRU5BQkxFX0NMSUVOVF9CQVNFRF9HRU9MT0NBVElPTikgJChFTkFCTEVfREFU
QUJBU0UpICQoRU5BQkxFX0RBVEFHUklEKSAkKEVOQUJMRV9EQVRBTElTVCkgJChFTkFCTEVfREVW
SUNFX09SSUVOVEFUSU9OKSAkKEVOQUJMRV9ESVJFQ1RPUllfVVBMT0FEKSAkKEVOQUJMRV9ET01f
U1RPUkFHRSkgJChFTkFCTEVfRVZFTlRTT1VSQ0UpICQoRU5BQkxFX0ZJTFRFUlMpICQoRU5BQkxF
X0ZJTEVfU1lTVEVNKSAkKEVOQUJMRV9GVUxMU0NSRUVOX0FQSSkgJChFTkFCTEVfR0VPTE9DQVRJ
T04pICQoRU5BQkxFX0lDT05EQVRBQkFTRSkgJChFTkFCTEVfSU1BR0VfUkVTSVpFUikgJChFTkFC
TEVfSU5ERVhFRF9EQVRBQkFTRSkgJChFTkFCTEVfSU5QVVRfU1BFRUNIKSAkKEVOQUJMRV9KQVZB
U0NSSVBUX0RFQlVHR0VSKSAkKEVOQUJMRV9NQVRITUwpICQoRU5BQkxFX01FVEVSX1RBRykgJChF
TkFCTEVfTk9USUZJQ0FUSU9OUykgJChFTkFCTEVfT0ZGTElORV9XRUJfQVBQTElDQVRJT05TKSAk
KEVOQUJMRV9QUk9HUkVTU19UQUcpICQoRU5BQkxFX1JFR0lTVEVSX1BST1RPQ09MX0hBTkRMRVIp
ICQoRU5BQkxFX1NIQVJFRF9XT1JLRVJTKSAkKEVOQUJMRV9TVkcpICQoRU5BQkxFX1NWR19BTklN
QVRJT04pICQoRU5BQkxFX1NWR19BU19JTUFHRSkgJChFTkFCTEVfU1ZHX0RPTV9PQkpDX0JJTkRJ
TkdTKSAkKEVOQUJMRV9TVkdfRk9OVFMpICQoRU5BQkxFX1NWR19GT1JFSUdOX09CSkVDVCkgJChF
TkFCTEVfU1ZHX1VTRSkgJChFTkFCTEVfVklERU8pICQoRU5BQkxFX01FRElBX1NUQVRJU1RJQ1Mp
ICQoRU5BQkxFX1dFQl9BVURJTykgJChFTkFCTEVfV0VCX1NPQ0tFVFMpICQoRU5BQkxFX1dFQl9U
SU1JTkcpICQoRU5BQkxFX1dNTCkgJChFTkFCTEVfV09SS0VSUykgJChFTkFCTEVfWEhUTUxNUCkg
JChFTkFCTEVfWFBBVEgpICQoRU5BQkxFX1hTTFQpOworRkVBVFVSRV9ERUZJTkVTID0gJChFTkFC
TEVfTElOS19QUkVGRVRDSCkgJChFTkFCTEVfQUNDRUxFUkFURURfMkRfQ0FOVkFTKSAkKEVOQUJM
RV9XRUJHTCkgJChFTkFCTEVfM0RfUkVOREVSSU5HKSAkKEVOQUJMRV9CTE9CKSAkKEVOQUJMRV9D
SEFOTkVMX01FU1NBR0lORykgJChFTkFCTEVfQ0xJRU5UX0JBU0VEX0dFT0xPQ0FUSU9OKSAkKEVO
QUJMRV9EQVRBQkFTRSkgJChFTkFCTEVfREFUQUdSSUQpICQoRU5BQkxFX0RBVEFMSVNUKSAkKEVO
QUJMRV9ERVZJQ0VfT1JJRU5UQVRJT04pICQoRU5BQkxFX0RJUkVDVE9SWV9VUExPQUQpICQoRU5B
QkxFX0RPTV9TVE9SQUdFKSAkKEVOQUJMRV9FVkVOVFNPVVJDRSkgJChFTkFCTEVfRklMVEVSUykg
JChFTkFCTEVfRklMRV9TWVNURU0pICQoRU5BQkxFX0ZVTExTQ1JFRU5fQVBJKSAkKEVOQUJMRV9H
RU9MT0NBVElPTikgJChFTkFCTEVfSUNPTkRBVEFCQVNFKSAkKEVOQUJMRV9JTUFHRV9SRVNJWkVS
KSAkKEVOQUJMRV9JTkRFWEVEX0RBVEFCQVNFKSAkKEVOQUJMRV9JTlBVVF9TUEVFQ0gpICQoRU5B
QkxFX0pBVkFTQ1JJUFRfREVCVUdHRVIpICQoRU5BQkxFX01BVEhNTCkgJChFTkFCTEVfTUVURVJf
VEFHKSAkKEVOQUJMRV9OT1RJRklDQVRJT05TKSAkKEVOQUJMRV9PRkZMSU5FX1dFQl9BUFBMSUNB
VElPTlMpICQoRU5BQkxFX1BBR0VfVklTSUJJTElUWV9BUEkpICQoRU5BQkxFX1BST0dSRVNTX1RB
RykgJChFTkFCTEVfUkVHSVNURVJfUFJPVE9DT0xfSEFORExFUikgJChFTkFCTEVfU0hBUkVEX1dP
UktFUlMpICQoRU5BQkxFX1NWRykgJChFTkFCTEVfU1ZHX0FOSU1BVElPTikgJChFTkFCTEVfU1ZH
X0FTX0lNQUdFKSAkKEVOQUJMRV9TVkdfRE9NX09CSkNfQklORElOR1MpICQoRU5BQkxFX1NWR19G
T05UUykgJChFTkFCTEVfU1ZHX0ZPUkVJR05fT0JKRUNUKSAkKEVOQUJMRV9TVkdfVVNFKSAkKEVO
QUJMRV9WSURFTykgJChFTkFCTEVfTUVESUFfU1RBVElTVElDUykgJChFTkFCTEVfV0VCX0FVRElP
KSAkKEVOQUJMRV9XRUJfU09DS0VUUykgJChFTkFCTEVfV0VCX1RJTUlORykgJChFTkFCTEVfV01M
KSAkKEVOQUJMRV9XT1JLRVJTKSAkKEVOQUJMRV9YSFRNTE1QKSAkKEVOQUJMRV9YUEFUSCkgJChF
TkFCTEVfWFNMVCk7CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VM
b2cKaW5kZXggMjk0NDc4OC4uMzcxOTcyYyAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisr
KyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyIEBACisyMDExLTAzLTA2ICBTaGlzaGly
IEFncmF3YWwgIDxzaGlzaGlyQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJbXBsZW1lbnQgUGFnZSBWaXNpYmlsaXR5IEFQSS4K
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTU0MTgxCisK
KyAgICAgICAgKiBTY3JpcHRzL2J1aWxkLXdlYmtpdDogQWRkIC0tcGFnZS12aXNpYmlsaXR5LWFw
aSBmbGFnLgorCiAyMDExLTAzLTA1ICBCcmlhbiBXZWluc3RlaW4gIDxid2VpbnN0ZWluQGFwcGxl
LmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBTYW0gV2VpbmlnLgpkaWZmIC0tZ2l0IGEvVG9v
bHMvU2NyaXB0cy9idWlsZC13ZWJraXQgYi9Ub29scy9TY3JpcHRzL2J1aWxkLXdlYmtpdAppbmRl
eCAyODQ3M2I3Li4zZDNlY2NlIDEwMDc1NQotLS0gYS9Ub29scy9TY3JpcHRzL2J1aWxkLXdlYmtp
dAorKysgYi9Ub29scy9TY3JpcHRzL2J1aWxkLXdlYmtpdApAQCAtOTIsNiArOTIsNyBAQCBteSAo
CiAgICAgJG5vdGlmaWNhdGlvbnNTdXBwb3J0LAogICAgICRvZmZsaW5lV2ViQXBwbGljYXRpb25T
dXBwb3J0LAogICAgICRvcmllbnRhdGlvbkV2ZW50c1N1cHBvcnQsCisgICAgJHBhZ2VWaXNpYmls
aXR5QXBpU3VwcG9ydCwKICAgICAkcHJvZ3Jlc3NUYWdTdXBwb3J0LAogICAgICRyZWdpc3RlclBy
b3RvY29sSGFuZGxlclN1cHBvcnQsCiAgICAgJHNoYXJlZFdvcmtlcnNTdXBwb3J0LApAQCAtMjE4
LDYgKzIxOSw5IEBAIG15IEBmZWF0dXJlcyA9ICgKICAgICB7IG9wdGlvbiA9PiAib3JpZW50YXRp
b24tZXZlbnRzIiwgZGVzYyA9PiAiVG9nZ2xlIE9yaWVudGF0aW9uIEV2ZW50cyBzdXBwb3J0IiwK
ICAgICAgIGRlZmluZSA9PiAiRU5BQkxFX09SSUVOVEFUSU9OX0VWRU5UUyIsIGRlZmF1bHQgPT4g
MCwgdmFsdWUgPT4gXCRvcmllbnRhdGlvbkV2ZW50c1N1cHBvcnQgfSwKIAorICAgIHsgb3B0aW9u
ID0+ICJwYWdlLXZpc2liaWxpdHktYXBpIiwgZGVzYyA9PiAiUGFnZSBWaXNpYmlsaXR5IEFQSSBz
dXBwb3J0IiwKKyAgICAgIGRlZmluZSA9PiAiRU5BQkxFX1BBR0VfVklTSUJJTElUWV9BUEkiLCBk
ZWZhdWx0ID0+IDAsIHZhbHVlID0+IFwkcGFnZVZpc2liaWxpdHlBcGlTdXBwb3J0IH0sCisKICAg
ICB7IG9wdGlvbiA9PiAicHJvZ3Jlc3MtdGFnIiwgZGVzYyA9PiAiUHJvZ3Jlc3MgVGFnIHN1cHBv
cnQiLAogICAgICAgZGVmaW5lID0+ICJFTkFCTEVfUFJPR1JFU1NfVEFHIiwgZGVmYXVsdCA9PiAx
LCB2YWx1ZSA9PiBcJHByb2dyZXNzVGFnU3VwcG9ydCB9LAogCmRpZmYgLS1naXQgYS9jb25maWd1
cmUuYWMgYi9jb25maWd1cmUuYWMKaW5kZXggZTgzZTJiNS4uYmVkZGFhYSAxMDA2NDQKLS0tIGEv
Y29uZmlndXJlLmFjCisrKyBiL2NvbmZpZ3VyZS5hYwpAQCAtNTc5LDYgKzU3OSwxNCBAQCBBQ19B
UkdfRU5BQkxFKG1hdGhtbCwKICAgICAgICAgICAgICAgW10sW2VuYWJsZV9tYXRobWw9Im5vIl0p
CiBBQ19NU0dfUkVTVUxUKFskZW5hYmxlX21hdGhtbF0pCiAKKyMgY2hlY2sgd2hldGhlciB0byBl
bmFibGUgcGFnZSB2aXNpYmlsaXR5IEFQSS4KK0FDX01TR19DSEVDS0lORyhbd2hldGhlciB0byBl
bmFibGUgUGFnZSBWaXNpYmlsaXR5IEFQSSBzdXBwb3J0XSkKK0FDX0FSR19FTkFCTEUocGFnZV92
aXNpYmlsaXR5X2FwaSwKKyAgICAgICAgICAgICAgQUNfSEVMUF9TVFJJTkcoWy0tZW5hYmxlLXBh
Z2UtdmlzaWJpbGl0eS1hcGldLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZW5hYmxl
IHBhZ2UgdmlzaWJpbGl0eSBhcGlbZGVmYXVsdD1ub11dKSwKKyAgICAgICAgICAgICAgW10sW2Vu
YWJsZV9wYWdlX3Zpc2liaWxpdHlfYXBpPSJubyJdKQorQUNfTVNHX1JFU1VMVChbJGVuYWJsZV9w
YWdlX3Zpc2liaWxpdHlfYXBpXSkKKwogIyBjaGVjayB3aGV0aGVyIHRvIGVuYWJsZSBTVkcgc3Vw
cG9ydAogQUNfTVNHX0NIRUNLSU5HKFt3aGV0aGVyIHRvIGVuYWJsZSBTVkcgc3VwcG9ydF0pCiBB
Q19BUkdfRU5BQkxFKHN2ZywKQEAgLTEwNDAsNiArMTA0OCw3IEBAIEFNX0NPTkRJVElPTkFMKFtF
TkFCTEVfTUVESUFfU1RBVElTVElDU10sW3Rlc3QgIiRlbmFibGVfbWVkaWFfc3RhdGlzdGljcyIg
PSAieWVzCiBBTV9DT05ESVRJT05BTChbRU5BQkxFX0ZVTExTQ1JFRU5fQVBJXSxbdGVzdCAiJGVu
YWJsZV9mdWxsc2NyZWVuX2FwaSIgPSAieWVzIl0pCiBBTV9DT05ESVRJT05BTChbRU5BQkxFX05P
VElGSUNBVElPTlNdLFt0ZXN0ICIkZW5hYmxlX25vdGlmaWNhdGlvbnMiID0gInllcyJdKQogQU1f
Q09ORElUSU9OQUwoW0VOQUJMRV9PUklFTlRBVElPTl9FVkVOVFNdLFt0ZXN0ICIkZW5hYmxlX29y
aWVudGF0aW9uX2V2ZW50cyIgPSAieWVzIl0pCitBTV9DT05ESVRJT05BTChbRU5BQkxFX1BBR0Vf
VklTSUJJTElUWV9BUEldLFt0ZXN0ICIkZW5hYmxlX3BhZ2VfdmlzaWJpbGl0eV9hcGlzIiA9ICJ5
ZXMiXSkKIEFNX0NPTkRJVElPTkFMKFtFTkFCTEVfU1ZHXSxbdGVzdCAiJGVuYWJsZV9zdmciID0g
InllcyJdKQogQU1fQ09ORElUSU9OQUwoW0VOQUJMRV9TVkdfQU5JTUFUSU9OXSxbdGVzdCAiJGVu
YWJsZV9zdmdfYW5pbWF0aW9uIiA9ICJ5ZXMiXSkKIEFNX0NPTkRJVElPTkFMKFtFTkFCTEVfU1ZH
X0ZPTlRTXSxbdGVzdCAiJGVuYWJsZV9zdmdfZm9udHMiID0gInllcyJdKQpAQCAtMTEzMyw2ICsx
MTQyLDcgQEAgRmVhdHVyZXM6CiAgSW1hZ2UgcmVzaXplciBzdXBwb3J0ICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgOiAkZW5hYmxlX2ltYWdlX3Jlc2l6ZXIKICBMaW5rIHByZWZl
dGNoIHN1cHBvcnQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6ICRlbmFibGVf
bGlua19wcmVmZXRjaAogIE9wY29kZSBzdGF0cyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIDogJGVuYWJsZV9vcGNvZGVfc3RhdHMKKyBQYWdlIHZpc2liaWxpdHkg
QVBJIHN1cHBvcnQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6ICRlbmFibGVfcGFnZV92
aXNpYmlsaXR5X2FwaQogIFNoYXJlZFdvcmtlcnMgc3VwcG9ydCAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIDogJGVuYWJsZV9zaGFyZWRfd29ya2VycwogIFNwZWVjaCBpbnB1dCBz
dXBwb3J0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogJGVuYWJsZV9pbnB1
dF9zcGVlY2gKICBTVkcgc3VwcG9ydCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICA6ICRlbmFibGVfc3ZnCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>89874</attachid>
            <date>2011-04-15 16:27:54 -0700</date>
            <delta_ts>2011-04-20 17:31:00 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-54181-20110415162753.patch</filename>
            <type>text/plain</type>
            <size>19826</size>
            <attacher name="Shishir Agrawal">shishir</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODQwMTMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0Fu
ZHJvaWQubWsgYi9Tb3VyY2UvV2ViQ29yZS9BbmRyb2lkLm1rCmluZGV4IDBhYWI2NThlOGIyMWY5
NDdhNWQ1ZjA4OTFjYTk3ZTRlMTJlYmRmNTEuLmI3NDAwMzQzMmQyYjFlOGM3NDYyOWVmNTU2ZmVm
MGY5ZDI1ZTZjMWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0FuZHJvaWQubWsKKysrIGIv
U291cmNlL1dlYkNvcmUvQW5kcm9pZC5tawpAQCAtNDQzLDYgKzQ0Myw3IEBAIExPQ0FMX1NSQ19G
SUxFUyA6PSAkKExPQ0FMX1NSQ19GSUxFUykgXAogCXBhZ2UvUGFnZS5jcHAgXAogCXBhZ2UvUGFn
ZUdyb3VwLmNwcCBcCiAJcGFnZS9QYWdlR3JvdXBMb2FkRGVmZXJyZXIuY3BwIFwKKyAgICBwYWdl
L1BhZ2VWaXNpYmlsaXR5U3RhdGUuY3BwIFwKIAlwYWdlL1BlcmZvcm1hbmNlLmNwcCBcCiAJcGFn
ZS9QZXJmb3JtYW5jZU5hdmlnYXRpb24uY3BwIFwKIAlwYWdlL1BlcmZvcm1hbmNlVGltaW5nLmNw
cCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9X
ZWJDb3JlL0NNYWtlTGlzdHMudHh0CmluZGV4IGU1OTczZTY5YjYxM2RhNzEzZDY1ZWEwZTk3ODdm
YWZlNTk1MzliZjEuLmRhNTEzNjU4NDhlMjliNTJjNDg2NzM0MmIzYjY2MjBiY2M2ZGRhOTIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJD
b3JlL0NNYWtlTGlzdHMudHh0CkBAIC0xMDE2LDYgKzEwMTYsNyBAQCBTRVQoV2ViQ29yZV9TT1VS
Q0VTCiAgICAgcGFnZS9QYWdlLmNwcAogICAgIHBhZ2UvUGFnZUdyb3VwLmNwcAogICAgIHBhZ2Uv
UGFnZUdyb3VwTG9hZERlZmVycmVyLmNwcAorICAgIHBhZ2UvUGFnZVZpc2liaWxpdHlTdGF0ZS5j
cHAKICAgICBwYWdlL1BlcmZvcm1hbmNlLmNwcAogICAgIHBhZ2UvUGVyZm9ybWFuY2VOYXZpZ2F0
aW9uLmNwcAogICAgIHBhZ2UvUGVyZm9ybWFuY2VUaW1pbmcuY3BwCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtIGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZp
bGUubGlzdC5hbQppbmRleCAyM2U2YjRkNjk3NWUzMjlhZDQwMzY2NmE4M2YwZDUxNDAxOTIxNDI1
Li40ODAzZjZlMzI4YmQ5ZGY3MDM3NWVjYzA1NjMxZTRjYmYyZjg4YTZjIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCisrKyBiL1NvdXJjZS9XZWJDb3JlL0dO
VW1ha2VmaWxlLmxpc3QuYW0KQEAgLTIyMzMsNiArMjIzMyw4IEBAIHdlYmNvcmVfc291cmNlcyAr
PSBcCiAJU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlR3JvdXAuaCBcCiAJU291cmNlL1dlYkNvcmUv
cGFnZS9QYWdlR3JvdXBMb2FkRGVmZXJyZXIuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9wYWdlL1Bh
Z2VHcm91cExvYWREZWZlcnJlci5oIFwKKwlTb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VWaXNpYmls
aXR5U3RhdGUuY3BwIFwKKwlTb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VWaXNpYmlsaXR5U3RhdGUu
aCBcCiAJU291cmNlL1dlYkNvcmUvcGFnZS9QZXJmb3JtYW5jZS5jcHAgXAogCVNvdXJjZS9XZWJD
b3JlL3BhZ2UvUGVyZm9ybWFuY2UuaCBcCiAJU291cmNlL1dlYkNvcmUvcGFnZS9QZXJmb3JtYW5j
ZU5hdmlnYXRpb24uY3BwIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lw
aSBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQppbmRleCBlMDk4YmMxMGU1ZDEwZTg0Njhi
NzM2NzA4MDdiNzQ1NmU4YmMxNmE1Li41ZDQ4YjZkNTIyZGE2NTg3ZDhkNGE2ZmUyNTRiM2Q0NDg3
MDM0ZmY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKKysrIGIvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCkBAIC03MDksNiArNzA5LDcgQEAKICAgICAgICAgICAg
ICdwYWdlL01lbW9yeUluZm8uaCcsCiAgICAgICAgICAgICAncGFnZS9QYWdlLmgnLAogICAgICAg
ICAgICAgJ3BhZ2UvUGFnZUdyb3VwLmgnLAorICAgICAgICAgICAgJ3BhZ2UvUGFnZVZpc2liaWxp
dHlTdGF0ZS5oJywKICAgICAgICAgICAgICdwYWdlL1BsdWdpbkhhbHRlckNsaWVudC5oJywKICAg
ICAgICAgICAgICdwYWdlL1Bvc2l0aW9uQ2FsbGJhY2suaCcsCiAgICAgICAgICAgICAncGFnZS9Q
b3NpdGlvbkVycm9yLmgnLApAQCAtMzQzNiw2ICszNDM3LDcgQEAKICAgICAgICAgICAgICdwYWdl
L1BhZ2VHcm91cC5jcHAnLAogICAgICAgICAgICAgJ3BhZ2UvUGFnZUdyb3VwTG9hZERlZmVycmVy
LmNwcCcsCiAgICAgICAgICAgICAncGFnZS9QYWdlR3JvdXBMb2FkRGVmZXJyZXIuaCcsCisgICAg
ICAgICAgICAncGFnZS9QYWdlVmlzaWJpbGl0eVN0YXRlLmNwcCcsCiAgICAgICAgICAgICAncGFn
ZS9QZXJmb3JtYW5jZS5jcHAnLAogICAgICAgICAgICAgJ3BhZ2UvUGVyZm9ybWFuY2UuaCcsCiAg
ICAgICAgICAgICAncGFnZS9QZXJmb3JtYW5jZU5hdmlnYXRpb24uY3BwJywKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUucHJvIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5wcm8K
aW5kZXggOWEwODZlMzUwMDdkODY5ZTA2OWUxYzhkZTkxZDE1NTRkOTEzYTkzNy4uMjUxMTVlYjUy
MmNjMjZlYTdkMDVkYjk1NDM2ZjVhNDNmN2Y0OTVhYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS5wcm8KKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5wcm8KQEAgLTkyOSw2
ICs5MjksNyBAQCBTT1VSQ0VTICs9IFwKICAgICBwYWdlL1BhZ2UuY3BwIFwKICAgICBwYWdlL1Bh
Z2VHcm91cC5jcHAgXAogICAgIHBhZ2UvUGFnZUdyb3VwTG9hZERlZmVycmVyLmNwcCBcCisgICAg
cGFnZS9QYWdlVmlzaWJpbGl0eVN0YXRlLmNwcCBcCiAgICAgcGFnZS9QZXJmb3JtYW5jZS5jcHAg
XAogICAgIHBhZ2UvUGVyZm9ybWFuY2VOYXZpZ2F0aW9uLmNwcCBcCiAgICAgcGFnZS9QZXJmb3Jt
YW5jZVRpbWluZy5jcHAgXApAQCAtMTg2OCw2ICsxODY5LDcgQEAgSEVBREVSUyArPSBcCiAgICAg
cGFnZS9QYWdlR3JvdXAuaCBcCiAgICAgcGFnZS9QYWdlR3JvdXBMb2FkRGVmZXJyZXIuaCBcCiAg
ICAgcGFnZS9QYWdlLmggXAorICAgIHBhZ2UvUGFnZVZpc2liaWxpdHlTdGF0ZS5oIFwKICAgICBw
YWdlL1BsdWdpbkhhbHRlci5oIFwKICAgICBwYWdlL1BsdWdpbkhhbHRlckNsaWVudC5oIFwKICAg
ICBwYWdlL1ByaW50Q29udGV4dC5oIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUudmNwcm9qL1dlYkNvcmUudmNwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ov
V2ViQ29yZS52Y3Byb2oKaW5kZXggYjgwNjQ4OGJkZWVhYmM3ZjZhMDU4MzNhNmM2Yjg2NjdhNTMw
MTU5NC4uOWJlMjNjMjUyZDRlMzRkOTE2OGRiMDI0NDgzOWYxZWZjM2QzOWI1OCAxMDA3NTUKLS0t
IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKKysrIGIvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKQEAgLTI1MDkwLDYgKzI1
MDkwLDEyIEBACiAJCQkJPgogCQkJPC9GaWxlPgogCQkJPEZpbGUKKwkJCQlSZWxhdGl2ZVBhdGg9
Ii4uXHBhZ2VcUGFnZVZpc2liaWxpdHlTdGF0ZS5jcHAiCisJCQkJPgorCQkJPEZpbGUKKwkJCQlS
ZWxhdGl2ZVBhdGg9Ii4uXHBhZ2VcUGFnZVZpc2liaWxpdHlTdGF0ZS5oIgorCQkJCT4KKwkJCTxG
aWxlCiAJCQkJUmVsYXRpdmVQYXRoPSIuLlxwYWdlXFBlcmZvcm1hbmNlLmNwcCIKIAkJCQk+CiAJ
CQk8L0ZpbGU+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oKaW5kZXggMDU4YTI5NmFkZjI0NjJlYjVhZTFlODU0MzU4MWI2YzBkZTRhNDk1Ny4u
Njg3OWZhZDJlNTExMmRiNzQ0YzMwMWRkMTE2ZDI2MDJhYzRhYjM5YiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNTk4Myw2ICs1
OTgzLDkgQEAKIAkJRkU4MERBNjYwRTlDNDcwMzAwMEQ2Rjc1IC8qIEpTR2VvcG9zaXRpb24uaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEZFODBEQTYyMEU5
QzQ3MDMwMDBENkY3NSAvKiBKU0dlb3Bvc2l0aW9uLmggKi87IH07CiAJCUZFODBEQTcxMEU5QzQ3
MkYwMDBENkY3NSAvKiBKU1Bvc2l0aW9uRXJyb3IuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRkU4MERBNkQwRTlDNDcyRjAwMEQ2Rjc1IC8qIEpTUG9z
aXRpb25FcnJvci5jcHAgKi87IH07CiAJCUZFODBEQTcyMEU5QzQ3MkYwMDBENkY3NSAvKiBKU1Bv
c2l0aW9uRXJyb3IuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEZFODBEQTZFMEU5QzQ3MkYwMDBENkY3NSAvKiBKU1Bvc2l0aW9uRXJyb3IuaCAqLzsgfTsK
KwkJRkZFMjQyMzExMzU4RjA5QzAwMDBERDMyIC8qIFBhZ2VWaXNpYmlsaXR5U3RhdGUuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRkZFMjQyMzAxMzU4
RjA5QzAwMDBERDMyIC8qIFBhZ2VWaXNpYmlsaXR5U3RhdGUuY3BwICovOyB9OworCQlGRkUyNDIz
MjEzNThGMDlDMDAwMEREMzIgLyogUGFnZVZpc2liaWxpdHlTdGF0ZS5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRkZFMjQyMkYxMzU4RjA5QzAwMDBERDMy
IC8qIFBhZ2VWaXNpYmlsaXR5U3RhdGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OworCQlGRkUyNDIzMzEzNThGMDlDMDAwMEREMzIgLyogUGFnZVZpc2li
aWxpdHlTdGF0ZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBGRkUyNDIzMDEzNThGMDlDMDAwMEREMzIgLyogUGFnZVZpc2liaWxpdHlTdGF0ZS5jcHAg
Ki87IH07CiAvKiBFbmQgUEJYQnVpbGRGaWxlIHNlY3Rpb24gKi8KIAogLyogQmVnaW4gUEJYQ29u
dGFpbmVySXRlbVByb3h5IHNlY3Rpb24gKi8KQEAgLTEyNTY0LDYgKzEyNTY3LDggQEAKIAkJRkU4
MERBNjIwRTlDNDcwMzAwMEQ2Rjc1IC8qIEpTR2VvcG9zaXRpb24uaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gSlNHZW9wb3NpdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQlGRTgwREE2RDBFOUM0NzJGMDAwRDZGNzUgLyogSlNQb3NpdGlvbkVycm9yLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTUG9zaXRpb25FcnJvci5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUZFODBEQTZFMEU5QzQ3MkYwMDBENkY3NSAv
KiBKU1Bvc2l0aW9uRXJyb3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNQ
b3NpdGlvbkVycm9yLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUZGRTI0MjJGMTM1
OEYwOUMwMDAwREQzMiAvKiBQYWdlVmlzaWJpbGl0eVN0YXRlLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFBhZ2VWaXNpYmlsaXR5U3RhdGUuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJRkZFMjQyMzAxMzU4RjA5QzAwMDBERDMyIC8qIFBhZ2VWaXNpYmlsaXR5U3Rh
dGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUGFnZVZpc2liaWxp
dHlTdGF0ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAvKiBFbmQgUEJYRmlsZVJl
ZmVyZW5jZSBzZWN0aW9uICovCiAKIC8qIEJlZ2luIFBCWEZyYW1ld29ya3NCdWlsZFBoYXNlIHNl
Y3Rpb24gKi8KQEAgLTE0MzQ0LDYgKzE0MzQ5LDggQEAKIAkJCQk5MzAyQjBCRTBENzlGODJDMDBD
N0VFODMgLyogUGFnZUdyb3VwLmggKi8sCiAJCQkJN0E2NzRCRDkwRjlFQkY0RTAwNkNGMDk5IC8q
IFBhZ2VHcm91cExvYWREZWZlcnJlci5jcHAgKi8sCiAJCQkJN0E2NzRCREEwRjlFQkY0RTAwNkNG
MDk5IC8qIFBhZ2VHcm91cExvYWREZWZlcnJlci5oICovLAorCQkJCUZGRTI0MjMwMTM1OEYwOUMw
MDAwREQzMiAvKiBQYWdlVmlzaWJpbGl0eVN0YXRlLmNwcCAqLywKKwkJCQlGRkUyNDIyRjEzNThG
MDlDMDAwMEREMzIgLyogUGFnZVZpc2liaWxpdHlTdGF0ZS5oICovLAogCQkJCThBODQ0RDAxMTFE
M0MxOEUwMDE0MDY1QyAvKiBQZXJmb3JtYW5jZS5jcHAgKi8sCiAJCQkJOEE4NDREMDIxMUQzQzE4
RTAwMTQwNjVDIC8qIFBlcmZvcm1hbmNlLmggKi8sCiAJCQkJOEE4NDREMDMxMUQzQzE4RTAwMTQw
NjVDIC8qIFBlcmZvcm1hbmNlLmlkbCAqLywKQEAgLTIyMDM4LDYgKzIyMDQ1LDcgQEAKIAkJCQlG
MzQ3NDJERDEzNDM2MkYwMDA1MzFCQzIgLyogUGFnZURlYnVnZ2VyQWdlbnQuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTkzMDJCMEJGMEQ3OUY4MkMwMEM3RUU4MyAvKiBQYWdlR3JvdXAuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTdBNjc0QkRDMEY5RUJGNEUwMDZDRjA5OSAvKiBQYWdlR3JvdXBMb2FkRGVm
ZXJyZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCUZGRTI0MjMyMTM1OEYwOUMwMDAwREQzMiAvKiBQ
YWdlVmlzaWJpbGl0eVN0YXRlLmggaW4gSGVhZGVycyAqLywKIAkJCQlGMzQ3NDJFNTEzNDM2MzND
MDA1MzFCQzIgLyogUGFnZVNjcmlwdERlYnVnU2VydmVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlF
MTI4NEFFMTEwNDQ3RDQ1MDBFQUVCNTIgLyogUGFnZVRyYW5zaXRpb25FdmVudC5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJNTFFMUVDQzMwQzkxQzkwNDAwREMyNTVCIC8qIFBhZ2VVUkxSZWNvcmQuaCBp
biBIZWFkZXJzICovLApAQCAtMjMyMjEsNiArMjMyMjksNyBAQAogCQkJYnVpbGRBY3Rpb25NYXNr
ID0gMjE0NzQ4MzY0NzsKIAkJCWZpbGVzID0gKAogCQkJCTVEODdCQjgzMTFFM0VEODYwMDcwMkI2
RiAvKiBFeHBvcnRGaWxlR2VuZXJhdG9yLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUZGRTI0MjMx
MTM1OEYwOUMwMDAwREQzMiAvKiBQYWdlVmlzaWJpbGl0eVN0YXRlLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9
OwpAQCAtMjU2MjgsNiArMjU2MzcsNyBAQAogCQkJCTk3N0UyRTBFMTJGMEZDOUMwMEMxMzM3OSAv
KiBYU1NGaWx0ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMjI5MkIyN0MxMzU2NjY5NDAwQ0Yx
MUVGIC8qIEltYWdlQnVmZmVyRGF0YUNHLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTI5M0VBRTIx
MTM1NkIzMkUwMDY3QUNGOSAvKiBSdW50aW1lQXBwbGljYXRpb25DaGVja3MuY3BwIGluIFNvdXJj
ZXMgKi8sCisJCQkJRkZFMjQyMzMxMzU4RjA5QzAwMDBERDMyIC8qIFBhZ2VWaXNpYmlsaXR5U3Rh
dGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0
cHJvY2Vzc2luZyA9IDA7CiAJCX07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9j
dW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAppbmRleCA2NDA4MmUz
ZmI5OWE0NmEzYWEyYzJhM2EzNGZiZjA5YmRiZTRjZDRmLi4zMDZlNWZkOTljOWMwM2FlMjQxN2Fh
MWRkOTY5ZWI3ZmE2MjgyODBkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1l
bnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKQEAgLTEzMjUsNiAr
MTMyNSwzMiBAQCB2b2lkIERvY3VtZW50OjpyZW1vdmVUaXRsZShFbGVtZW50KiB0aXRsZUVsZW1l
bnQpCiAgICAgICAgIHVwZGF0ZVRpdGxlKFN0cmluZ1dpdGhEaXJlY3Rpb24oKSk7CiB9CiAKKyNp
ZiBFTkFCTEUoUEFHRV9WSVNJQklMSVRZX0FQSSkKK1BhZ2VWaXNpYmlsaXR5U3RhdGUgRG9jdW1l
bnQ6OndlYmtpdFZpc2liaWxpdHlTdGF0ZUVudW0oKSBjb25zdAoreworICAgIC8vIElmIHRoZXJl
IGlzIG5vIGZyYW0gYXNzb2NpYXRlZCB3aXRoIHRoZSBkb2N1bWVudCBvciBubyBwYWdlIGFzc29j
aWF0ZWQKKyAgICAvLyB3aXRoIHRoZSBmcmFtZSwgd2Ugd2lsbCBjb25zaWRlciB0aGUgZG9jdW1l
bnQgdG8gYmUgaW52aXNpYmxlLgorICAgIGlmICghbV9mcmFtZSB8fCAhbV9mcmFtZS0+cGFnZSgp
KQorICAgICAgICByZXR1cm4gUGFnZVZpc2liaWxpdHlTdGF0ZUhpZGRlbjsKKyAgICByZXR1cm4g
bV9mcmFtZS0+cGFnZSgpLT52aXNpYmlsaXR5U3RhdGUoKTsKK30KKworU3RyaW5nIERvY3VtZW50
Ojp3ZWJraXRWaXNpYmlsaXR5U3RhdGUoKSBjb25zdAoreworICAgIHJldHVybiBHZXRQYWdlVmlz
aWJpbGl0eVN0YXRlU3RyaW5nKHdlYmtpdFZpc2liaWxpdHlTdGF0ZUVudW0oKSk7Cit9CisKK2Jv
b2wgRG9jdW1lbnQ6OndlYmtpdElzVmlzaWJsZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIHdlYmtp
dFZpc2liaWxpdHlTdGF0ZUVudW0oKSA9PSBQYWdlVmlzaWJpbGl0eVN0YXRlVmlzaWJsZTsKK30K
Kwordm9pZCBEb2N1bWVudDo6ZGlzcGF0Y2hWaXNpYmlsaXR5U3RhdGVDaGFuZ2VFdmVudCgpCit7
CisgICAgZGlzcGF0Y2hFdmVudChFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS53ZWJraXR2aXNp
YmlsaXR5c3RhdGVjaGFuZ2VFdmVudCwgZmFsc2UsIGZhbHNlKSk7Cit9CisjZW5kaWYKKwogU3Ry
aW5nIERvY3VtZW50Ojpub2RlTmFtZSgpIGNvbnN0CiB7CiAgICAgcmV0dXJuICIjZG9jdW1lbnQi
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmggYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vRG9jdW1lbnQuaAppbmRleCA0ZjNlZmRhNmVhY2MzMDk4ODI2MGUyODA0YzRhMTZm
ZmJmZGE2ODJmLi5kODdkNjNmYjdjYzVjYWEwOWUzYzJhMDc3ZDhjZWMzMDhjYzg0NDFmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vRG9jdW1lbnQuaApAQCAtMzMsNiArMzMsNyBAQAogI2luY2x1ZGUgIkNvbG9yLmgiCiAj
aW5jbHVkZSAiRE9NVGltZVN0YW1wLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnRUaW1pbmcuaCIKKyNp
bmNsdWRlICJQYWdlVmlzaWJpbGl0eVN0YXRlLmgiCiAjaW5jbHVkZSAiUXVhbGlmaWVkTmFtZS5o
IgogI2luY2x1ZGUgIlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaCIKICNpbmNsdWRlICJTdHJpbmdX
aXRoRGlyZWN0aW9uLmgiCkBAIC0zMDAsNiArMzAxLDkgQEAgcHVibGljOgogI2lmIEVOQUJMRShG
VUxMU0NSRUVOX0FQSSkKICAgICBERUZJTkVfQVRUUklCVVRFX0VWRU5UX0xJU1RFTkVSKHdlYmtp
dGZ1bGxzY3JlZW5jaGFuZ2UpOwogI2VuZGlmCisjaWYgRU5BQkxFKFBBR0VfVklTSUJJTElUWV9B
UEkpCisgICAgREVGSU5FX0FUVFJJQlVURV9FVkVOVF9MSVNURU5FUih3ZWJraXR2aXNpYmlsaXR5
c3RhdGVjaGFuZ2UpOworI2VuZGlmCiAKICAgICBWaWV3cG9ydEFyZ3VtZW50cyB2aWV3cG9ydEFy
Z3VtZW50cygpIGNvbnN0IHsgcmV0dXJuIG1fdmlld3BvcnRBcmd1bWVudHM7IH0KIApAQCAtMzcz
LDYgKzM3NywxMyBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIEtVUkwgYmFzZVVSSSgpIGNvbnN0
OwogCisjaWYgRU5BQkxFKFBBR0VfVklTSUJJTElUWV9BUEkpCisgICAgUGFnZVZpc2liaWxpdHlT
dGF0ZSB3ZWJraXRWaXNpYmlsaXR5U3RhdGVFbnVtKCkgY29uc3Q7CisgICAgU3RyaW5nIHdlYmtp
dFZpc2liaWxpdHlTdGF0ZSgpIGNvbnN0OworICAgIGJvb2wgd2Via2l0SXNWaXNpYmxlKCkgY29u
c3Q7CisgICAgdm9pZCBkaXNwYXRjaFZpc2liaWxpdHlTdGF0ZUNoYW5nZUV2ZW50KCk7CisjZW5k
aWYKKwogICAgIFBhc3NSZWZQdHI8Tm9kZT4gYWRvcHROb2RlKFBhc3NSZWZQdHI8Tm9kZT4gc291
cmNlLCBFeGNlcHRpb25Db2RlJik7CiAKICAgICBQYXNzUmVmUHRyPEhUTUxDb2xsZWN0aW9uPiBp
bWFnZXMoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5pZGwgYi9T
b3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaWRsCmluZGV4IGNmODIwYmE5YzA2MWVjMDE4OGYx
OGI2NDFlYmUwMWM1MWQ0Y2RhOTkuLjZlZmRmYThiYTVkNTU3MjhjODhiNzA4YWIwMGE2MzY2MmYw
ZTY0M2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5pZGwKKysrIGIv
U291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmlkbApAQCAtMzQxLDYgKzM0MSwxMSBAQCBtb2R1
bGUgY29yZSB7CiAgICAgICAgIGJvb2xlYW4gaXNIVE1MRG9jdW1lbnQoKTsKICNlbmRpZgogCisj
aWYgZGVmaW5lZChFTkFCTEVfUEFHRV9WSVNJQklMSVRZX0FQSSkgJiYgRU5BQkxFX1BBR0VfVklT
SUJJTElUWV9BUEkKKyAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyB3ZWJraXRW
aXNpYmlsaXR5U3RhdGU7CisgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBib29sZWFuIHdlYmtp
dElzVmlzaWJsZTsKKyNlbmRpZgorCiAgICAgfTsKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZG9tL0V2ZW50TmFtZXMuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudE5hbWVzLmgK
aW5kZXggZWNlMmEwOGZkZTkzOGVkMGNmMzU0N2VmMThkODVjMDI4YjdjNGQ0My4uOTZmMDM4M2Uy
YTRjN2JmMGQ5NjJkMzE4NWQzOWMzYTg0Mzk3MmRkYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvZG9tL0V2ZW50TmFtZXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnROYW1lcy5o
CkBAIC0xMDYsNiArMTA2LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIG1hY3JvKHVubG9h
ZCkgXAogICAgIG1hY3JvKHVwZGF0ZXJlYWR5KSBcCiAgICAgbWFjcm8odmVyc2lvbmNoYW5nZSkg
XAorICAgIG1hY3JvKHdlYmtpdHZpc2liaWxpdHlzdGF0ZWNoYW5nZSkgXAogICAgIG1hY3JvKHdy
aXRlKSBcCiAgICAgbWFjcm8od3JpdGVlbmQpIFwKICAgICBtYWNybyh3cml0ZXN0YXJ0KSBcCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvRnJhbWUuY3BwCmluZGV4IGI2MGIzOTNjYmMwODk3YmNiNTVkZTU2ZjcxZjE0MTA2N2Qw
MjM4MjAuLjc1NmQ1NWE0N2Q5ODNkNWM2ZjYxMDc3M2Q3NDc4ZjZhZGY5YTlhMmMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvRnJhbWUuY3BwCkBAIC02NjksNiArNjY5LDE2IEBAIHZvaWQgRnJhbWU6OnNldERPTVdpbmRv
dyhET01XaW5kb3cqIGRvbVdpbmRvdykKICAgICBtX2RvbVdpbmRvdyA9IGRvbVdpbmRvdzsKIH0K
IAorI2lmIEVOQUJMRShQQUdFX1ZJU0lCSUxJVFlfQVBJKQordm9pZCBGcmFtZTo6ZGlzcGF0Y2hW
aXNpYmlsaXR5U3RhdGVDaGFuZ2VFdmVudCgpCit7CisgICAgaWYgKG1fZG9jKQorICAgICAgICBt
X2RvYy0+ZGlzcGF0Y2hWaXNpYmlsaXR5U3RhdGVDaGFuZ2VFdmVudCgpOworICAgIGZvciAoRnJh
bWUqIGNoaWxkID0gdHJlZSgpLT5maXJzdENoaWxkKCk7IGNoaWxkOyBjaGlsZCA9IGNoaWxkLT50
cmVlKCktPm5leHRTaWJsaW5nKCkpCisgICAgICAgIGNoaWxkLT5kaXNwYXRjaFZpc2liaWxpdHlT
dGF0ZUNoYW5nZUV2ZW50KCk7Cit9CisjZW5kaWYKKwogRE9NV2luZG93KiBGcmFtZTo6ZG9tV2lu
ZG93KCkgY29uc3QKIHsKICAgICBpZiAoIW1fZG9tV2luZG93KQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGFnZS9GcmFtZS5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZS5oCmluZGV4
IDA1ODA1Y2YxZTJlNDhkZDQzYmVmNmYwMmFhM2E0NmQyZjY5MzQwZmMuLjBlM2JkYmZmNGJmZDY1
NGFiNTVhZjI0YTExZjgyOGQzODkyZmJkYTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvRnJhbWUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lLmgKQEAgLTExOCw2ICsx
MTgsMTAgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiAgICAgICAgIHZvaWQgdHJhbnNmZXJDaGls
ZEZyYW1lVG9OZXdEb2N1bWVudCgpOwogCisjaWYgRU5BQkxFKFBBR0VfVklTSUJJTElUWV9BUEkp
CisgICAgICAgIHZvaWQgZGlzcGF0Y2hWaXNpYmlsaXR5U3RhdGVDaGFuZ2VFdmVudCgpOworI2Vu
ZGlmCisKICAgICAvLyA9PT09PT09PSBBbGwgcHVibGljIGZ1bmN0aW9ucyBiZWxvdyB0aGlzIHBv
aW50IGFyZSBjYW5kaWRhdGVzIHRvIG1vdmUgb3V0IG9mIEZyYW1lIGludG8gYW5vdGhlciBjbGFz
cy4gPT09PT09PT0KIAogICAgICAgICBib29sIGlzRGlzY29ubmVjdGVkKCkgY29uc3Q7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9QYWdlLmNwcAppbmRleCAxODYzYjAyNTcxNGE1NzlmNDFmODM4YjBkMjM3YTMwYmMwZDM1YzRk
Li5iM2I4NWYxMTM5YjE4YzljZjg0ZmM2ODJmYTgxNjhkNWFmM2JjZWQyIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFn
ZS5jcHAKQEAgLTE2Myw2ICsxNjMsOSBAQCBQYWdlOjpQYWdlKGNvbnN0IFBhZ2VDbGllbnRzJiBw
YWdlQ2xpZW50cykKICAgICAsIG1fdmlld01vZGUoVmlld01vZGVXaW5kb3dlZCkKICAgICAsIG1f
bWluaW11bVRpbWVySW50ZXJ2YWwoU2V0dGluZ3M6OmRlZmF1bHRNaW5ET01UaW1lckludGVydmFs
KCkpCiAgICAgLCBtX2lzRWRpdGFibGUoZmFsc2UpCisjaWYgRU5BQkxFKFBBR0VfVklTSUJJTElU
WV9BUEkpCisgICAgLCBtX3Zpc2liaWxpdHlTdGF0ZShQYWdlVmlzaWJpbGl0eVN0YXRlVmlzaWJs
ZSkKKyNlbmRpZgogewogICAgIGlmICghYWxsUGFnZXMpIHsKICAgICAgICAgYWxsUGFnZXMgPSBu
ZXcgSGFzaFNldDxQYWdlKj47CkBAIC05MzksNiArOTQyLDI4IEBAIHZvaWQgUGFnZTo6Y2hlY2tG
cmFtZUNvdW50Q29uc2lzdGVuY3koKSBjb25zdAogfQogI2VuZGlmCiAKKyNpZiBFTkFCTEUoUEFH
RV9WSVNJQklMSVRZX0FQSSkKK3ZvaWQgUGFnZTo6c2V0VmlzaWJpbGl0eVN0YXRlKFBhZ2VWaXNp
YmlsaXR5U3RhdGUgdmlzaWJpbGl0eVN0YXRlKQoreworICAgIGlmIChtX3Zpc2liaWxpdHlTdGF0
ZSA9PSB2aXNpYmlsaXR5U3RhdGUpCisgICAgICAgIHJldHVybjsKKyAgICBtX3Zpc2liaWxpdHlT
dGF0ZSA9IHZpc2liaWxpdHlTdGF0ZTsKKworICAgIGlmIChtX21haW5GcmFtZSkKKyAgICAgICAg
bV9tYWluRnJhbWUtPmRpc3BhdGNoVmlzaWJpbGl0eVN0YXRlQ2hhbmdlRXZlbnQoKTsKK30KKwor
dm9pZCBQYWdlOjpzZXRJbml0aWFsVmlzaWJpbGl0eVN0YXRlKFBhZ2VWaXNpYmlsaXR5U3RhdGUg
dmlzaWJpbGl0eVN0YXRlKQoreworICAgIG1fdmlzaWJpbGl0eVN0YXRlID0gdmlzaWJpbGl0eVN0
YXRlOworfQorCitQYWdlVmlzaWJpbGl0eVN0YXRlIFBhZ2U6OnZpc2liaWxpdHlTdGF0ZSgpIGNv
bnN0Cit7CisgICAgcmV0dXJuIG1fdmlzaWJpbGl0eVN0YXRlOworfQorI2VuZGlmCisKIFBhZ2U6
OlBhZ2VDbGllbnRzOjpQYWdlQ2xpZW50cygpCiAgICAgOiBjaHJvbWVDbGllbnQoMCkKICAgICAs
IGNvbnRleHRNZW51Q2xpZW50KDApCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1Bh
Z2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oCmluZGV4IGFjNGMxNjA0YmRjOTI3OGI4
ZTlmOWJkNDJiYjI0NzcyNjkzNjY1NGMuLjgzNzk3Yzk0ZTkyMGFlNTc0ZDM5NWIyOTJhNTA3MWQz
ZTEwNmQwYTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oCkBAIC0yMyw2ICsyMyw3IEBACiAKICNpbmNsdWRlICJG
cmFtZUxvYWRlclR5cGVzLmgiCiAjaW5jbHVkZSAiRmluZE9wdGlvbnMuaCIKKyNpbmNsdWRlICJQ
YWdlVmlzaWJpbGl0eVN0YXRlLmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1TdHJpbmcuaCIKICNpbmNs
dWRlICJWaWV3cG9ydEFyZ3VtZW50cy5oIgogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CkBAIC0z
MDEsNiArMzAyLDEyIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgdm9pZCBzZXRFZGl0
YWJsZShib29sIGlzRWRpdGFibGUpIHsgbV9pc0VkaXRhYmxlID0gaXNFZGl0YWJsZTsgfQogICAg
ICAgICBib29sIGlzRWRpdGFibGUoKSB7IHJldHVybiBtX2lzRWRpdGFibGU7IH0KIAorI2lmIEVO
QUJMRShQQUdFX1ZJU0lCSUxJVFlfQVBJKQorICAgICAgICBQYWdlVmlzaWJpbGl0eVN0YXRlIHZp
c2liaWxpdHlTdGF0ZSgpIGNvbnN0OworICAgICAgICB2b2lkIHNldFZpc2liaWxpdHlTdGF0ZShQ
YWdlVmlzaWJpbGl0eVN0YXRlKTsKKyAgICAgICAgdm9pZCBzZXRJbml0aWFsVmlzaWJpbGl0eVN0
YXRlKFBhZ2VWaXNpYmlsaXR5U3RhdGUpOworI2VuZGlmCisKICAgICBwcml2YXRlOgogICAgICAg
ICB2b2lkIGluaXRHcm91cCgpOwogCkBAIC00MDcsNiArNDE0LDEwIEBAIG5hbWVzcGFjZSBXZWJD
b3JlIHsKICAgICAgICAgT3duUHRyPFNjcm9sbGFibGVBcmVhU2V0PiBtX3Njcm9sbGFibGVBcmVh
U2V0OwogCiAgICAgICAgIGJvb2wgbV9pc0VkaXRhYmxlOworCisjaWYgRU5BQkxFKFBBR0VfVklT
SUJJTElUWV9BUEkpCisgICAgICAgIFBhZ2VWaXNpYmlsaXR5U3RhdGUgbV92aXNpYmlsaXR5U3Rh
dGU7CisjZW5kaWYKICAgICB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VWaXNpYmlsaXR5U3RhdGUuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9QYWdlVmlzaWJpbGl0eVN0YXRlLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mZTE4ZGZhZGUx
NTI1YzdiNzI5MjUxNjZiNmUyMDY2MmUzMWRiYzAwCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9QYWdlVmlzaWJpbGl0eVN0YXRlLmNwcApAQCAtMCwwICsxLDU2IEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
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
Y2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlBhZ2VWaXNpYmlsaXR5U3RhdGUuaCIKKworI2lm
IEVOQUJMRShQQUdFX1ZJU0lCSUxJVFlfQVBJKQorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1N0
cmluZyBHZXRQYWdlVmlzaWJpbGl0eVN0YXRlU3RyaW5nKFBhZ2VWaXNpYmlsaXR5U3RhdGUgc3Rh
dGUpCit7CisgICAgREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBTdHJpbmcsIHZpc2libGUsICgi
dmlzaWJsZSIpKTsKKyAgICBERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IFN0cmluZywgaGlkZGVu
LCAoImhpZGRlbiIpKTsKKworICAgIHN3aXRjaCAoc3RhdGUpIHsKKyAgICBjYXNlIFBhZ2VWaXNp
YmlsaXR5U3RhdGVWaXNpYmxlOgorICAgICAgICByZXR1cm4gdmlzaWJsZTsKKyAgICBjYXNlIFBh
Z2VWaXNpYmlsaXR5U3RhdGVIaWRkZW46CisgICAgICAgIHJldHVybiBoaWRkZW47CisgICAgfQor
CisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgcmV0dXJuIFN0cmluZygpOworfQorCit9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBpZiBFTkFCTEUoUEFHRV9WSVNJQklM
SVRZX0FQSSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZVZpc2liaWxpdHlT
dGF0ZS5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlVmlzaWJpbGl0eVN0YXRlLmgKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uYTdkNzAyMTE3NGUwZjIyMTMxYzc5MzQ3ZmI3MTUyNzQzMTY1YzdhMAotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZVZpc2liaWxpdHlTdGF0ZS5oCkBAIC0w
LDAgKzEsNTEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJp
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
RS4KKyAqLworCisjaWZuZGVmIFBhZ2VWaXNpYmlsaXR5U3RhdGVfaAorI2RlZmluZSBQYWdlVmlz
aWJpbGl0eVN0YXRlX2gKKworI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgorCituYW1l
c3BhY2UgV2ViQ29yZSB7CisKKy8vIFRoZSBlbnVtIGlzIG5vdCBmbGFnIHByb3RlY3RlZCBhcyBp
dCBpcyB1c2VkIGluIHRoZSBXZWJLaXQgY2hyb21pdW0gQVBJCisvLyB3aXRob3V0IGZsYWcgcHJv
dGVjdGlvbi4KK2VudW0gUGFnZVZpc2liaWxpdHlTdGF0ZSB7CisgICAgUGFnZVZpc2liaWxpdHlT
dGF0ZVZpc2libGUsCisgICAgUGFnZVZpc2liaWxpdHlTdGF0ZUhpZGRlbgorfTsKKworI2lmIEVO
QUJMRShQQUdFX1ZJU0lCSUxJVFlfQVBJKQorU3RyaW5nIEdldFBhZ2VWaXNpYmlsaXR5U3RhdGVT
dHJpbmcoUGFnZVZpc2liaWxpdHlTdGF0ZSk7CisjZW5kaWYKKworfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQorCisjZW5kaWYgLy8gaWZuZGVmIFBhZ2VWaXNpYmlsaXR5U3RhdGVfaAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>90455</attachid>
            <date>2011-04-20 17:31:00 -0700</date>
            <delta_ts>2011-05-04 18:46:37 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>page_visibility_api.patch</filename>
            <type>text/plain</type>
            <size>42196</size>
            <attacher name="Shishir Agrawal">shishir</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBkZTdmYTU0Li5jOTI1YjJhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAKKzIwMTEtMDQt
MjAgIFNoaXNoaXIgQWdyYXdhbCAgPHNoaXNoaXJAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEltcGxlbWVudCBQYWdlIFZpc2li
aWxpdHkgQVBJLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9NTQxODEKKworICAgICAgICAqIGZhc3QvZXZlbnRzL3BhZ2UtdmlzaWJpbGl0eS1pZnJhbWUt
dGVzdC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZXZlbnRzL3BhZ2Utdmlz
aWJpbGl0eS1pZnJhbWUtdGVzdC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2V2ZW50cy9w
YWdlLXZpc2liaWxpdHktdHJhbnNpdGlvbi10ZXN0LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAg
ICAgICogZmFzdC9ldmVudHMvcGFnZS12aXNpYmlsaXR5LXRyYW5zaXRpb24tdGVzdC5odG1sOiBB
ZGRlZC4KKyAgICAgICAgKiBmYXN0L2V2ZW50cy9yZXNvdXJjZXMvcGFnZS12aXNpYmlsaXR5LWlm
cmFtZS10ZXN0LXN1YmZyYW1lLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2d0ay9T
a2lwcGVkOgorICAgICAgICAqIHBsYXRmb3JtL21hYy9Ta2lwcGVkOgorICAgICAgICAqIHBsYXRm
b3JtL3F0L1NraXBwZWQ6CisgICAgICAgICogcGxhdGZvcm0vd2luL1NraXBwZWQ6CisKIDIwMTEt
MDQtMjAgIEppYW4gTGkgIDxqaWFubGlAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2Vk
IGJ5IEtlbm5ldGggUnVzc2VsbC4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRz
L3BhZ2UtdmlzaWJpbGl0eS1pZnJhbWUtdGVzdC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9m
YXN0L2V2ZW50cy9wYWdlLXZpc2liaWxpdHktaWZyYW1lLXRlc3QtZXhwZWN0ZWQudHh0Cm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmNmMmM1ODYKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9wYWdlLXZpc2liaWxpdHktaWZyYW1lLXRlc3QtZXhw
ZWN0ZWQudHh0CkBAIC0wLDAgKzEsOCBAQAorUGFnZSBWaXNpYmlsaXR5IFRyYW5zaXRpb25zOgor
TWFpbiBEb2M6IHZpc2libGUKK0NoaWxkIEZyYW1lOiB2aXNpYmxlCitNYWluIERvYzogaGlkZGVu
CitDaGlsZCBGcmFtZTogaGlkZGVuCitNYWluIERvYzogdmlzaWJsZQorQ2hpbGQgRnJhbWU6IHZp
c2libGUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvcGFnZS12aXNpYmls
aXR5LWlmcmFtZS10ZXN0Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9wYWdlLXZpc2li
aWxpdHktaWZyYW1lLXRlc3QuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
Li4zYzVjOTM5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvcGFn
ZS12aXNpYmlsaXR5LWlmcmFtZS10ZXN0Lmh0bWwKQEAgLTAsMCArMSwzOCBAQAorPGh0bWw+Cis8
Ym9keT4KKworPHNjcmlwdD4KK2Z1bmN0aW9uIG1ha2VQYWdlVmlzaWJsZSgpIHsKKyAgICBpZiAo
d2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxl
ci5zZXRQYWdlVmlzaWJpbGl0eSgidmlzaWJsZSIpOworfQorCitmdW5jdGlvbiBtYWtlUGFnZUhp
ZGRlbigpIHsKKyAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgICAgICBs
YXlvdXRUZXN0Q29udHJvbGxlci5zZXRQYWdlVmlzaWJpbGl0eSgiaGlkZGVuIik7Cit9CisKK2Z1
bmN0aW9uIGxvZyhzdHJpbmcpIHsKKyAgICB2YXIgbG9nRGl2ID0gZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoImxvZ0RpdiIpOworICAgIGxvZ0Rpdi5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVU
ZXh0Tm9kZShzdHJpbmcpKTsKKyAgICBsb2dEaXYuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRl
RWxlbWVudCgiYnIiKSk7Cit9CisKK2Z1bmN0aW9uIGxvZ1Zpc2liaWxpdHkoKSB7CisgICAgcGFy
ZW50LmxvZygiTWFpbiBEb2M6ICIgKyBkb2N1bWVudC53ZWJraXRWaXNpYmlsaXR5U3RhdGUpOwor
fQorCitmdW5jdGlvbiBvblZpc2liaWxpdHlDaGFuZ2UoKSB7CisgICAgbG9nVmlzaWJpbGl0eSgp
OworfQorCitpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgIGxheW91dFRlc3RD
b250cm9sbGVyLmR1bXBBc1RleHQoKTsKKworZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigid2Vi
a2l0dmlzaWJpbGl0eXN0YXRlY2hhbmdlIiwgb25WaXNpYmlsaXR5Q2hhbmdlLCBmYWxzZSk7Cis8
L3NjcmlwdD4KKworPGRpdiBpZD0ibG9nRGl2Ij5QYWdlIFZpc2liaWxpdHkgVHJhbnNpdGlvbnM6
PGJyPjwvZGl2PgorPGlmcmFtZSBzcmM9InJlc291cmNlcy9wYWdlLXZpc2liaWxpdHktaWZyYW1l
LXRlc3Qtc3ViZnJhbWUuaHRtbCI+PC9pZnJhbWU+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9wYWdlLXZpc2liaWxpdHktdHJhbnNpdGlvbi10
ZXN0LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3BhZ2UtdmlzaWJpbGl0
eS10cmFuc2l0aW9uLXRlc3QtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAuLjM4ODc5NWEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2
ZW50cy9wYWdlLXZpc2liaWxpdHktdHJhbnNpdGlvbi10ZXN0LWV4cGVjdGVkLnR4dApAQCAtMCww
ICsxLDUgQEAKK1BhZ2UgVmlzaWJpbGl0eSBUcmFuc2l0aW9uczoKK1BBU1MgMDogdmlzaWJsZQor
UEFTUyAxOiBoaWRkZW4KK1BBU1MgMzogdmlzaWJsZQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9mYXN0L2V2ZW50cy9wYWdlLXZpc2liaWxpdHktdHJhbnNpdGlvbi10ZXN0Lmh0bWwgYi9MYXlv
dXRUZXN0cy9mYXN0L2V2ZW50cy9wYWdlLXZpc2liaWxpdHktdHJhbnNpdGlvbi10ZXN0Lmh0bWwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTQzNTI4NAotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3BhZ2UtdmlzaWJpbGl0eS10cmFuc2l0aW9u
LXRlc3QuaHRtbApAQCAtMCwwICsxLDc3IEBACis8aHRtbD4KKzxib2R5IG9ubG9hZD0nc3RhcnRU
ZXN0KCknPgorCis8c2NyaXB0PgorZnVuY3Rpb24gbWFrZVBhZ2VWaXNpYmxlKCkgeworICAgIGlm
ICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgICAgIGxheW91dFRlc3RDb250cm9s
bGVyLnNldFBhZ2VWaXNpYmlsaXR5KCJ2aXNpYmxlIik7Cit9CisKK2Z1bmN0aW9uIG1ha2VQYWdl
SGlkZGVuKCkgeworICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgICAg
IGxheW91dFRlc3RDb250cm9sbGVyLnNldFBhZ2VWaXNpYmlsaXR5KCJoaWRkZW4iKTsKK30KKwor
ZnVuY3Rpb24gaXNQYWdlVmlzaWJsZSgpIHsKKyAgICByZXR1cm4gZG9jdW1lbnQud2Via2l0Vmlz
aWJpbGl0eVN0YXRlID09ICJ2aXNpYmxlIjsKK30KKworZnVuY3Rpb24gaXNQYWdlSGlkZGVuKCkg
eworICAgIHJldHVybiBkb2N1bWVudC53ZWJraXRWaXNpYmlsaXR5U3RhdGUgPT0gImhpZGRlbiI7
Cit9CisKKworZnVuY3Rpb24gbG9nKHN0cmluZykgeworICAgIHZhciBsb2dEaXYgPSBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgibG9nRGl2Iik7CisgICAgbG9nRGl2LmFwcGVuZENoaWxkKGRvY3Vt
ZW50LmNyZWF0ZVRleHROb2RlKHN0cmluZykpOworICAgIGxvZ0Rpdi5hcHBlbmRDaGlsZChkb2N1
bWVudC5jcmVhdGVFbGVtZW50KCJiciIpKTsKK30KKworaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29u
dHJvbGxlcikKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisKKy8vIFdl
IHdpbGwgdHJ5IHRvIGNoYW5nZSB0aGUgdmlzaWJpbGl0eSBzdGF0ZXMgYXM6CisvLyAgMCAtIHZp
c2libGUuIChJbml0aWFsIC0gaS5lLiBvbiBsb2FkKS4KKy8vICAxYC0gaGlkZGVuIChzaG91bGQg
ZmlyZSBldmVudCkuCisvLyAgMiAtIGhpZGRlbiAobm8gZXZlbnQpLgorLy8gIDMgLSB2aXNpYmxl
IChzaG91bGQgZmlyZSBldmVudCkuCit2YXIgbnVtVmlzaWJpbGl0eUNoYW5nZXMgPSAwOworCitm
dW5jdGlvbiBzdGFydFRlc3QoKSB7CisgICAgaWYgKGlzUGFnZVZpc2libGUoKSkKKyAgICAgICAg
bG9nKCJQQVNTIDA6IHZpc2libGUiKTsKKyAgICBudW1WaXNpYmlsaXR5Q2hhbmdlcysrOworICAg
IG1ha2VQYWdlSGlkZGVuKCk7Cit9CisKK2Z1bmN0aW9uIG9uVmlzaWJpbGl0eUNoYW5nZSgpIHsK
KyAgICBpZiAobnVtVmlzaWJpbGl0eUNoYW5nZXMgPT0gMSkgeworICAgICAgICBpZiAoaXNQYWdl
SGlkZGVuKCkpIHsKKyAgICAgICAgICAgIGxvZygiUEFTUyAxOiBoaWRkZW4iKTsKKyAgICAgICAg
ICAgIG51bVZpc2liaWxpdHlDaGFuZ2VzKys7CisgICAgICAgICAgICBtYWtlUGFnZUhpZGRlbigp
OworICAgICAgICAgICAgbnVtVmlzaWJpbGl0eUNoYW5nZXMrKzsKKyAgICAgICAgICAgIG1ha2VQ
YWdlVmlzaWJsZSgpOworICAgICAgICB9CisgICAgICAgIHJldHVybjsKKyAgICB9IGVsc2UgaWYg
KG51bVZpc2liaWxpdHlDaGFuZ2VzID09IDIpIHsKKyAgICAgICAgbG9nKCJGQUlMIDI6IGhpZGRl
biIpOworICAgICAgICBudW1WaXNpYmlsaXR5Q2hhbmdlcysrOworICAgICAgICBtYWtlUGFnZVZp
c2libGUoKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0gZWxzZSBpZiAobnVtVmlzaWJpbGl0eUNo
YW5nZXMgPT0gMykgeworICAgICAgICBpZiAoaXNQYWdlVmlzaWJsZSgpKSB7CisgICAgICAgICAg
ICBsb2coIlBBU1MgMzogdmlzaWJsZSIpOworICAgICAgICAgICAgbnVtVmlzaWJpbGl0eUNoYW5n
ZXMrKzsKKyAgICAgICAgfQorICAgIH0KKyAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9s
bGVyKQorICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7Cit9CisKK2Rv
Y3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoIndlYmtpdHZpc2liaWxpdHlzdGF0ZWNoYW5nZSIsIG9u
VmlzaWJpbGl0eUNoYW5nZSwgZmFsc2UpOworPC9zY3JpcHQ+CisKKzxkaXYgaWQ9ImxvZ0RpdiI+
UGFnZSBWaXNpYmlsaXR5IFRyYW5zaXRpb25zOjxicj48L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3Jlc291cmNlcy9wYWdlLXZpc2li
aWxpdHktaWZyYW1lLXRlc3Qtc3ViZnJhbWUuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRz
L3Jlc291cmNlcy9wYWdlLXZpc2liaWxpdHktaWZyYW1lLXRlc3Qtc3ViZnJhbWUuaHRtbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xZmM1NTYyCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvcmVzb3VyY2VzL3BhZ2UtdmlzaWJpbGl0eS1pZnJh
bWUtdGVzdC1zdWJmcmFtZS5odG1sCkBAIC0wLDAgKzEsNDEgQEAKKzxodG1sPgorPGJvZHkgb25s
b2FkPSJzdGFydFRlc3QoKSI+CisKKzxzY3JpcHQ+CitpZiAod2luZG93LmxheW91dFRlc3RDb250
cm9sbGVyKQorICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKworZnVuY3Rp
b24gbG9nVmlzaWJpbGl0eSgpIHsKKyAgICBwYXJlbnQubG9nKCJDaGlsZCBGcmFtZTogIiArIGRv
Y3VtZW50LndlYmtpdFZpc2liaWxpdHlTdGF0ZSk7Cit9CisKKy8vIFdlIHdpbGwgdHJ5IHRvIGNo
YW5nZSB0aGUgdmlzaWJpbGl0eSBzdGF0ZXMgYXM6CisvLyAgMCAtIHZpc2libGUuIChJbml0aWFs
IC0gaS5lLiBvbiBsb2FkKS4KKy8vICAxYC0gaGlkZGVuCisvLyAgMiAtIHZpc2libGUKK3ZhciBu
dW1WaXNpYmlsaXR5Q2hhbmdlcyA9IDA7CisKK2Z1bmN0aW9uIHN0YXJ0VGVzdCgpIHsKKyAgICBw
YXJlbnQubG9nVmlzaWJpbGl0eSgpOworICAgIGxvZ1Zpc2liaWxpdHkoKTsKKyAgICBudW1WaXNp
YmlsaXR5Q2hhbmdlcysrOworICAgIHBhcmVudC5tYWtlUGFnZUhpZGRlbigpOworfQorCitmdW5j
dGlvbiBvblZpc2liaWxpdHlDaGFuZ2UoKSB7CisgICAgbG9nVmlzaWJpbGl0eSgpOworCisgICAg
aWYgKG51bVZpc2liaWxpdHlDaGFuZ2VzID09IDEpIHsKKyAgICAgICAgbnVtVmlzaWJpbGl0eUNo
YW5nZXMrKzsKKyAgICAgICAgcGFyZW50Lm1ha2VQYWdlVmlzaWJsZSgpOworICAgICAgICByZXR1
cm47CisgICAgfQorICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgICAg
IGxheW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsKK30KKworZG9jdW1lbnQuYWRkRXZl
bnRMaXN0ZW5lcigid2Via2l0dmlzaWJpbGl0eXN0YXRlY2hhbmdlIiwgb25WaXNpYmlsaXR5Q2hh
bmdlLCBmYWxzZSk7Cis8L3NjcmlwdD4KKworPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1NraXBwZWQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9n
dGsvU2tpcHBlZAppbmRleCAwNThmZDVkLi42NTg2NzI5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9ndGsvU2tpcHBlZAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvU2tp
cHBlZApAQCAtMTQwMiwzICsxNDAyLDcgQEAgZmFzdC90ZXh0L3plcm8td2lkdGgtY2hhcmFjdGVy
cy1jb21wbGV4LXNjcmlwdC5odG1sCiAKICMgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTU4OTcyCiBtZWRpYS9hZG9wdC1ub2RlLWNyYXNoLmh0bWwKKworIyBUaGlzIHBs
YXRmb3JtIGRvZXMgbm90IHN1cHBvcnQgdGhlIFBhZ2UgVmlzaWJpbGl0eSBBUEkuCitmYXN0L2V2
ZW50cy9wYWdlLXZpc2liaWxpdHktaWZyYW1lLXRlc3QuaHRtbAorZmFzdC9ldmVudHMvcGFnZS12
aXNpYmlsaXR5LXRyYW5zaXRpb24tdGVzdC5odG1sCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9tYWMvU2tpcHBlZCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9Ta2lwcGVkCmlu
ZGV4IDVmYTMyZjMuLjg3NTlkNDkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21h
Yy9Ta2lwcGVkCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9Ta2lwcGVkCkBAIC0zMzQs
MyArMzM0LDcgQEAgZmFzdC9kb20vdGl0bGUtZGlyZWN0aW9uYWxpdHkuaHRtbAogIyBUaW1pbmcg
b3V0IGZvciB1bmtub3duIHJlYXNvbnMuICBQYXNzZXMgb24gQ2hyb21pdW0sIFFUIGFuZCBHVEsr
LgogIyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTg5MjQKIHBsdWdp
bnMvbW91c2UtY2xpY2staWZyYW1lLXRvLXBsdWdpbi5odG1sCisKKyMgVGhpcyBwbGF0Zm9ybSBk
b2VzIG5vdCBzdXBwb3J0IHRoZSBQYWdlIFZpc2liaWxpdHkgQVBJLgorZmFzdC9ldmVudHMvcGFn
ZS12aXNpYmlsaXR5LWlmcmFtZS10ZXN0Lmh0bWwKK2Zhc3QvZXZlbnRzL3BhZ2UtdmlzaWJpbGl0
eS10cmFuc2l0aW9uLXRlc3QuaHRtbApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
cXQvU2tpcHBlZCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0L1NraXBwZWQKaW5kZXggOGZhNmRk
Yy4uYmRjYzU1NiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvU2tpcHBlZAor
KysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9Ta2lwcGVkCkBAIC0zNTAzLDMgKzM1MDMsNyBA
QCBmYXN0L3RleHQvemVyby13aWR0aC1jaGFyYWN0ZXJzLWNvbXBsZXgtc2NyaXB0Lmh0bWwKICMg
W1F0XSBSRUdSRVNTSU9OKHI4NDI5Nik6IHBsYXRmb3JtL3F0L2Zhc3QvaGlzdG9yeS9iYWNrLXRv
LXVucmVhY2hhYmxlLXVybC10aGVuLWZvcndhcmQuaHRtbCBmYWlscwogIyBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTg5NzcKIHBsYXRmb3JtL3F0L2Zhc3QvaGlzdG9y
eS9iYWNrLXRvLXVucmVhY2hhYmxlLXVybC10aGVuLWZvcndhcmQuaHRtbAorCisjIFRoaXMgcGxh
dGZvcm0gZG9lcyBub3Qgc3VwcG9ydCB0aGUgUGFnZSBWaXNpYmlsaXR5IEFQSS4KK2Zhc3QvZXZl
bnRzL3BhZ2UtdmlzaWJpbGl0eS1pZnJhbWUtdGVzdC5odG1sCitmYXN0L2V2ZW50cy9wYWdlLXZp
c2liaWxpdHktdHJhbnNpdGlvbi10ZXN0Lmh0bWwKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3Bs
YXRmb3JtL3dpbi9Ta2lwcGVkIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1NraXBwZWQKaW5k
ZXggNTNmNzc4ZC4uZTMzNzZjNSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2lu
L1NraXBwZWQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1NraXBwZWQKQEAgLTEyNDgs
MyArMTI0OCw3IEBAIGZhc3QvZG9tL3RpdGxlLWRpcmVjdGlvbmFsaXR5Lmh0bWwKICMgVGltaW5n
IG91dCBmb3IgdW5rbm93biByZWFzb25zLiAgUGFzc2VzIG9uIENocm9taXVtLCBRVCBhbmQgR1RL
Ky4KICMgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTU4OTI0CiBwbHVn
aW5zL21vdXNlLWNsaWNrLWlmcmFtZS10by1wbHVnaW4uaHRtbAorCisjIFRoaXMgcGxhdGZvcm0g
ZG9lcyBub3Qgc3VwcG9ydCB0aGUgUGFnZSBWaXNpYmlsaXR5IEFQSS4KK2Zhc3QvZXZlbnRzL3Bh
Z2UtdmlzaWJpbGl0eS1pZnJhbWUtdGVzdC5odG1sCitmYXN0L2V2ZW50cy9wYWdlLXZpc2liaWxp
dHktdHJhbnNpdGlvbi10ZXN0Lmh0bWwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0FuZHJv
aWQubWsgYi9Tb3VyY2UvV2ViQ29yZS9BbmRyb2lkLm1rCmluZGV4IDI5YzMwNmYuLjY5ODYwODUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0FuZHJvaWQubWsKKysrIGIvU291cmNlL1dlYkNv
cmUvQW5kcm9pZC5tawpAQCAtNDQ1LDYgKzQ0NSw3IEBAIExPQ0FMX1NSQ19GSUxFUyA6PSAkKExP
Q0FMX1NSQ19GSUxFUykgXAogCXBhZ2UvUGFnZS5jcHAgXAogCXBhZ2UvUGFnZUdyb3VwLmNwcCBc
CiAJcGFnZS9QYWdlR3JvdXBMb2FkRGVmZXJyZXIuY3BwIFwKKyAgICBwYWdlL1BhZ2VWaXNpYmls
aXR5U3RhdGUuY3BwIFwKIAlwYWdlL1BlcmZvcm1hbmNlLmNwcCBcCiAJcGFnZS9QZXJmb3JtYW5j
ZU5hdmlnYXRpb24uY3BwIFwKIAlwYWdlL1BlcmZvcm1hbmNlVGltaW5nLmNwcCBcCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL0NNYWtl
TGlzdHMudHh0CmluZGV4IGY5NjFiMWYuLjY3MGE5ZGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CkBA
IC0xMDIzLDYgKzEwMjMsNyBAQCBTRVQoV2ViQ29yZV9TT1VSQ0VTCiAgICAgcGFnZS9QYWdlLmNw
cAogICAgIHBhZ2UvUGFnZUdyb3VwLmNwcAogICAgIHBhZ2UvUGFnZUdyb3VwTG9hZERlZmVycmVy
LmNwcAorICAgIHBhZ2UvUGFnZVZpc2liaWxpdHlTdGF0ZS5jcHAKICAgICBwYWdlL1BlcmZvcm1h
bmNlLmNwcAogICAgIHBhZ2UvUGVyZm9ybWFuY2VOYXZpZ2F0aW9uLmNwcAogICAgIHBhZ2UvUGVy
Zm9ybWFuY2VUaW1pbmcuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cg
Yi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTk1ZGU2My4uOTNhODE2NCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDQxIEBACisyMDExLTA0LTIwICBTaGlzaGlyIEFncmF3YWwgIDxzaGlz
aGlyQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBJbXBsZW1lbnQgUGFnZSBWaXNpYmlsaXR5IEFQSS4KKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTU0MTgxCisKKyAgICAgICAgVGVzdHM6
IGZhc3QvZXZlbnRzL3BhZ2UtdmlzaWJpbGl0eS1pZnJhbWUtdGVzdC5odG1sCisgICAgICAgICAg
ICAgICBmYXN0L2V2ZW50cy9wYWdlLXZpc2liaWxpdHktdHJhbnNpdGlvbi10ZXN0Lmh0bWwKKwor
ICAgICAgICAqIEFuZHJvaWQubWs6CisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6CisgICAgICAg
ICogR05VbWFrZWZpbGUubGlzdC5hbToKKyAgICAgICAgKiBXZWJDb3JlLmd5cGk6CisgICAgICAg
ICogV2ViQ29yZS5wcm86CisgICAgICAgICogV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2o6
CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAq
IGRvbS9Eb2N1bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6d2Via2l0Vmlz
aWJpbGl0eVN0YXRlRW51bSk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6d2Via2l0Vmlz
aWJpbGl0eVN0YXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50Ojp3ZWJraXRJc1Zpc2li
bGUpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OmRpc3BhdGNoVmlzaWJpbGl0eVN0YXRl
Q2hhbmdlRXZlbnQpOgorICAgICAgICAqIGRvbS9Eb2N1bWVudC5oOgorICAgICAgICAqIGRvbS9E
b2N1bWVudC5pZGw6CisgICAgICAgICogZG9tL0V2ZW50TmFtZXMuaDoKKyAgICAgICAgKiBwYWdl
L0ZyYW1lLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lOjpkaXNwYXRjaFZpc2liaWxpdHlT
dGF0ZUNoYW5nZUV2ZW50KToKKyAgICAgICAgKiBwYWdlL0ZyYW1lLmg6CisgICAgICAgICogcGFn
ZS9QYWdlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2U6OlBhZ2UpOgorICAgICAgICAoV2Vi
Q29yZTo6UGFnZTo6c2V0VmlzaWJpbGl0eVN0YXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2U6
OnNldEluaXRpYWxWaXNpYmlsaXR5U3RhdGUpOgorICAgICAgICAoV2ViQ29yZTo6UGFnZTo6dmlz
aWJpbGl0eVN0YXRlKToKKyAgICAgICAgKiBwYWdlL1BhZ2UuaDoKKyAgICAgICAgKiBwYWdlL1Bh
Z2VWaXNpYmlsaXR5U3RhdGUuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkdldFBhZ2VW
aXNpYmlsaXR5U3RhdGVTdHJpbmcpOgorICAgICAgICAqIHBhZ2UvUGFnZVZpc2liaWxpdHlTdGF0
ZS5oOiBBZGRlZC4KKwogMjAxMS0wNC0yMCAgSmlhbiBMaSAgPGppYW5saUBjaHJvbWl1bS5vcmc+
CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgS2VubmV0aCBSdXNzZWxsLgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbSBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2Vm
aWxlLmxpc3QuYW0KaW5kZXggZmU5MzI0NC4uMjExOTAxNiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmls
ZS5saXN0LmFtCkBAIC0yMjQyLDYgKzIyNDIsOCBAQCB3ZWJjb3JlX3NvdXJjZXMgKz0gXAogCVNv
dXJjZS9XZWJDb3JlL3BhZ2UvUGFnZUdyb3VwLmggXAogCVNvdXJjZS9XZWJDb3JlL3BhZ2UvUGFn
ZUdyb3VwTG9hZERlZmVycmVyLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlR3JvdXBM
b2FkRGVmZXJyZXIuaCBcCisJU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlVmlzaWJpbGl0eVN0YXRl
LmNwcCBcCisJU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlVmlzaWJpbGl0eVN0YXRlLmggXAogCVNv
dXJjZS9XZWJDb3JlL3BhZ2UvUGVyZm9ybWFuY2UuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9wYWdl
L1BlcmZvcm1hbmNlLmggXAogCVNvdXJjZS9XZWJDb3JlL3BhZ2UvUGVyZm9ybWFuY2VOYXZpZ2F0
aW9uLmNwcCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkgYi9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKaW5kZXggMDEwYmUwMC4uN2Y1ZjM3MCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUuZ3lwaQpAQCAtNzA5LDYgKzcwOSw3IEBACiAgICAgICAgICAgICAncGFnZS9NZW1vcnlJbmZv
LmgnLAogICAgICAgICAgICAgJ3BhZ2UvUGFnZS5oJywKICAgICAgICAgICAgICdwYWdlL1BhZ2VH
cm91cC5oJywKKyAgICAgICAgICAgICdwYWdlL1BhZ2VWaXNpYmlsaXR5U3RhdGUuaCcsCiAgICAg
ICAgICAgICAncGFnZS9QbHVnaW5IYWx0ZXJDbGllbnQuaCcsCiAgICAgICAgICAgICAncGFnZS9Q
b3NpdGlvbkNhbGxiYWNrLmgnLAogICAgICAgICAgICAgJ3BhZ2UvUG9zaXRpb25FcnJvci5oJywK
QEAgLTM0NTEsNiArMzQ1Miw3IEBACiAgICAgICAgICAgICAncGFnZS9QYWdlR3JvdXAuY3BwJywK
ICAgICAgICAgICAgICdwYWdlL1BhZ2VHcm91cExvYWREZWZlcnJlci5jcHAnLAogICAgICAgICAg
ICAgJ3BhZ2UvUGFnZUdyb3VwTG9hZERlZmVycmVyLmgnLAorICAgICAgICAgICAgJ3BhZ2UvUGFn
ZVZpc2liaWxpdHlTdGF0ZS5jcHAnLAogICAgICAgICAgICAgJ3BhZ2UvUGVyZm9ybWFuY2UuY3Bw
JywKICAgICAgICAgICAgICdwYWdlL1BlcmZvcm1hbmNlLmgnLAogICAgICAgICAgICAgJ3BhZ2Uv
UGVyZm9ybWFuY2VOYXZpZ2F0aW9uLmNwcCcsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnBybyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUucHJvCmluZGV4IDk1NzkxOTkuLmU0
ZjhiMmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUucHJvCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUucHJvCkBAIC05MzIsNiArOTMyLDcgQEAgU09VUkNFUyArPSBcCiAg
ICAgcGFnZS9QYWdlLmNwcCBcCiAgICAgcGFnZS9QYWdlR3JvdXAuY3BwIFwKICAgICBwYWdlL1Bh
Z2VHcm91cExvYWREZWZlcnJlci5jcHAgXAorICAgIHBhZ2UvUGFnZVZpc2liaWxpdHlTdGF0ZS5j
cHAgXAogICAgIHBhZ2UvUGVyZm9ybWFuY2UuY3BwIFwKICAgICBwYWdlL1BlcmZvcm1hbmNlTmF2
aWdhdGlvbi5jcHAgXAogICAgIHBhZ2UvUGVyZm9ybWFuY2VUaW1pbmcuY3BwIFwKQEAgLTE4Nzks
NiArMTg4MCw3IEBAIEhFQURFUlMgKz0gXAogICAgIHBhZ2UvUGFnZUdyb3VwLmggXAogICAgIHBh
Z2UvUGFnZUdyb3VwTG9hZERlZmVycmVyLmggXAogICAgIHBhZ2UvUGFnZS5oIFwKKyAgICBwYWdl
L1BhZ2VWaXNpYmlsaXR5U3RhdGUuaCBcCiAgICAgcGFnZS9QbHVnaW5IYWx0ZXIuaCBcCiAgICAg
cGFnZS9QbHVnaW5IYWx0ZXJDbGllbnQuaCBcCiAgICAgcGFnZS9QcmludENvbnRleHQuaCBcCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvaiBi
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCmluZGV4IDIzYWYz
M2YuLjQ1NTRkZTkgMTAwNzU1Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dl
YkNvcmUudmNwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUu
dmNwcm9qCkBAIC0yNTExNCw2ICsyNTExNCwxMiBAQAogCQkJCT4KIAkJCTwvRmlsZT4KIAkJCTxG
aWxlCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxwYWdlXFBhZ2VWaXNpYmlsaXR5U3RhdGUuY3BwIgor
CQkJCT4KKwkJCTxGaWxlCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxwYWdlXFBhZ2VWaXNpYmlsaXR5
U3RhdGUuaCIKKwkJCQk+CisJCQk8RmlsZQogCQkJCVJlbGF0aXZlUGF0aD0iLi5ccGFnZVxQZXJm
b3JtYW5jZS5jcHAiCiAJCQkJPgogCQkJPC9GaWxlPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDg0NzVhOTEuLjc5OGUzMTEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oK
QEAgLTYwMDEsNiArNjAwMSw4IEBACiAJCUZFODBEQTY2MEU5QzQ3MDMwMDBENkY3NSAvKiBKU0dl
b3Bvc2l0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBGRTgwREE2MjBFOUM0NzAzMDAwRDZGNzUgLyogSlNHZW9wb3NpdGlvbi5oICovOyB9OwogCQlG
RTgwREE3MTBFOUM0NzJGMDAwRDZGNzUgLyogSlNQb3NpdGlvbkVycm9yLmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEZFODBEQTZEMEU5QzQ3MkYwMDBE
NkY3NSAvKiBKU1Bvc2l0aW9uRXJyb3IuY3BwICovOyB9OwogCQlGRTgwREE3MjBFOUM0NzJGMDAw
RDZGNzUgLyogSlNQb3NpdGlvbkVycm9yLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBGRTgwREE2RTBFOUM0NzJGMDAwRDZGNzUgLyogSlNQb3NpdGlvbkVy
cm9yLmggKi87IH07CisJCUZGRDVCOTdBMTM1Q0M5NzgwMEQ1RTkyQSAvKiBQYWdlVmlzaWJpbGl0
eVN0YXRlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEZGRDVCOTc3MTM1Q0M5NzgwMEQ1RTkyQSAvKiBQYWdlVmlzaWJpbGl0eVN0YXRlLmNwcCAqLzsg
fTsKKwkJRkZENUI5N0IxMzVDQzk3ODAwRDVFOTJBIC8qIFBhZ2VWaXNpYmlsaXR5U3RhdGUuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEZGRDVCOTc4MTM1
Q0M5NzgwMEQ1RTkyQSAvKiBQYWdlVmlzaWJpbGl0eVN0YXRlLmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIC8qIEVuZCBQQlhCdWlsZEZpbGUgc2VjdGlv
biAqLwogCiAvKiBCZWdpbiBQQlhDb250YWluZXJJdGVtUHJveHkgc2VjdGlvbiAqLwpAQCAtMTI2
MDAsNiArMTI2MDIsOCBAQAogCQlGRTgwREE2MjBFOUM0NzAzMDAwRDZGNzUgLyogSlNHZW9wb3Np
dGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU0dlb3Bvc2l0aW9uLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUZFODBEQTZEMEU5QzQ3MkYwMDBENkY3NSAv
KiBKU1Bvc2l0aW9uRXJyb3IuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gSlNQb3NpdGlvbkVycm9yLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRkU4
MERBNkUwRTlDNDcyRjAwMEQ2Rjc1IC8qIEpTUG9zaXRpb25FcnJvci5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBKU1Bvc2l0aW9uRXJyb3IuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJRkZENUI5NzcxMzVDQzk3ODAwRDVFOTJBIC8qIFBhZ2VWaXNpYmlsaXR5U3Rh
dGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUGFnZVZpc2liaWxp
dHlTdGF0ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUZGRDVCOTc4MTM1Q0M5
NzgwMEQ1RTkyQSAvKiBQYWdlVmlzaWJpbGl0eVN0YXRlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFBhZ2VWaXNpYmlsaXR5U3RhdGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIC8qIEVuZCBQQlhGaWxlUmVmZXJlbmNlIHNlY3Rpb24gKi8KIAogLyogQmVnaW4gUEJY
RnJhbWV3b3Jrc0J1aWxkUGhhc2Ugc2VjdGlvbiAqLwpAQCAtMTQzODYsNiArMTQzOTAsOCBAQAog
CQkJCTkzMDJCMEJFMEQ3OUY4MkMwMEM3RUU4MyAvKiBQYWdlR3JvdXAuaCAqLywKIAkJCQk3QTY3
NEJEOTBGOUVCRjRFMDA2Q0YwOTkgLyogUGFnZUdyb3VwTG9hZERlZmVycmVyLmNwcCAqLywKIAkJ
CQk3QTY3NEJEQTBGOUVCRjRFMDA2Q0YwOTkgLyogUGFnZUdyb3VwTG9hZERlZmVycmVyLmggKi8s
CisJCQkJRkZENUI5NzcxMzVDQzk3ODAwRDVFOTJBIC8qIFBhZ2VWaXNpYmlsaXR5U3RhdGUuY3Bw
ICovLAorCQkJCUZGRDVCOTc4MTM1Q0M5NzgwMEQ1RTkyQSAvKiBQYWdlVmlzaWJpbGl0eVN0YXRl
LmggKi8sCiAJCQkJOEE4NDREMDExMUQzQzE4RTAwMTQwNjVDIC8qIFBlcmZvcm1hbmNlLmNwcCAq
LywKIAkJCQk4QTg0NEQwMjExRDNDMThFMDAxNDA2NUMgLyogUGVyZm9ybWFuY2UuaCAqLywKIAkJ
CQk4QTg0NEQwMzExRDNDMThFMDAxNDA2NUMgLyogUGVyZm9ybWFuY2UuaWRsICovLApAQCAtMjIx
MTEsNiArMjIxMTcsNyBAQAogCQkJCTdBNjc0QkRDMEY5RUJGNEUwMDZDRjA5OSAvKiBQYWdlR3Jv
dXBMb2FkRGVmZXJyZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUYzNDc0MkU1MTM0MzYzM0MwMDUz
MUJDMiAvKiBQYWdlU2NyaXB0RGVidWdTZXJ2ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUUxMjg0
QUUxMTA0NDdENDUwMEVBRUI1MiAvKiBQYWdlVHJhbnNpdGlvbkV2ZW50LmggaW4gSGVhZGVycyAq
LywKKwkJCQlGRkQ1Qjk3QjEzNUNDOTc4MDBENUU5MkEgLyogUGFnZVZpc2liaWxpdHlTdGF0ZS5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJNTFFMUVDQzMwQzkxQzkwNDAwREMyNTVCIC8qIFBhZ2VVUkxS
ZWNvcmQuaCBpbiBIZWFkZXJzICovLAogCQkJCTA4ODUwNjdGMTFEQTA0NUIwMDE4MkI5OCAvKiBQ
YWludEluZm8uaCBpbiBIZWFkZXJzICovLAogCQkJCTA4ODUwNjgwMTFEQTA0NUIwMDE4MkI5OCAv
KiBQYWludFBoYXNlLmggaW4gSGVhZGVycyAqLywKQEAgLTI1NzEyLDYgKzI1NzE5LDkgQEAKIAkJ
CQk5M0YxOUIwNTA4MjQ1RTU5MDAxRTlBQkMgLyogWFNMVFByb2Nlc3NvckxpYnhzbHQuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJRTFCRTUxMkQwQ0Y2QzUxMjAwMkVBOTU5IC8qIFhTTFRVbmljb2Rl
U29ydC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5NzdFMkUwRTEyRjBGQzlDMDBDMTMzNzkgLyog
WFNTRmlsdGVyLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCThDQURGMkFBMTM1QzdCMzYwMDlFRjQz
RiAvKiBMZXZlbERCRGF0YWJhc2UuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJOENBREYyQUMxMzVD
N0IzNjAwOUVGNDNGIC8qIExldmVsREJJdGVyYXRvci5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlG
RkQ1Qjk3QTEzNUNDOTc4MDBENUU5MkEgLyogUGFnZVZpc2liaWxpdHlTdGF0ZS5jcHAgaW4gU291
cmNlcyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0g
MDsKIAkJfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCmluZGV4IDNlZGRiZWYuLjlmNjI1OTUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvZG9tL0RvY3VtZW50LmNwcApAQCAtMTMzMSw2ICsxMzMxLDMyIEBAIHZvaWQgRG9jdW1l
bnQ6OnJlbW92ZVRpdGxlKEVsZW1lbnQqIHRpdGxlRWxlbWVudCkKICAgICAgICAgdXBkYXRlVGl0
bGUoU3RyaW5nV2l0aERpcmVjdGlvbigpKTsKIH0KIAorI2lmIEVOQUJMRShQQUdFX1ZJU0lCSUxJ
VFlfQVBJKQorUGFnZVZpc2liaWxpdHlTdGF0ZSBEb2N1bWVudDo6d2Via2l0VmlzaWJpbGl0eVN0
YXRlRW51bSgpIGNvbnN0Cit7CisgICAgLy8gSWYgdGhlcmUgaXMgbm8gZnJhbSBhc3NvY2lhdGVk
IHdpdGggdGhlIGRvY3VtZW50IG9yIG5vIHBhZ2UgYXNzb2NpYXRlZAorICAgIC8vIHdpdGggdGhl
IGZyYW1lLCB3ZSB3aWxsIGNvbnNpZGVyIHRoZSBkb2N1bWVudCB0byBiZSBpbnZpc2libGUuCisg
ICAgaWYgKCFtX2ZyYW1lIHx8ICFtX2ZyYW1lLT5wYWdlKCkpCisgICAgICAgIHJldHVybiBQYWdl
VmlzaWJpbGl0eVN0YXRlSGlkZGVuOworICAgIHJldHVybiBtX2ZyYW1lLT5wYWdlKCktPnZpc2li
aWxpdHlTdGF0ZSgpOworfQorCitTdHJpbmcgRG9jdW1lbnQ6OndlYmtpdFZpc2liaWxpdHlTdGF0
ZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIEdldFBhZ2VWaXNpYmlsaXR5U3RhdGVTdHJpbmcod2Vi
a2l0VmlzaWJpbGl0eVN0YXRlRW51bSgpKTsKK30KKworYm9vbCBEb2N1bWVudDo6d2Via2l0SXNW
aXNpYmxlKCkgY29uc3QKK3sKKyAgICByZXR1cm4gd2Via2l0VmlzaWJpbGl0eVN0YXRlRW51bSgp
ID09IFBhZ2VWaXNpYmlsaXR5U3RhdGVWaXNpYmxlOworfQorCit2b2lkIERvY3VtZW50OjpkaXNw
YXRjaFZpc2liaWxpdHlTdGF0ZUNoYW5nZUV2ZW50KCkKK3sKKyAgICBkaXNwYXRjaEV2ZW50KEV2
ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLndlYmtpdHZpc2liaWxpdHlzdGF0ZWNoYW5nZUV2ZW50
LCBmYWxzZSwgZmFsc2UpKTsKK30KKyNlbmRpZgorCiBTdHJpbmcgRG9jdW1lbnQ6Om5vZGVOYW1l
KCkgY29uc3QKIHsKICAgICByZXR1cm4gIiNkb2N1bWVudCI7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vRG9jdW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCmlu
ZGV4IDc5ZWVlY2UuLjBhNjU2YWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1
bWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCkBAIC0zMyw2ICszMyw3
IEBACiAjaW5jbHVkZSAiQ29sb3IuaCIKICNpbmNsdWRlICJET01UaW1lU3RhbXAuaCIKICNpbmNs
dWRlICJEb2N1bWVudFRpbWluZy5oIgorI2luY2x1ZGUgIlBhZ2VWaXNpYmlsaXR5U3RhdGUuaCIK
ICNpbmNsdWRlICJRdWFsaWZpZWROYW1lLmgiCiAjaW5jbHVkZSAiU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dC5oIgogI2luY2x1ZGUgIlN0cmluZ1dpdGhEaXJlY3Rpb24uaCIKQEAgLTMwMCw2ICszMDEs
OSBAQCBwdWJsaWM6CiAjaWYgRU5BQkxFKEZVTExTQ1JFRU5fQVBJKQogICAgIERFRklORV9BVFRS
SUJVVEVfRVZFTlRfTElTVEVORVIod2Via2l0ZnVsbHNjcmVlbmNoYW5nZSk7CiAjZW5kaWYKKyNp
ZiBFTkFCTEUoUEFHRV9WSVNJQklMSVRZX0FQSSkKKyAgICBERUZJTkVfQVRUUklCVVRFX0VWRU5U
X0xJU1RFTkVSKHdlYmtpdHZpc2liaWxpdHlzdGF0ZWNoYW5nZSk7CisjZW5kaWYKIAogICAgIFZp
ZXdwb3J0QXJndW1lbnRzIHZpZXdwb3J0QXJndW1lbnRzKCkgY29uc3QgeyByZXR1cm4gbV92aWV3
cG9ydEFyZ3VtZW50czsgfQogCkBAIC0zNzMsNiArMzc3LDEzIEBAIHB1YmxpYzoKIAogICAgIHZp
cnR1YWwgS1VSTCBiYXNlVVJJKCkgY29uc3Q7CiAKKyNpZiBFTkFCTEUoUEFHRV9WSVNJQklMSVRZ
X0FQSSkKKyAgICBQYWdlVmlzaWJpbGl0eVN0YXRlIHdlYmtpdFZpc2liaWxpdHlTdGF0ZUVudW0o
KSBjb25zdDsKKyAgICBTdHJpbmcgd2Via2l0VmlzaWJpbGl0eVN0YXRlKCkgY29uc3Q7CisgICAg
Ym9vbCB3ZWJraXRJc1Zpc2libGUoKSBjb25zdDsKKyAgICB2b2lkIGRpc3BhdGNoVmlzaWJpbGl0
eVN0YXRlQ2hhbmdlRXZlbnQoKTsKKyNlbmRpZgorCiAgICAgUGFzc1JlZlB0cjxOb2RlPiBhZG9w
dE5vZGUoUGFzc1JlZlB0cjxOb2RlPiBzb3VyY2UsIEV4Y2VwdGlvbkNvZGUmKTsKIAogICAgIFBh
c3NSZWZQdHI8SFRNTENvbGxlY3Rpb24+IGltYWdlcygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZG9tL0RvY3VtZW50LmlkbCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5pZGwK
aW5kZXggY2Y4MjBiYS4uYjNmZjE5NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0Rv
Y3VtZW50LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaWRsCkBAIC0zNDEs
NiArMzQxLDEwIEBAIG1vZHVsZSBjb3JlIHsKICAgICAgICAgYm9vbGVhbiBpc0hUTUxEb2N1bWVu
dCgpOwogI2VuZGlmCiAKKyAgICAgICAgLy8gUGFnZSB2aXNpYmlsaXR5IEFQSS4KKyAgICAgICAg
cmVhZG9ubHkgYXR0cmlidXRlIFtDb25kaXRpb25hbD1QQUdFX1ZJU0lCSUxJVFlfQVBJXSBET01T
dHJpbmcgd2Via2l0VmlzaWJpbGl0eVN0YXRlOworICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUg
W0NvbmRpdGlvbmFsPVBBR0VfVklTSUJJTElUWV9BUEldIGJvb2xlYW4gd2Via2l0SXNWaXNpYmxl
OworCiAgICAgfTsKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50TmFt
ZXMuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudE5hbWVzLmgKaW5kZXggZWNlMmEwOC4uOTZm
MDM4MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50TmFtZXMuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9kb20vRXZlbnROYW1lcy5oCkBAIC0xMDYsNiArMTA2LDcgQEAgbmFtZXNw
YWNlIFdlYkNvcmUgewogICAgIG1hY3JvKHVubG9hZCkgXAogICAgIG1hY3JvKHVwZGF0ZXJlYWR5
KSBcCiAgICAgbWFjcm8odmVyc2lvbmNoYW5nZSkgXAorICAgIG1hY3JvKHdlYmtpdHZpc2liaWxp
dHlzdGF0ZWNoYW5nZSkgXAogICAgIG1hY3JvKHdyaXRlKSBcCiAgICAgbWFjcm8od3JpdGVlbmQp
IFwKICAgICBtYWNybyh3cml0ZXN0YXJ0KSBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL0ZyYW1lLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWUuY3BwCmluZGV4IGI2MGIz
OTMuLjc1NmQ1NWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWUuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWUuY3BwCkBAIC02NjksNiArNjY5LDE2IEBAIHZv
aWQgRnJhbWU6OnNldERPTVdpbmRvdyhET01XaW5kb3cqIGRvbVdpbmRvdykKICAgICBtX2RvbVdp
bmRvdyA9IGRvbVdpbmRvdzsKIH0KIAorI2lmIEVOQUJMRShQQUdFX1ZJU0lCSUxJVFlfQVBJKQor
dm9pZCBGcmFtZTo6ZGlzcGF0Y2hWaXNpYmlsaXR5U3RhdGVDaGFuZ2VFdmVudCgpCit7CisgICAg
aWYgKG1fZG9jKQorICAgICAgICBtX2RvYy0+ZGlzcGF0Y2hWaXNpYmlsaXR5U3RhdGVDaGFuZ2VF
dmVudCgpOworICAgIGZvciAoRnJhbWUqIGNoaWxkID0gdHJlZSgpLT5maXJzdENoaWxkKCk7IGNo
aWxkOyBjaGlsZCA9IGNoaWxkLT50cmVlKCktPm5leHRTaWJsaW5nKCkpCisgICAgICAgIGNoaWxk
LT5kaXNwYXRjaFZpc2liaWxpdHlTdGF0ZUNoYW5nZUV2ZW50KCk7Cit9CisjZW5kaWYKKwogRE9N
V2luZG93KiBGcmFtZTo6ZG9tV2luZG93KCkgY29uc3QKIHsKICAgICBpZiAoIW1fZG9tV2luZG93
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZS5oIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9GcmFtZS5oCmluZGV4IDA1ODA1Y2YuLjBlM2JkYmYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvRnJhbWUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lLmgK
QEAgLTExOCw2ICsxMTgsMTAgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiAgICAgICAgIHZvaWQg
dHJhbnNmZXJDaGlsZEZyYW1lVG9OZXdEb2N1bWVudCgpOwogCisjaWYgRU5BQkxFKFBBR0VfVklT
SUJJTElUWV9BUEkpCisgICAgICAgIHZvaWQgZGlzcGF0Y2hWaXNpYmlsaXR5U3RhdGVDaGFuZ2VF
dmVudCgpOworI2VuZGlmCisKICAgICAvLyA9PT09PT09PSBBbGwgcHVibGljIGZ1bmN0aW9ucyBi
ZWxvdyB0aGlzIHBvaW50IGFyZSBjYW5kaWRhdGVzIHRvIG1vdmUgb3V0IG9mIEZyYW1lIGludG8g
YW5vdGhlciBjbGFzcy4gPT09PT09PT0KIAogICAgICAgICBib29sIGlzRGlzY29ubmVjdGVkKCkg
Y29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9QYWdlLmNwcAppbmRleCAwZjBmMWYyLi5lYWUyMzUzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
UGFnZS5jcHAKQEAgLTE2Miw2ICsxNjIsOSBAQCBQYWdlOjpQYWdlKGNvbnN0IFBhZ2VDbGllbnRz
JiBwYWdlQ2xpZW50cykKICAgICAsIG1fdmlld01vZGUoVmlld01vZGVXaW5kb3dlZCkKICAgICAs
IG1fbWluaW11bVRpbWVySW50ZXJ2YWwoU2V0dGluZ3M6OmRlZmF1bHRNaW5ET01UaW1lckludGVy
dmFsKCkpCiAgICAgLCBtX2lzRWRpdGFibGUoZmFsc2UpCisjaWYgRU5BQkxFKFBBR0VfVklTSUJJ
TElUWV9BUEkpCisgICAgLCBtX3Zpc2liaWxpdHlTdGF0ZShQYWdlVmlzaWJpbGl0eVN0YXRlVmlz
aWJsZSkKKyNlbmRpZgogewogICAgIGlmICghYWxsUGFnZXMpIHsKICAgICAgICAgYWxsUGFnZXMg
PSBuZXcgSGFzaFNldDxQYWdlKj47CkBAIC05MzgsNiArOTQxLDI4IEBAIHZvaWQgUGFnZTo6Y2hl
Y2tGcmFtZUNvdW50Q29uc2lzdGVuY3koKSBjb25zdAogfQogI2VuZGlmCiAKKyNpZiBFTkFCTEUo
UEFHRV9WSVNJQklMSVRZX0FQSSkKK3ZvaWQgUGFnZTo6c2V0VmlzaWJpbGl0eVN0YXRlKFBhZ2VW
aXNpYmlsaXR5U3RhdGUgdmlzaWJpbGl0eVN0YXRlKQoreworICAgIGlmIChtX3Zpc2liaWxpdHlT
dGF0ZSA9PSB2aXNpYmlsaXR5U3RhdGUpCisgICAgICAgIHJldHVybjsKKyAgICBtX3Zpc2liaWxp
dHlTdGF0ZSA9IHZpc2liaWxpdHlTdGF0ZTsKKworICAgIGlmIChtX21haW5GcmFtZSkKKyAgICAg
ICAgbV9tYWluRnJhbWUtPmRpc3BhdGNoVmlzaWJpbGl0eVN0YXRlQ2hhbmdlRXZlbnQoKTsKK30K
Kwordm9pZCBQYWdlOjpzZXRJbml0aWFsVmlzaWJpbGl0eVN0YXRlKFBhZ2VWaXNpYmlsaXR5U3Rh
dGUgdmlzaWJpbGl0eVN0YXRlKQoreworICAgIG1fdmlzaWJpbGl0eVN0YXRlID0gdmlzaWJpbGl0
eVN0YXRlOworfQorCitQYWdlVmlzaWJpbGl0eVN0YXRlIFBhZ2U6OnZpc2liaWxpdHlTdGF0ZSgp
IGNvbnN0Cit7CisgICAgcmV0dXJuIG1fdmlzaWJpbGl0eVN0YXRlOworfQorI2VuZGlmCisKIFBh
Z2U6OlBhZ2VDbGllbnRzOjpQYWdlQ2xpZW50cygpCiAgICAgOiBjaHJvbWVDbGllbnQoMCkKICAg
ICAsIGNvbnRleHRNZW51Q2xpZW50KDApCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L1BhZ2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oCmluZGV4IGFjNGMxNjAuLjgzNzk3
YzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvUGFnZS5oCkBAIC0yMyw2ICsyMyw3IEBACiAKICNpbmNsdWRlICJGcmFtZUxv
YWRlclR5cGVzLmgiCiAjaW5jbHVkZSAiRmluZE9wdGlvbnMuaCIKKyNpbmNsdWRlICJQYWdlVmlz
aWJpbGl0eVN0YXRlLmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1TdHJpbmcuaCIKICNpbmNsdWRlICJW
aWV3cG9ydEFyZ3VtZW50cy5oIgogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CkBAIC0zMDEsNiAr
MzAyLDEyIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgdm9pZCBzZXRFZGl0YWJsZShi
b29sIGlzRWRpdGFibGUpIHsgbV9pc0VkaXRhYmxlID0gaXNFZGl0YWJsZTsgfQogICAgICAgICBi
b29sIGlzRWRpdGFibGUoKSB7IHJldHVybiBtX2lzRWRpdGFibGU7IH0KIAorI2lmIEVOQUJMRShQ
QUdFX1ZJU0lCSUxJVFlfQVBJKQorICAgICAgICBQYWdlVmlzaWJpbGl0eVN0YXRlIHZpc2liaWxp
dHlTdGF0ZSgpIGNvbnN0OworICAgICAgICB2b2lkIHNldFZpc2liaWxpdHlTdGF0ZShQYWdlVmlz
aWJpbGl0eVN0YXRlKTsKKyAgICAgICAgdm9pZCBzZXRJbml0aWFsVmlzaWJpbGl0eVN0YXRlKFBh
Z2VWaXNpYmlsaXR5U3RhdGUpOworI2VuZGlmCisKICAgICBwcml2YXRlOgogICAgICAgICB2b2lk
IGluaXRHcm91cCgpOwogCkBAIC00MDcsNiArNDE0LDEwIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsK
ICAgICAgICAgT3duUHRyPFNjcm9sbGFibGVBcmVhU2V0PiBtX3Njcm9sbGFibGVBcmVhU2V0Owog
CiAgICAgICAgIGJvb2wgbV9pc0VkaXRhYmxlOworCisjaWYgRU5BQkxFKFBBR0VfVklTSUJJTElU
WV9BUEkpCisgICAgICAgIFBhZ2VWaXNpYmlsaXR5U3RhdGUgbV92aXNpYmlsaXR5U3RhdGU7Cisj
ZW5kaWYKICAgICB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL1BhZ2VWaXNpYmlsaXR5U3RhdGUuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9QYWdlVmlzaWJpbGl0eVN0YXRlLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwLi5mZTE4ZGZhCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9Q
YWdlVmlzaWJpbGl0eVN0YXRlLmNwcApAQCAtMCwwICsxLDU2IEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4K
KyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBv
ZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUg
cHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMg
cHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIg
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
CisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRP
UlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1Mg
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisg
KiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5o
IgorI2luY2x1ZGUgIlBhZ2VWaXNpYmlsaXR5U3RhdGUuaCIKKworI2lmIEVOQUJMRShQQUdFX1ZJ
U0lCSUxJVFlfQVBJKQorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1N0cmluZyBHZXRQYWdlVmlz
aWJpbGl0eVN0YXRlU3RyaW5nKFBhZ2VWaXNpYmlsaXR5U3RhdGUgc3RhdGUpCit7CisgICAgREVG
SU5FX1NUQVRJQ19MT0NBTChjb25zdCBTdHJpbmcsIHZpc2libGUsICgidmlzaWJsZSIpKTsKKyAg
ICBERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IFN0cmluZywgaGlkZGVuLCAoImhpZGRlbiIpKTsK
KworICAgIHN3aXRjaCAoc3RhdGUpIHsKKyAgICBjYXNlIFBhZ2VWaXNpYmlsaXR5U3RhdGVWaXNp
YmxlOgorICAgICAgICByZXR1cm4gdmlzaWJsZTsKKyAgICBjYXNlIFBhZ2VWaXNpYmlsaXR5U3Rh
dGVIaWRkZW46CisgICAgICAgIHJldHVybiBoaWRkZW47CisgICAgfQorCisgICAgQVNTRVJUX05P
VF9SRUFDSEVEKCk7CisgICAgcmV0dXJuIFN0cmluZygpOworfQorCit9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCisKKyNlbmRpZiAvLyBpZiBFTkFCTEUoUEFHRV9WSVNJQklMSVRZX0FQSSkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZVZpc2liaWxpdHlTdGF0ZS5oIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9QYWdlVmlzaWJpbGl0eVN0YXRlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMC4uYTdkNzAyMQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvUGFnZVZpc2liaWxpdHlTdGF0ZS5oCkBAIC0wLDAgKzEsNTEgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
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
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFBhZ2VW
aXNpYmlsaXR5U3RhdGVfaAorI2RlZmluZSBQYWdlVmlzaWJpbGl0eVN0YXRlX2gKKworI2luY2x1
ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKKy8vIFRo
ZSBlbnVtIGlzIG5vdCBmbGFnIHByb3RlY3RlZCBhcyBpdCBpcyB1c2VkIGluIHRoZSBXZWJLaXQg
Y2hyb21pdW0gQVBJCisvLyB3aXRob3V0IGZsYWcgcHJvdGVjdGlvbi4KK2VudW0gUGFnZVZpc2li
aWxpdHlTdGF0ZSB7CisgICAgUGFnZVZpc2liaWxpdHlTdGF0ZVZpc2libGUsCisgICAgUGFnZVZp
c2liaWxpdHlTdGF0ZUhpZGRlbgorfTsKKworI2lmIEVOQUJMRShQQUdFX1ZJU0lCSUxJVFlfQVBJ
KQorU3RyaW5nIEdldFBhZ2VWaXNpYmlsaXR5U3RhdGVTdHJpbmcoUGFnZVZpc2liaWxpdHlTdGF0
ZSk7CisjZW5kaWYKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gaWZuZGVm
IFBhZ2VWaXNpYmlsaXR5U3RhdGVfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwppbmRleCBlZWM4
MDljLi41ODlmNzU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxv
ZworKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBA
CisyMDExLTA0LTIwICBTaGlzaGlyIEFncmF3YWwgIDxzaGlzaGlyQGNocm9taXVtLm9yZz4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJbXBsZW1lbnQg
UGFnZSBWaXNpYmlsaXR5IEFQSS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTU0MTgxCisKKyAgICAgICAgKiBXZWJLaXQuZ3lwOgorICAgICAgICAqIGZl
YXR1cmVzLmd5cGk6CisgICAgICAgICogcHVibGljL1dlYlBhZ2VWaXNpYmlsaXR5U3RhdGUuaDog
QWRkZWQuCisgICAgICAgICogcHVibGljL1dlYlZpZXcuaDoKKyAgICAgICAgKFdlYktpdDo6V2Vi
Vmlldzo6c2V0VmlzaWJpbGl0eVN0YXRlKToKKyAgICAgICAgKiBwdWJsaWMvV2ViVmlld0NsaWVu
dC5oOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3Q2xpZW50Ojp2aXNpYmlsaXR5U3RhdGUpOgor
ICAgICAgICAqIHNyYy9XZWJWaWV3SW1wbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJ
bXBsOjpzZXRWaXNpYmlsaXR5U3RhdGUpOgorICAgICAgICAqIHNyYy9XZWJWaWV3SW1wbC5oOgor
CiAyMDExLTA0LTIwICBFdmFuIE1hcnRpbiAgPGV2YW5AY2hyb21pdW0ub3JnPgogCiAgICAgICAg
IFJldmlld2VkIGJ5IFRvbnkgQ2hhbmcuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL1dlYktpdC5neXAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL1dlYktpdC5neXAKaW5kZXgg
MGVlNWRkNi4uMjkyMWMwYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9XZWJL
aXQuZ3lwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vV2ViS2l0Lmd5cApAQCAtMjI2LDYg
KzIyNiw3IEBACiAgICAgICAgICAgICAgICAgJ3B1YmxpYy9XZWJPcHRpb25FbGVtZW50LmgnLAog
ICAgICAgICAgICAgICAgICdwdWJsaWMvV2ViUGFnZVNlcmlhbGl6ZXIuaCcsCiAgICAgICAgICAg
ICAgICAgJ3B1YmxpYy9XZWJQYWdlU2VyaWFsaXplckNsaWVudC5oJywKKyAgICAgICAgICAgICAg
ICAncHVibGljL1dlYlBhZ2VWaXNpYmlsaXR5U3RhdGUuaCcsCiAgICAgICAgICAgICAgICAgJ3B1
YmxpYy9XZWJQYXNzd29yZEF1dG9jb21wbGV0ZUxpc3RlbmVyLmgnLAogICAgICAgICAgICAgICAg
ICdwdWJsaWMvV2ViUGFzc3dvcmRGb3JtRGF0YS5oJywKICAgICAgICAgICAgICAgICAncHVibGlj
L1dlYlBlcmZvcm1hbmNlLmgnLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9m
ZWF0dXJlcy5neXBpIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9mZWF0dXJlcy5neXBpCmluZGV4
IDAzOGI0NDcuLjJlY2U5ODAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vZmVh
dHVyZXMuZ3lwaQorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL2ZlYXR1cmVzLmd5cGkKQEAg
LTc1LDcgKzc1LDcgQEAKICAgICAgICAgJ0VOQUJMRV9PRkZMSU5FX1dFQl9BUFBMSUNBVElPTlM9
MScsCiAgICAgICAgICdFTkFCTEVfT1BFTlRZUEVfU0FOSVRJWkVSPTEnLAogICAgICAgICAnRU5B
QkxFX09SSUVOVEFUSU9OX0VWRU5UUz0wJywKLSAgICAgICAgJ0VOQUJMRV9QQUdFX1ZJU0lCSUxJ
VFlfQVBJPTAnLAorICAgICAgICAnRU5BQkxFX1BBR0VfVklTSUJJTElUWV9BUEk9MScsCiAgICAg
ICAgICdFTkFCTEVfUFJPR1JFU1NfVEFHPTEnLAogICAgICAgICAnRU5BQkxFX1FVT1RBPTEnLAog
ICAgICAgICAnRU5BQkxFX1JFR0lTVEVSX1BST1RPQ09MX0hBTkRMRVI9MCcsCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJQYWdlVmlzaWJpbGl0eVN0YXRlLmgg
Yi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJQYWdlVmlzaWJpbGl0eVN0YXRlLmgK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTQ3NGJlNAotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlBhZ2VWaXNpYmlsaXR5U3Rh
dGUuaApAQCAtMCwwICsxLDQ1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMg
YXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNv
cHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIg
dGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1
dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBm
cm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJt
aXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdI
VCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IK
KyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAq
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBXZWJQYWdlVmlzaWJpbGl0eVN0YXRlX2gKKyNk
ZWZpbmUgV2ViUGFnZVZpc2liaWxpdHlTdGF0ZV9oCisKK25hbWVzcGFjZSBXZWJLaXQgeworCisv
LyBUaGUgZm9sbG93aW5nIGVudW0gc2hvdWxkIGJlIGNvbnNpc3RlbnQgd2l0aCB0aGUgUGFnZVZp
c2liaWxpdHlTdGF0ZSBlbnVtCisvLyBkZWZpbmVkIGluIFdlYkNvcmUuCitlbnVtIFdlYlBhZ2VW
aXNpYmlsaXR5U3RhdGUgeworICAgIFdlYlBhZ2VWaXNpYmlsaXR5U3RhdGVWaXNpYmxlLAorICAg
IFdlYlBhZ2VWaXNpYmlsaXR5U3RhdGVIaWRkZW4KK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktp
dAorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dl
YlZpZXcuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlZpZXcuaAppbmRleCA2
YjY5ZTdjLi40M2JjYjMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1Ymxp
Yy9XZWJWaWV3LmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViVmlldy5o
CkBAIC0zMiw2ICszMiw3IEBACiAjZGVmaW5lIFdlYlZpZXdfaAogCiAjaW5jbHVkZSAiV2ViRHJh
Z09wZXJhdGlvbi5oIgorI2luY2x1ZGUgIldlYlBhZ2VWaXNpYmlsaXR5U3RhdGUuaCIKICNpbmNs
dWRlICJXZWJTdHJpbmcuaCIKICNpbmNsdWRlICJXZWJWZWN0b3IuaCIKICNpbmNsdWRlICJXZWJX
aWRnZXQuaCIKQEAgLTM1NSw2ICszNTYsMTEgQEAgcHVibGljOgogICAgIC8vIEFQSXMuCiAgICAg
dmlydHVhbCBXZWJHcmFwaGljc0NvbnRleHQzRCogZ3JhcGhpY3NDb250ZXh0M0QoKSA9IDA7CiAK
KyAgICAvLyBWaXNpYmlsaXR5IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAvLyBTZXRzIHRoZSB2aXNpYmlsaXR5IG9mIHRo
ZSBXZWJWaWV3LgorICAgIHZpcnR1YWwgdm9pZCBzZXRWaXNpYmlsaXR5U3RhdGUoV2ViUGFnZVZp
c2liaWxpdHlTdGF0ZSB2aXNpYmlsaXR5U3RhdGUpIHsgfQorCiBwcm90ZWN0ZWQ6CiAgICAgfldl
YlZpZXcoKSB7fQogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGlj
L1dlYlZpZXdDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlZpZXdD
bGllbnQuaAppbmRleCA1MTc0MzUxLi5mM2JlM2NhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3B1YmxpYy9XZWJWaWV3Q2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9wdWJsaWMvV2ViVmlld0NsaWVudC5oCkBAIC0zNiw2ICszNiw3IEBACiAjaW5jbHVkZSAi
V2ViRWRpdGluZ0FjdGlvbi5oIgogI2luY2x1ZGUgIldlYkZpbGVDaG9vc2VyQ29tcGxldGlvbi5o
IgogI2luY2x1ZGUgIldlYkZpbGVDaG9vc2VyUGFyYW1zLmgiCisjaW5jbHVkZSAiV2ViUGFnZVZp
c2liaWxpdHlTdGF0ZS5oIgogI2luY2x1ZGUgIldlYlBvcHVwVHlwZS5oIgogI2luY2x1ZGUgIldl
YlN0cmluZy5oIgogI2luY2x1ZGUgIldlYlRleHRBZmZpbml0eS5oIgpAQCAtMzE1LDYgKzMxNiwx
NCBAQCBwdWJsaWM6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNv
bnN0IFdlYlN0cmluZyYgdXJsLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBjb25zdCBXZWJTdHJpbmcmIHRpdGxlKSB7IH0KIAorICAgIC8vIFZpc2liaWxpdHkgLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K
KworICAgIC8vIFJldHVybnMgdGhlIGN1cnJlbnQgdmlzaWJpbGl0eSBvZiB0aGUgV2ViVmlldy4K
KyAgICB2aXJ0dWFsIFdlYlBhZ2VWaXNpYmlsaXR5U3RhdGUgdmlzaWJpbGl0eVN0YXRlKCkgY29u
c3QKKyAgICB7CisgICAgICAgIHJldHVybiBXZWJQYWdlVmlzaWJpbGl0eVN0YXRlVmlzaWJsZTsK
KyAgICB9CisKIHByb3RlY3RlZDoKICAgICB+V2ViVmlld0NsaWVudCgpIHsgfQogfTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmNwcCBiL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmNwcAppbmRleCAyNDM4YTk0Li45NGYw
YTQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuY3BwCkBAIC0y
NTEyLDQgKzI1MTIsMjQgQEAgV2ViR3JhcGhpY3NDb250ZXh0M0QqIFdlYlZpZXdJbXBsOjpncmFw
aGljc0NvbnRleHQzRCgpCiAgICAgcmV0dXJuIDA7CiB9CiAKKwordm9pZCBXZWJWaWV3SW1wbDo6
c2V0VmlzaWJpbGl0eVN0YXRlKFdlYlBhZ2VWaXNpYmlsaXR5U3RhdGUgdmlzaWJpbGl0eVN0YXRl
KQoreworI2lmIGRlZmluZWQoRU5BQkxFX1BBR0VfVklTSUJJTElUWV9BUEkpICYmIEVOQUJMRV9Q
QUdFX1ZJU0lCSUxJVFlfQVBJCisgICAgaWYgKCFwYWdlKCkpCisgICAgICAgIHJldHVybjsKKwor
ICAgIHN3aXRjaCAodmlzaWJpbGl0eVN0YXRlKSB7CisgICAgY2FzZSBXZWJQYWdlVmlzaWJpbGl0
eVN0YXRlVmlzaWJsZToKKyAgICAgICAgbV9wYWdlLT5zZXRWaXNpYmlsaXR5U3RhdGUoUGFnZVZp
c2liaWxpdHlTdGF0ZVZpc2libGUpOworICAgICAgICByZXR1cm47CisgICAgY2FzZSBXZWJQYWdl
VmlzaWJpbGl0eVN0YXRlSGlkZGVuOgorICAgICAgICBtX3BhZ2UtPnNldFZpc2liaWxpdHlTdGF0
ZShQYWdlVmlzaWJpbGl0eVN0YXRlSGlkZGVuKTsKKyAgICAgICAgcmV0dXJuOworICAgIGRlZmF1
bHQ6CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIH0KKyNlbmRpZgorfQorCiB9
IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
c3JjL1dlYlZpZXdJbXBsLmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1w
bC5oCmluZGV4IGYxMDIwMmYuLjY1MDk0NjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vc3JjL1dlYlZpZXdJbXBsLmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMv
V2ViVmlld0ltcGwuaApAQCAtMzQ3LDYgKzM0Nyw4IEBAIHB1YmxpYzoKICAgICAvLyBXZWJHTC4g
UmV0dXJucyAwIGlmIGNvbXBvc2l0aW5nIHN1cHBvcnQgaXMgbm90IGNvbXBpbGVkIGluLgogICAg
IHZpcnR1YWwgV2ViR3JhcGhpY3NDb250ZXh0M0QqIGdyYXBoaWNzQ29udGV4dDNEKCk7CiAKKyAg
ICB2aXJ0dWFsIHZvaWQgc2V0VmlzaWJpbGl0eVN0YXRlKFdlYlBhZ2VWaXNpYmlsaXR5U3RhdGUp
OworCiAgICAgV2ViQ29yZTo6UG9wdXBDb250YWluZXIqIHNlbGVjdFBvcHVwKCkgY29uc3QgeyBy
ZXR1cm4gbV9zZWxlY3RQb3B1cC5nZXQoKTsgfQogCiAgICAgLy8gUmV0dXJucyB0cnVlIGlmIHRo
ZSBldmVudCBsZWFkcyB0byBzY3JvbGxpbmcuCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggYzAzN2QzMy4uNTEwMzExOSAxMDA2NDQKLS0tIGEvVG9v
bHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDEx
LTA0LTIwICBTaGlzaGlyIEFncmF3YWwgIDxzaGlzaGlyQGNocm9taXVtLm9yZz4KKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJbXBsZW1lbnQgUGFnZSBW
aXNpYmlsaXR5IEFQSS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTU0MTgxCisKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9MYXlvdXRUZXN0Q29udHJv
bGxlci5jcHA6CisgICAgICAgIChzZXRQYWdlVmlzaWJpbGl0eUNhbGxiYWNrKToKKyAgICAgICAg
KExheW91dFRlc3RDb250cm9sbGVyOjpzdGF0aWNGdW5jdGlvbnMpOgorICAgICAgICAqIER1bXBS
ZW5kZXJUcmVlL0xheW91dFRlc3RDb250cm9sbGVyLmg6CisgICAgICAgIChMYXlvdXRUZXN0Q29u
dHJvbGxlcjo6c2V0UGFnZVZpc2liaWxpdHkpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2No
cm9taXVtL0xheW91dFRlc3RDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKExheW91dFRlc3RDb250
cm9sbGVyOjpMYXlvdXRUZXN0Q29udHJvbGxlcik6CisgICAgICAgIChMYXlvdXRUZXN0Q29udHJv
bGxlcjo6c2V0UGFnZVZpc2liaWxpdHkpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2Nocm9t
aXVtL0xheW91dFRlc3RDb250cm9sbGVyLmg6CisKIDIwMTEtMDQtMjAgIE9qYW4gVmFmYWkgIDxv
amFuQGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBUb255IENoYW5nLgpkaWZm
IC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvTGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwIGIv
VG9vbHMvRHVtcFJlbmRlclRyZWUvTGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwCmluZGV4IDMxMDVj
ZTQuLmExOTcyNjYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL0xheW91dFRlc3RD
b250cm9sbGVyLmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9MYXlvdXRUZXN0Q29udHJv
bGxlci5jcHAKQEAgLTE2NzAsNiArMTY3MCwxOCBAQCBzdGF0aWMgSlNWYWx1ZVJlZiBzZXRQbHVn
aW5zRW5hYmxlZENhbGxiYWNrKEpTQ29udGV4dFJlZiBjb250ZXh0LCBKU09iamVjdFJlZiBmdQog
ICAgIHJldHVybiBKU1ZhbHVlTWFrZVVuZGVmaW5lZChjb250ZXh0KTsKIH0gICAgCiAKK3N0YXRp
YyBKU1ZhbHVlUmVmIHNldFBhZ2VWaXNpYmlsaXR5Q2FsbGJhY2soSlNDb250ZXh0UmVmIGNvbnRl
eHQsIEpTT2JqZWN0UmVmIGZ1bmN0aW9uLCBKU09iamVjdFJlZiB0aGlzT2JqZWN0LCBzaXplX3Qg
YXJndW1lbnRDb3VudCwgY29uc3QgSlNWYWx1ZVJlZiBhcmd1bWVudHNbXSwgSlNWYWx1ZVJlZiog
ZXhjZXB0aW9uKQoreworICAgIC8vIEhhcyBtYWMgJiB3aW5kb3dzIGltcGxlbWVudGF0aW9uCisg
ICAgaWYgKGFyZ3VtZW50Q291bnQgPCAxKQorICAgICAgICByZXR1cm4gSlNWYWx1ZU1ha2VVbmRl
ZmluZWQoY29udGV4dCk7CisgICAgCisgICAgTGF5b3V0VGVzdENvbnRyb2xsZXIqIGNvbnRyb2xs
ZXIgPSBzdGF0aWNfY2FzdDxMYXlvdXRUZXN0Q29udHJvbGxlcio+KEpTT2JqZWN0R2V0UHJpdmF0
ZSh0aGlzT2JqZWN0KSk7CisgICAgY29udHJvbGxlci0+c2V0UGFnZVZpc2liaWxpdHkoSlNWYWx1
ZVRvU3RyaW5nQ29weShjb250ZXh0LCBhcmd1bWVudHNbMF0pKTsKKyAgICAKKyAgICByZXR1cm4g
SlNWYWx1ZU1ha2VVbmRlZmluZWQoY29udGV4dCk7Cit9ICAgIAorCiBzdGF0aWMgSlNWYWx1ZVJl
ZiBzZXRTbWFydEluc2VydERlbGV0ZUVuYWJsZWRDYWxsYmFjayhKU0NvbnRleHRSZWYgY29udGV4
dCwgSlNPYmplY3RSZWYgZnVuY3Rpb24sIEpTT2JqZWN0UmVmIHRoaXNPYmplY3QsIHNpemVfdCBh
cmd1bWVudENvdW50LCBjb25zdCBKU1ZhbHVlUmVmIGFyZ3VtZW50c1tdLCBKU1ZhbHVlUmVmKiBl
eGNlcHRpb24pCiB7CiAgICAgaWYgKGFyZ3VtZW50Q291bnQgPCAxKQpAQCAtMjI2Nyw2ICsyMjc5
LDcgQEAgSlNTdGF0aWNGdW5jdGlvbiogTGF5b3V0VGVzdENvbnRyb2xsZXI6OnN0YXRpY0Z1bmN0
aW9ucygpCiAgICAgICAgIHsgInNldE1vY2tHZW9sb2NhdGlvblBvc2l0aW9uIiwgc2V0TW9ja0dl
b2xvY2F0aW9uUG9zaXRpb25DYWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8
IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LAogICAgICAgICB7ICJhZGRNb2NrU3Bl
ZWNoSW5wdXRSZXN1bHQiLCBhZGRNb2NrU3BlZWNoSW5wdXRSZXN1bHRDYWxsYmFjaywga0pTUHJv
cGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9
LAogICAgICAgICB7ICJzZXROZXdXaW5kb3dzQ29weUJhY2tGb3J3YXJkTGlzdCIsIHNldE5ld1dp
bmRvd3NDb3B5QmFja0ZvcndhcmRMaXN0Q2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVh
ZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKKyAgICAgICAgeyAic2V0
UGFnZVZpc2liaWxpdHkiLCBzZXRQYWdlVmlzaWJpbGl0eUNhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0
dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCiAgICAg
ICAgIHsgInNldFBPU0lYTG9jYWxlIiwgc2V0UE9TSVhMb2NhbGVDYWxsYmFjaywga0pTUHJvcGVy
dHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LAog
ICAgICAgICB7ICJzZXRQZXJzaXN0ZW50VXNlclN0eWxlU2hlZXRMb2NhdGlvbiIsIHNldFBlcnNp
c3RlbnRVc2VyU3R5bGVTaGVldExvY2F0aW9uQ2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRl
UmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKICAgICAgICAgeyAi
c2V0UG9wdXBCbG9ja2luZ0VuYWJsZWQiLCBzZXRQb3B1cEJsb2NraW5nRW5hYmxlZENhbGxiYWNr
LCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250
RGVsZXRlIH0sCmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9MYXlvdXRUZXN0Q29u
dHJvbGxlci5oIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvTGF5b3V0VGVzdENvbnRyb2xsZXIuaApp
bmRleCBhNDI5ZGJmLi5lZjk0MTU4IDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9M
YXlvdXRUZXN0Q29udHJvbGxlci5oCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL0xheW91dFRl
c3RDb250cm9sbGVyLmgKQEAgLTEwNSw2ICsxMDUsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRN
b2NrR2VvbG9jYXRpb25FcnJvcihpbnQgY29kZSwgSlNTdHJpbmdSZWYgbWVzc2FnZSk7CiAgICAg
dm9pZCBzZXRNb2NrR2VvbG9jYXRpb25Qb3NpdGlvbihkb3VibGUgbGF0aXR1ZGUsIGRvdWJsZSBs
b25naXR1ZGUsIGRvdWJsZSBhY2N1cmFjeSk7CiAgICAgdm9pZCBhZGRNb2NrU3BlZWNoSW5wdXRS
ZXN1bHQoSlNTdHJpbmdSZWYgcmVzdWx0LCBkb3VibGUgY29uZmlkZW5jZSwgSlNTdHJpbmdSZWYg
bGFuZ3VhZ2UpOworICAgIHZvaWQgc2V0UGFnZVZpc2liaWxpdHkoY29uc3QgY2hhciogdmlzaWJp
bGl0eSkgeyB9CiAgICAgdm9pZCBzZXRQZXJzaXN0ZW50VXNlclN0eWxlU2hlZXRMb2NhdGlvbihK
U1N0cmluZ1JlZiBwYXRoKTsKICAgICB2b2lkIHNldFBsdWdpbnNFbmFibGVkKGJvb2wgZmxhZyk7
CiAgICAgdm9pZCBzZXRQb3B1cEJsb2NraW5nRW5hYmxlZChib29sIGZsYWcpOwpkaWZmIC0tZ2l0
IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vTGF5b3V0VGVzdENvbnRyb2xsZXIuY3Bw
IGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vTGF5b3V0VGVzdENvbnRyb2xsZXIuY3Bw
CmluZGV4IDcyYzA1YjEuLmEyYjVkZjQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVl
L2Nocm9taXVtL0xheW91dFRlc3RDb250cm9sbGVyLmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVy
VHJlZS9jaHJvbWl1bS9MYXlvdXRUZXN0Q29udHJvbGxlci5jcHAKQEAgLTE1NSw2ICsxNTUsNyBA
QCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6TGF5b3V0VGVzdENvbnRyb2xsZXIoVGVzdFNoZWxsKiBz
aGVsbCkKICAgICBiaW5kTWV0aG9kKCJzZXRNb2NrR2VvbG9jYXRpb25FcnJvciIsICZMYXlvdXRU
ZXN0Q29udHJvbGxlcjo6c2V0TW9ja0dlb2xvY2F0aW9uRXJyb3IpOwogICAgIGJpbmRNZXRob2Qo
InNldE1vY2tHZW9sb2NhdGlvblBvc2l0aW9uIiwgJkxheW91dFRlc3RDb250cm9sbGVyOjpzZXRN
b2NrR2VvbG9jYXRpb25Qb3NpdGlvbik7CiAgICAgYmluZE1ldGhvZCgiYWRkTW9ja1NwZWVjaElu
cHV0UmVzdWx0IiwgJkxheW91dFRlc3RDb250cm9sbGVyOjphZGRNb2NrU3BlZWNoSW5wdXRSZXN1
bHQpOworICAgIGJpbmRNZXRob2QoInNldFBhZ2VWaXNpYmlsaXR5IiwgJkxheW91dFRlc3RDb250
cm9sbGVyOjpzZXRQYWdlVmlzaWJpbGl0eSk7CiAgICAgYmluZE1ldGhvZCgic2V0UGx1Z2luc0Vu
YWJsZWQiLCAmTGF5b3V0VGVzdENvbnRyb2xsZXI6OnNldFBsdWdpbnNFbmFibGVkKTsKICAgICBi
aW5kTWV0aG9kKCJzZXRQb3B1cEJsb2NraW5nRW5hYmxlZCIsICZMYXlvdXRUZXN0Q29udHJvbGxl
cjo6c2V0UG9wdXBCbG9ja2luZ0VuYWJsZWQpOwogICAgIGJpbmRNZXRob2QoInNldFBPU0lYTG9j
YWxlIiwgJkxheW91dFRlc3RDb250cm9sbGVyOjpzZXRQT1NJWExvY2FsZSk7CkBAIC0xNzI4LDMg
KzE3MjksMTQgQEAgdm9pZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6c2V0UGx1Z2luc0VuYWJsZWQo
Y29uc3QgQ3BwQXJndW1lbnRMaXN0JiBhcmd1bWVudHMsIEMKICAgICB9CiAgICAgcmVzdWx0LT5z
ZXROdWxsKCk7CiB9CisKK3ZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OnNldFBhZ2VWaXNpYmls
aXR5KGNvbnN0IENwcEFyZ3VtZW50TGlzdCYgYXJndW1lbnRzLCBDcHBWYXJpYW50KiByZXN1bHQp
Cit7CisgICAgaWYgKGFyZ3VtZW50cy5zaXplKCkgPiAwICYmIGFyZ3VtZW50c1swXS5pc1N0cmlu
ZygpKSB7CisgICAgICAgIHN0cmluZyBuZXdWaXNpYmlsaXR5ID0gYXJndW1lbnRzWzBdLnRvU3Ry
aW5nKCk7CisgICAgICAgIGlmIChuZXdWaXNpYmlsaXR5ID09ICJ2aXNpYmxlIikKKyAgICAgICAg
ICAgIG1fc2hlbGwtPndlYlZpZXcoKS0+c2V0VmlzaWJpbGl0eVN0YXRlKFdlYlBhZ2VWaXNpYmls
aXR5U3RhdGVWaXNpYmxlKTsKKyAgICAgICAgZWxzZSBpZiAobmV3VmlzaWJpbGl0eSA9PSAiaGlk
ZGVuIikKKyAgICAgICAgICAgIG1fc2hlbGwtPndlYlZpZXcoKS0+c2V0VmlzaWJpbGl0eVN0YXRl
KFdlYlBhZ2VWaXNpYmlsaXR5U3RhdGVIaWRkZW4pOworICAgIH0KK30KZGlmZiAtLWdpdCBhL1Rv
b2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0xheW91dFRlc3RDb250cm9sbGVyLmggYi9Ub29s
cy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9MYXlvdXRUZXN0Q29udHJvbGxlci5oCmluZGV4IDVk
ZjcxNTMuLjhkMTMzYzEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVt
L0xheW91dFRlc3RDb250cm9sbGVyLmgKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21p
dW0vTGF5b3V0VGVzdENvbnRyb2xsZXIuaApAQCAtMzYzLDYgKzM2Myw5IEBAIHB1YmxpYzoKICAg
ICAvLyBFbmFibGUgb3IgZGlzYWJsZSBwbHVnaW5zLgogICAgIHZvaWQgc2V0UGx1Z2luc0VuYWJs
ZWQoY29uc3QgQ3BwQXJndW1lbnRMaXN0JiwgQ3BwVmFyaWFudCopOwogCisgICAgLy8gU3dpdGNo
IHRoZSB2aXNpYmlsaXR5IG9mIHRoZSBwYWdlLgorICAgIHZvaWQgc2V0UGFnZVZpc2liaWxpdHko
Y29uc3QgQ3BwQXJndW1lbnRMaXN0JiwgQ3BwVmFyaWFudCopOworCiBwdWJsaWM6CiAgICAgLy8g
VGhlIGZvbGxvd2luZyBtZXRob2RzIGFyZSBub3QgZXhwb3NlZCB0byBKYXZhU2NyaXB0LgogICAg
IHZvaWQgc2V0V29ya1F1ZXVlRnJvemVuKGJvb2wgZnJvemVuKSB7IG1fd29ya1F1ZXVlLnNldEZy
b3plbihmcm96ZW4pOyB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>91388</attachid>
            <date>2011-04-27 17:15:52 -0700</date>
            <delta_ts>2011-05-04 18:46:37 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>page_visibility_api.patch</filename>
            <type>text/plain</type>
            <size>40531</size>
            <attacher name="Shishir Agrawal">shishir</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3BhZ2UtdmlzaWJpbGl0eS1pZnJh
bWUtdGVzdC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9wYWdlLXZpc2li
aWxpdHktaWZyYW1lLXRlc3QtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAuLmQ5Njk3ZGMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2
ZW50cy9wYWdlLXZpc2liaWxpdHktaWZyYW1lLXRlc3QtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEs
MjUgQEAKK1RoaXMgdGVzdCBjaGVja3MgdGhhdCBQYWdlIFZpc2liaWxpdHkgc3RhdGUgZXZlbnRz
IGFyZSBwcm9wYWdhdGVkIHRvIGNoaWxkIGZyYW1lcy4KKworT24gc3VjY2VzcywgeW91IHdpbGwg
c2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExF
VEUiLgorCisKK01haW4gUGFnZToKK1BBU1MgZG9jdW1lbnQud2Via2l0VmlzaWJpbGl0eVN0YXRl
IGlzICJ2aXNpYmxlIgorUEFTUyBkb2N1bWVudC53ZWJraXRJc1Zpc2libGUgaXMgdHJ1ZQorQ2hp
bGQgRnJhbWU6CitQQVNTIGRvY3VtZW50LndlYmtpdFZpc2liaWxpdHlTdGF0ZSBpcyAidmlzaWJs
ZSIKK1BBU1MgZG9jdW1lbnQud2Via2l0SXNWaXNpYmxlIGlzIHRydWUKK01haW4gUGFnZToKK1BB
U1MgZG9jdW1lbnQud2Via2l0VmlzaWJpbGl0eVN0YXRlIGlzICJoaWRkZW4iCitQQVNTIGRvY3Vt
ZW50LndlYmtpdElzVmlzaWJsZSBpcyBmYWxzZQorQ2hpbGQgRnJhbWU6CitQQVNTIGRvY3VtZW50
LndlYmtpdFZpc2liaWxpdHlTdGF0ZSBpcyAiaGlkZGVuIgorUEFTUyBkb2N1bWVudC53ZWJraXRJ
c1Zpc2libGUgaXMgZmFsc2UKK01haW4gUGFnZToKK0ZBSUwgZG9jdW1lbnQud2Via2l0VmlzaWJp
bGl0eVN0YXRlIHNob3VsZCBiZSBoaWRkZW4uIFdhcyB2aXNpYmxlLgorRkFJTCBkb2N1bWVudC53
ZWJraXRJc1Zpc2libGUgc2hvdWxkIGJlIGZhbHNlLiBXYXMgdHJ1ZS4KK1BBU1MgVEVTVCBDT01Q
TEVURQorQ2hpbGQgRnJhbWU6CitGQUlMIGRvY3VtZW50LndlYmtpdFZpc2liaWxpdHlTdGF0ZSBz
aG91bGQgYmUgaGlkZGVuLiBXYXMgdmlzaWJsZS4KK0ZBSUwgZG9jdW1lbnQud2Via2l0SXNWaXNp
YmxlIHNob3VsZCBiZSBmYWxzZS4gV2FzIHRydWUuCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2Zhc3QvZXZlbnRzL3BhZ2UtdmlzaWJpbGl0eS1pZnJhbWUtdGVzdC5odG1sIGIvTGF5b3V0VGVz
dHMvZmFzdC9ldmVudHMvcGFnZS12aXNpYmlsaXR5LWlmcmFtZS10ZXN0Lmh0bWwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZWRjNTllMAotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2Zhc3QvZXZlbnRzL3BhZ2UtdmlzaWJpbGl0eS1pZnJhbWUtdGVzdC5odG1sCkBA
IC0wLDAgKzEsNjIgQEAKKzxodG1sPgorPGJvZHk+CisKKzxwIGlkPSJkZXNjcmlwdGlvbiI+PC9w
PgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+CisKKzxzY3JpcHQgc3JjPSIuLi9qcy9yZXNvdXJj
ZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorCis8c2NyaXB0PgoraWYgKHdpbmRvdy5hY2Nl
c3NpYmlsaXR5Q29udHJvbGxlcikKKyAgICBkZXNjcmlwdGlvbigiVGhpcyB0ZXN0IGNoZWNrcyB0
aGF0IFBhZ2UgVmlzaWJpbGl0eSBzdGF0ZSBldmVudHMgYXJlIHByb3BhZ2F0ZWQgdG8gY2hpbGQg
ZnJhbWVzLiIpOworCitmdW5jdGlvbiBtYWtlUGFnZVZpc2libGUoKSB7CisgICAgaWYgKHdpbmRv
dy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuc2V0
UGFnZVZpc2liaWxpdHkoInZpc2libGUiKTsKK30KKworZnVuY3Rpb24gbWFrZVBhZ2VIaWRkZW4o
KSB7CisgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICAgICAgbGF5b3V0
VGVzdENvbnRyb2xsZXIuc2V0UGFnZVZpc2liaWxpdHkoImhpZGRlbiIpOworfQorCitmdW5jdGlv
biBjaGVja0lzUGFnZVZpc2libGUoKSB7CisgICAgZGVidWcoIk1haW4gUGFnZToiKTsKKyAgICBz
aG91bGRCZUVxdWFsVG9TdHJpbmcoImRvY3VtZW50LndlYmtpdFZpc2liaWxpdHlTdGF0ZSIsICJ2
aXNpYmxlIik7CisgICAgc2hvdWxkQmVUcnVlKCJkb2N1bWVudC53ZWJraXRJc1Zpc2libGUiKTsK
K30KKworZnVuY3Rpb24gY2hlY2tJc1BhZ2VIaWRkZW4oKSB7CisgICAgZGVidWcoIk1haW4gUGFn
ZToiKTsKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoImRvY3VtZW50LndlYmtpdFZpc2liaWxp
dHlTdGF0ZSIsICJoaWRkZW4iKTsKKyAgICBzaG91bGRCZUZhbHNlKCJkb2N1bWVudC53ZWJraXRJ
c1Zpc2libGUiKTsKK30KKworLy8gV2Ugd2lsbCB0cnkgdG8gY2hhbmdlIHRoZSB2aXNpYmlsaXR5
IHN0YXRlcyBhczoKKy8vICAwIC0gdmlzaWJsZS4gKEluaXRpYWwgLSBpLmUuIG9uIGxvYWQpLgor
Ly8gIDEgLSBoaWRkZW4KKy8vICAyIC0gdmlzaWJsZQordmFyIG51bVZpc2liaWxpdHlDaGFuZ2Vz
ID0gMDsKKworZnVuY3Rpb24gb25WaXNpYmlsaXR5Q2hhbmdlKCkgeworICAgIGlmIChudW1WaXNp
YmlsaXR5Q2hhbmdlcyA9PSAxKSB7CisgICAgICAgIGNoZWNrSXNQYWdlSGlkZGVuKCk7CisgICAg
ICAgIHJldHVybjsKKyAgICB9IGVsc2UgaWYgKG51bVZpc2liaWxpdHlDaGFuZ2VzID09IDIpIHsK
KyAgICAgICAgY2hlY2tJc1BhZ2VIaWRkZW4oKTsKKyAgICB9IGVsc2UgeworICAgICAgICBkZWJ1
ZygiVG9vIG1hbnkgdmlzaWJpbGl0eSB0cmFuc2l0aW9ucyIpOyAgCisgICAgfQorCisgICAgdGVz
dFBhc3NlZCgiVEVTVCBDT01QTEVURSIpOworCisgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29u
dHJvbGxlcikKKyAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgpOworfQor
Citkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJ3ZWJraXR2aXNpYmlsaXR5c3RhdGVjaGFuZ2Ui
LCBvblZpc2liaWxpdHlDaGFuZ2UsIGZhbHNlKTsKKzwvc2NyaXB0PgorCis8aWZyYW1lIHNyYz0i
cmVzb3VyY2VzL3BhZ2UtdmlzaWJpbGl0eS1pZnJhbWUtdGVzdC1zdWJmcmFtZS5odG1sIj48L2lm
cmFtZT4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXZl
bnRzL3BhZ2UtdmlzaWJpbGl0eS10cmFuc2l0aW9uLXRlc3QtZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvZmFzdC9ldmVudHMvcGFnZS12aXNpYmlsaXR5LXRyYW5zaXRpb24tdGVzdC1leHBlY3Rl
ZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYmRiZmIxOQotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3BhZ2UtdmlzaWJpbGl0eS10cmFu
c2l0aW9uLXRlc3QtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTUgQEAKK1RoaXMgdGVzdCBjaGVj
a3MgdGhhdCBQYWdlIFZpc2liaWxpdHkgc3RhdGUgdmFsdWVzIGFyZSBjb3JyZWN0IGFuZCB0aGUg
ZXZlbnQgY2hhbmdlcyBhcmUgZmlyZWQgY29ycmVjdGx5LgorCitPbiBzdWNjZXNzLCB5b3Ugd2ls
bCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01Q
TEVURSIuCisKKworUEFTUyBkb2N1bWVudC53ZWJraXRWaXNpYmlsaXR5U3RhdGUgaXMgInZpc2li
bGUiCitQQVNTIGRvY3VtZW50LndlYmtpdElzVmlzaWJsZSBpcyB0cnVlCitQQVNTIGRvY3VtZW50
LndlYmtpdFZpc2liaWxpdHlTdGF0ZSBpcyAiaGlkZGVuIgorUEFTUyBkb2N1bWVudC53ZWJraXRJ
c1Zpc2libGUgaXMgZmFsc2UKK1BBU1MgZG9jdW1lbnQud2Via2l0VmlzaWJpbGl0eVN0YXRlIGlz
ICJoaWRkZW4iCitQQVNTIGRvY3VtZW50LndlYmtpdElzVmlzaWJsZSBpcyBmYWxzZQorUEFTUyBk
b2N1bWVudC53ZWJraXRWaXNpYmlsaXR5U3RhdGUgaXMgInZpc2libGUiCitQQVNTIGRvY3VtZW50
LndlYmtpdElzVmlzaWJsZSBpcyB0cnVlCitQQVNTIFRFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvcGFnZS12aXNpYmlsaXR5LXRyYW5zaXRpb24tdGVz
dC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvcGFnZS12aXNpYmlsaXR5LXRyYW5zaXRp
b24tdGVzdC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjYxMzRiMmYK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9wYWdlLXZpc2liaWxp
dHktdHJhbnNpdGlvbi10ZXN0Lmh0bWwKQEAgLTAsMCArMSw3MyBAQAorPGh0bWw+Cis8Ym9keSBv
bmxvYWQ9J3N0YXJ0VGVzdCgpJz4KKworPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Cis8ZGl2IGlk
PSJjb25zb2xlIj48L2Rpdj4KKworPHNjcmlwdCBzcmM9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0
LXByZS5qcyI+PC9zY3JpcHQ+CisKKzxzY3JpcHQ+CisKK2lmICh3aW5kb3cuYWNjZXNzaWJpbGl0
eUNvbnRyb2xsZXIpCisgICAgZGVzY3JpcHRpb24oIlRoaXMgdGVzdCBjaGVja3MgdGhhdCBQYWdl
IFZpc2liaWxpdHkgc3RhdGUgdmFsdWVzIGFyZSBjb3JyZWN0IGFuZCB0aGUgZXZlbnQgY2hhbmdl
cyBhcmUgZmlyZWQgY29ycmVjdGx5LiIpOworCitmdW5jdGlvbiBtYWtlUGFnZVZpc2libGUoKSB7
CisgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICAgICAgbGF5b3V0VGVz
dENvbnRyb2xsZXIuc2V0UGFnZVZpc2liaWxpdHkoInZpc2libGUiKTsKK30KKworZnVuY3Rpb24g
bWFrZVBhZ2VIaWRkZW4oKSB7CisgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikK
KyAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuc2V0UGFnZVZpc2liaWxpdHkoImhpZGRlbiIp
OworfQorCitmdW5jdGlvbiBjaGVja0lzUGFnZVZpc2libGUoKSB7CisgICAgc2hvdWxkQmVFcXVh
bFRvU3RyaW5nKCJkb2N1bWVudC53ZWJraXRWaXNpYmlsaXR5U3RhdGUiLCAidmlzaWJsZSIpOwor
ICAgIHNob3VsZEJlVHJ1ZSgiZG9jdW1lbnQud2Via2l0SXNWaXNpYmxlIik7Cit9CisKK2Z1bmN0
aW9uIGNoZWNrSXNQYWdlSGlkZGVuKCkgeworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygiZG9j
dW1lbnQud2Via2l0VmlzaWJpbGl0eVN0YXRlIiwgImhpZGRlbiIpOworICAgIHNob3VsZEJlRmFs
c2UoImRvY3VtZW50LndlYmtpdElzVmlzaWJsZSIpOworfQorCisvLyBXZSB3aWxsIHRyeSB0byBj
aGFuZ2UgdGhlIHZpc2liaWxpdHkgc3RhdGVzIGFzOgorLy8gIDAgLSB2aXNpYmxlLiAoSW5pdGlh
bCAtIGkuZS4gb24gbG9hZCkuCisvLyAgMWAtIGhpZGRlbiAoc2hvdWxkIGZpcmUgZXZlbnQpLgor
Ly8gIDIgLSBoaWRkZW4gKG5vIGV2ZW50KS4KKy8vICAzIC0gdmlzaWJsZSAoc2hvdWxkIGZpcmUg
ZXZlbnQpLgordmFyIG51bVZpc2liaWxpdHlDaGFuZ2VzID0gMDsKKworZnVuY3Rpb24gc3RhcnRU
ZXN0KCkgeworICAgIGNoZWNrSXNQYWdlVmlzaWJsZSgpOworICAgIG51bVZpc2liaWxpdHlDaGFu
Z2VzKys7CisgICAgbWFrZVBhZ2VIaWRkZW4oKTsKK30KKworZnVuY3Rpb24gb25WaXNpYmlsaXR5
Q2hhbmdlKCkgeworICAgIGlmIChudW1WaXNpYmlsaXR5Q2hhbmdlcyA9PSAxKSB7CisgICAgICAg
IGNoZWNrSXNQYWdlSGlkZGVuKCk7CisgICAgICAgIG51bVZpc2liaWxpdHlDaGFuZ2VzKys7Cisg
ICAgICAgIG1ha2VQYWdlSGlkZGVuKCk7CisgICAgICAgIGNoZWNrSXNQYWdlSGlkZGVuKCk7Cisg
ICAgICAgIG51bVZpc2liaWxpdHlDaGFuZ2VzKys7CisgICAgICAgIG1ha2VQYWdlVmlzaWJsZSgp
OworICAgICAgICByZXR1cm47CisgICAgfSBlbHNlIGlmIChudW1WaXNpYmlsaXR5Q2hhbmdlcyA9
PSAyKSB7CisgICAgICAgIHRlc3RGYWlsZWQoIkludmFsaWQgZXZlbnQgZmlyZWQgb24gc2FtZSBz
dGF0ZSBjaGFuZ2UuIik7CisgICAgICAgIHJldHVybjsKKyAgICB9IGVsc2UgaWYgKG51bVZpc2li
aWxpdHlDaGFuZ2VzID09IDMpIHsKKyAgICAgICAgY2hlY2tJc1BhZ2VWaXNpYmxlKCk7CisgICAg
ICAgIG51bVZpc2liaWxpdHlDaGFuZ2VzKys7CisgICAgfQorCisgICAgdGVzdFBhc3NlZCgiVEVT
VCBDT01QTEVURSIpOworICAgCisgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikK
KyAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgpOworfQorCitkb2N1bWVu
dC5hZGRFdmVudExpc3RlbmVyKCJ3ZWJraXR2aXNpYmlsaXR5c3RhdGVjaGFuZ2UiLCBvblZpc2li
aWxpdHlDaGFuZ2UsIGZhbHNlKTsKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvcmVzb3VyY2VzL3BhZ2UtdmlzaWJpbGl0eS1p
ZnJhbWUtdGVzdC1zdWJmcmFtZS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvcmVzb3Vy
Y2VzL3BhZ2UtdmlzaWJpbGl0eS1pZnJhbWUtdGVzdC1zdWJmcmFtZS5odG1sCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjVjMDQ3ODkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9mYXN0L2V2ZW50cy9yZXNvdXJjZXMvcGFnZS12aXNpYmlsaXR5LWlmcmFtZS10ZXN0
LXN1YmZyYW1lLmh0bWwKQEAgLTAsMCArMSw0MiBAQAorPGh0bWw+Cis8Ym9keSBvbmxvYWQ9InN0
YXJ0VGVzdCgpIj4KKworPHNjcmlwdD4KKworZnVuY3Rpb24gY2hlY2tJc1BhZ2VWaXNpYmxlKCkg
eworICAgIHBhcmVudC5kZWJ1ZygiQ2hpbGQgRnJhbWU6Iik7CisgICAgcGFyZW50LnNob3VsZEJl
RXF1YWxUb1N0cmluZygiZG9jdW1lbnQud2Via2l0VmlzaWJpbGl0eVN0YXRlIiwgInZpc2libGUi
KTsKKyAgICBwYXJlbnQuc2hvdWxkQmVUcnVlKCJkb2N1bWVudC53ZWJraXRJc1Zpc2libGUiKTsK
K30KKworZnVuY3Rpb24gY2hlY2tJc1BhZ2VIaWRkZW4oKSB7CisgICAgcGFyZW50LmRlYnVnKCJD
aGlsZCBGcmFtZToiKTsKKyAgICBwYXJlbnQuc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJkb2N1bWVu
dC53ZWJraXRWaXNpYmlsaXR5U3RhdGUiLCAiaGlkZGVuIik7CisgICAgcGFyZW50LnNob3VsZEJl
RmFsc2UoImRvY3VtZW50LndlYmtpdElzVmlzaWJsZSIpOworfQorCitmdW5jdGlvbiBzdGFydFRl
c3QoKSB7CisgICAgcGFyZW50LmNoZWNrSXNQYWdlVmlzaWJsZSgpOworICAgIGNoZWNrSXNQYWdl
VmlzaWJsZSgpOworICAgIHBhcmVudC5udW1WaXNpYmlsaXR5Q2hhbmdlcysrOworICAgIHBhcmVu
dC5tYWtlUGFnZUhpZGRlbigpOworfQorCitmdW5jdGlvbiBvblZpc2liaWxpdHlDaGFuZ2UoKSB7
CisgICAgaWYgKHBhcmVudC5udW1WaXNpYmlsaXR5Q2hhbmdlcyA9PSAxKSB7CisgICAgICAgIGNo
ZWNrSXNQYWdlSGlkZGVuKCk7CisgICAgICAgIHBhcmVudC5udW1WaXNpYmlsaXR5Q2hhbmdlcysr
OworICAgICAgICBwYXJlbnQubWFrZVBhZ2VWaXNpYmxlKCk7CisgICAgICAgIHJldHVybjsKKyAg
ICB9IGVsc2UgaWYgKHBhcmVudC5udW1WaXNpYmlsaXR5Q2hhbmdlcyA9PSAyKSB7CisgICAgICAg
IGNoZWNrSXNQYWdlSGlkZGVuKCk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgcGFyZW50LmRlYnVn
KCJUb28gbWFueSB2aXNpYmlsaXR5IHRyYW5zaXRpb25zIik7ICAKKyAgICB9Cit9CisKK2RvY3Vt
ZW50LmFkZEV2ZW50TGlzdGVuZXIoIndlYmtpdHZpc2liaWxpdHlzdGF0ZWNoYW5nZSIsIG9uVmlz
aWJpbGl0eUNoYW5nZSwgZmFsc2UpOworPC9zY3JpcHQ+CisKKzwvYm9keT4KKzwvaHRtbD4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9Ta2lwcGVkIGIvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vZ3RrL1NraXBwZWQKaW5kZXggYjIzYzBhMi4uNWFkZGRlMiAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1NraXBwZWQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vZ3RrL1NraXBwZWQKQEAgLTEzOTUsMyArMTM5NSwxMCBAQCBlZGl0aW5nL3RleHQtaXRlcmF0
b3IvZmluZFN0cmluZy5odG1sCiAKICMgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTU5NTg2CiBmYXN0L2V2ZW50cy9rZXlkb3duLTEuaHRtbAorCisjIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01ODk3MgorbWVkaWEvYWRvcHQtbm9kZS1jcmFz
aC5odG1sCisKKyMgVGhpcyBwbGF0Zm9ybSBkb2VzIG5vdCBzdXBwb3J0IHRoZSBQYWdlIFZpc2li
aWxpdHkgQVBJLgorZmFzdC9ldmVudHMvcGFnZS12aXNpYmlsaXR5LWlmcmFtZS10ZXN0Lmh0bWwK
K2Zhc3QvZXZlbnRzL3BhZ2UtdmlzaWJpbGl0eS10cmFuc2l0aW9uLXRlc3QuaHRtbApkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1NraXBwZWQgYi9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9tYWMvU2tpcHBlZAppbmRleCA1ZmEzMmYzLi44NzU5ZDQ5IDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9tYWMvU2tpcHBlZAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9t
YWMvU2tpcHBlZApAQCAtMzM0LDMgKzMzNCw3IEBAIGZhc3QvZG9tL3RpdGxlLWRpcmVjdGlvbmFs
aXR5Lmh0bWwKICMgVGltaW5nIG91dCBmb3IgdW5rbm93biByZWFzb25zLiAgUGFzc2VzIG9uIENo
cm9taXVtLCBRVCBhbmQgR1RLKy4KICMgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTU4OTI0CiBwbHVnaW5zL21vdXNlLWNsaWNrLWlmcmFtZS10by1wbHVnaW4uaHRtbAor
CisjIFRoaXMgcGxhdGZvcm0gZG9lcyBub3Qgc3VwcG9ydCB0aGUgUGFnZSBWaXNpYmlsaXR5IEFQ
SS4KK2Zhc3QvZXZlbnRzL3BhZ2UtdmlzaWJpbGl0eS1pZnJhbWUtdGVzdC5odG1sCitmYXN0L2V2
ZW50cy9wYWdlLXZpc2liaWxpdHktdHJhbnNpdGlvbi10ZXN0Lmh0bWwKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL3BsYXRmb3JtL3F0L1NraXBwZWQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9T
a2lwcGVkCmluZGV4IGNmYWE3YTMuLmFlNmY1NmUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3Bs
YXRmb3JtL3F0L1NraXBwZWQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvU2tpcHBlZApA
QCAtMjcwMywzICsyNzAzLDcgQEAgc3ZnL1czQy1TVkctMS4xL3N0cnVjdC1pbWFnZS0wNi10LnN2
ZwogaHR0cC90ZXN0cy9sb2FkaW5nL3ByZWxvYWQtc2xvdy1sb2FkaW5nLnBocAogaHR0cC90ZXN0
cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvbWVkaWEtc3JjLWFsbG93ZWQuaHRtbAog
aHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvbWVkaWEtc3JjLWJsb2Nr
ZWQuaHRtbAorCisjIFRoaXMgcGxhdGZvcm0gZG9lcyBub3Qgc3VwcG9ydCB0aGUgUGFnZSBWaXNp
YmlsaXR5IEFQSS4KK2Zhc3QvZXZlbnRzL3BhZ2UtdmlzaWJpbGl0eS1pZnJhbWUtdGVzdC5odG1s
CitmYXN0L2V2ZW50cy9wYWdlLXZpc2liaWxpdHktdHJhbnNpdGlvbi10ZXN0Lmh0bWwKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9Ta2lwcGVkIGIvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vd2luL1NraXBwZWQKaW5kZXggMzQyZjUxNS4uNDg0NjliOSAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vd2luL1NraXBwZWQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
d2luL1NraXBwZWQKQEAgLTEyNjQsMyArMTI2NCw3IEBAIGh0dHAvdGVzdHMvc2VjdXJpdHkvY29u
dGVudFNlY3VyaXR5UG9saWN5L2ZyYW1lLXNyYy1ibG9ja2VkLmh0bWwKIAogIyBUaW1lcyBvdXQg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTU5MzI0CiBtZWRpYS9pbnZh
bGlkLW1lZGlhLXVybC1jcmFzaC5odG1sCisKKyMgVGhpcyBwbGF0Zm9ybSBkb2VzIG5vdCBzdXBw
b3J0IHRoZSBQYWdlIFZpc2liaWxpdHkgQVBJLgorZmFzdC9ldmVudHMvcGFnZS12aXNpYmlsaXR5
LWlmcmFtZS10ZXN0Lmh0bWwKK2Zhc3QvZXZlbnRzL3BhZ2UtdmlzaWJpbGl0eS10cmFuc2l0aW9u
LXRlc3QuaHRtbApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQgYi9T
b3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAppbmRleCBlMTY2ZGExLi5kMGJiM2IzIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9DTWFrZUxpc3RzLnR4dApAQCAtMTAxMSw2ICsxMDExLDcgQEAgU0VUKFdlYkNvcmVfU09VUkNF
UwogICAgIHBhZ2UvUGFnZS5jcHAKICAgICBwYWdlL1BhZ2VHcm91cC5jcHAKICAgICBwYWdlL1Bh
Z2VHcm91cExvYWREZWZlcnJlci5jcHAKKyAgICBwYWdlL1BhZ2VWaXNpYmlsaXR5U3RhdGUuY3Bw
CiAgICAgcGFnZS9QZXJmb3JtYW5jZS5jcHAKICAgICBwYWdlL1BlcmZvcm1hbmNlTmF2aWdhdGlv
bi5jcHAKICAgICBwYWdlL1BlcmZvcm1hbmNlVGltaW5nLmNwcApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbSBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxl
Lmxpc3QuYW0KaW5kZXggNDhmYzE5NS4uODA1NmFhZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvR05VbWFrZWZpbGUubGlzdC5hbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5s
aXN0LmFtCkBAIC0yMjE2LDYgKzIyMTYsOCBAQCB3ZWJjb3JlX3NvdXJjZXMgKz0gXAogCVNvdXJj
ZS9XZWJDb3JlL3BhZ2UvUGFnZUdyb3VwLmggXAogCVNvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZUdy
b3VwTG9hZERlZmVycmVyLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlR3JvdXBMb2Fk
RGVmZXJyZXIuaCBcCisJU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlVmlzaWJpbGl0eVN0YXRlLmNw
cCBcCisJU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlVmlzaWJpbGl0eVN0YXRlLmggXAogCVNvdXJj
ZS9XZWJDb3JlL3BhZ2UvUGVyZm9ybWFuY2UuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9wYWdlL1Bl
cmZvcm1hbmNlLmggXAogCVNvdXJjZS9XZWJDb3JlL3BhZ2UvUGVyZm9ybWFuY2VOYXZpZ2F0aW9u
LmNwcCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkgYi9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLmd5cGkKaW5kZXggMmFhYTI1ZS4uMTFjNmYyMCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
Z3lwaQpAQCAtNzEwLDYgKzcxMCw3IEBACiAgICAgICAgICAgICAncGFnZS9NZW1vcnlJbmZvLmgn
LAogICAgICAgICAgICAgJ3BhZ2UvUGFnZS5oJywKICAgICAgICAgICAgICdwYWdlL1BhZ2VHcm91
cC5oJywKKyAgICAgICAgICAgICdwYWdlL1BhZ2VWaXNpYmlsaXR5U3RhdGUuaCcsCiAgICAgICAg
ICAgICAncGFnZS9QbHVnaW5IYWx0ZXJDbGllbnQuaCcsCiAgICAgICAgICAgICAncGFnZS9Qb3Np
dGlvbkNhbGxiYWNrLmgnLAogICAgICAgICAgICAgJ3BhZ2UvUG9zaXRpb25FcnJvci5oJywKQEAg
LTM0MzQsNiArMzQzNSw3IEBACiAgICAgICAgICAgICAncGFnZS9QYWdlR3JvdXAuY3BwJywKICAg
ICAgICAgICAgICdwYWdlL1BhZ2VHcm91cExvYWREZWZlcnJlci5jcHAnLAogICAgICAgICAgICAg
J3BhZ2UvUGFnZUdyb3VwTG9hZERlZmVycmVyLmgnLAorICAgICAgICAgICAgJ3BhZ2UvUGFnZVZp
c2liaWxpdHlTdGF0ZS5jcHAnLAogICAgICAgICAgICAgJ3BhZ2UvUGVyZm9ybWFuY2UuY3BwJywK
ICAgICAgICAgICAgICdwYWdlL1BlcmZvcm1hbmNlLmgnLAogICAgICAgICAgICAgJ3BhZ2UvUGVy
Zm9ybWFuY2VOYXZpZ2F0aW9uLmNwcCcsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnBybyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUucHJvCmluZGV4IDFiZmZiYmYuLjZhNTBl
ZDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUucHJvCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUucHJvCkBAIC05MjIsNiArOTIyLDcgQEAgU09VUkNFUyArPSBcCiAgICAg
cGFnZS9QYWdlLmNwcCBcCiAgICAgcGFnZS9QYWdlR3JvdXAuY3BwIFwKICAgICBwYWdlL1BhZ2VH
cm91cExvYWREZWZlcnJlci5jcHAgXAorICAgIHBhZ2UvUGFnZVZpc2liaWxpdHlTdGF0ZS5jcHAg
XAogICAgIHBhZ2UvUGVyZm9ybWFuY2UuY3BwIFwKICAgICBwYWdlL1BlcmZvcm1hbmNlTmF2aWdh
dGlvbi5jcHAgXAogICAgIHBhZ2UvUGVyZm9ybWFuY2VUaW1pbmcuY3BwIFwKQEAgLTE4NjEsNiAr
MTg2Miw3IEBAIEhFQURFUlMgKz0gXAogICAgIHBhZ2UvUGFnZUdyb3VwLmggXAogICAgIHBhZ2Uv
UGFnZUdyb3VwTG9hZERlZmVycmVyLmggXAogICAgIHBhZ2UvUGFnZS5oIFwKKyAgICBwYWdlL1Bh
Z2VWaXNpYmlsaXR5U3RhdGUuaCBcCiAgICAgcGFnZS9QbHVnaW5IYWx0ZXIuaCBcCiAgICAgcGFn
ZS9QbHVnaW5IYWx0ZXJDbGllbnQuaCBcCiAgICAgcGFnZS9QcmludENvbnRleHQuaCBcCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvaiBiL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCmluZGV4IDc3NjU0OWYu
LmQ0NmE5ODcgMTAwNzU1Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNv
cmUudmNwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNw
cm9qCkBAIC0yNDgzNCw2ICsyNDgzNCwxMiBAQAogCQkJCT4KIAkJCTwvRmlsZT4KIAkJCTxGaWxl
CisJCQkJUmVsYXRpdmVQYXRoPSIuLlxwYWdlXFBhZ2VWaXNpYmlsaXR5U3RhdGUuY3BwIgorCQkJ
CT4KKwkJCTxGaWxlCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxwYWdlXFBhZ2VWaXNpYmlsaXR5U3Rh
dGUuaCIKKwkJCQk+CisJCQk8RmlsZQogCQkJCVJlbGF0aXZlUGF0aD0iLi5ccGFnZVxQZXJmb3Jt
YW5jZS5jcHAiCiAJCQkJPgogCQkJPC9GaWxlPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDIwY2RmZTQuLjE2MjcwMjAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagor
KysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAg
LTU5ODgsNiArNTk4OCw4IEBACiAJCUZFODBEQTY2MEU5QzQ3MDMwMDBENkY3NSAvKiBKU0dlb3Bv
c2l0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBG
RTgwREE2MjBFOUM0NzAzMDAwRDZGNzUgLyogSlNHZW9wb3NpdGlvbi5oICovOyB9OwogCQlGRTgw
REE3MTBFOUM0NzJGMDAwRDZGNzUgLyogSlNQb3NpdGlvbkVycm9yLmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEZFODBEQTZEMEU5QzQ3MkYwMDBENkY3
NSAvKiBKU1Bvc2l0aW9uRXJyb3IuY3BwICovOyB9OwogCQlGRTgwREE3MjBFOUM0NzJGMDAwRDZG
NzUgLyogSlNQb3NpdGlvbkVycm9yLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBGRTgwREE2RTBFOUM0NzJGMDAwRDZGNzUgLyogSlNQb3NpdGlvbkVycm9y
LmggKi87IH07CisJCUZGRDVCOTdBMTM1Q0M5NzgwMEQ1RTkyQSAvKiBQYWdlVmlzaWJpbGl0eVN0
YXRlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEZG
RDVCOTc3MTM1Q0M5NzgwMEQ1RTkyQSAvKiBQYWdlVmlzaWJpbGl0eVN0YXRlLmNwcCAqLzsgfTsK
KwkJRkZENUI5N0IxMzVDQzk3ODAwRDVFOTJBIC8qIFBhZ2VWaXNpYmlsaXR5U3RhdGUuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEZGRDVCOTc4MTM1Q0M5
NzgwMEQ1RTkyQSAvKiBQYWdlVmlzaWJpbGl0eVN0YXRlLmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIC8qIEVuZCBQQlhCdWlsZEZpbGUgc2VjdGlvbiAq
LwogCiAvKiBCZWdpbiBQQlhDb250YWluZXJJdGVtUHJveHkgc2VjdGlvbiAqLwpAQCAtMTI1NzMs
NiArMTI1NzUsOCBAQAogCQlGRTgwREE2MjBFOUM0NzAzMDAwRDZGNzUgLyogSlNHZW9wb3NpdGlv
bi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU0dlb3Bvc2l0aW9uLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUZFODBEQTZEMEU5QzQ3MkYwMDBENkY3NSAvKiBK
U1Bvc2l0aW9uRXJyb3IuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
SlNQb3NpdGlvbkVycm9yLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRkU4MERB
NkUwRTlDNDcyRjAwMEQ2Rjc1IC8qIEpTUG9zaXRpb25FcnJvci5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBKU1Bvc2l0aW9uRXJyb3IuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJRkZENUI5NzcxMzVDQzk3ODAwRDVFOTJBIC8qIFBhZ2VWaXNpYmlsaXR5U3RhdGUu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUGFnZVZpc2liaWxpdHlT
dGF0ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUZGRDVCOTc4MTM1Q0M5Nzgw
MEQ1RTkyQSAvKiBQYWdlVmlzaWJpbGl0eVN0YXRlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFBhZ2VWaXNpYmlsaXR5U3RhdGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIC8qIEVuZCBQQlhGaWxlUmVmZXJlbmNlIHNlY3Rpb24gKi8KIAogLyogQmVnaW4gUEJYRnJh
bWV3b3Jrc0J1aWxkUGhhc2Ugc2VjdGlvbiAqLwpAQCAtMTQzNjMsNiArMTQzNjcsOCBAQAogCQkJ
CTkzMDJCMEJFMEQ3OUY4MkMwMEM3RUU4MyAvKiBQYWdlR3JvdXAuaCAqLywKIAkJCQk3QTY3NEJE
OTBGOUVCRjRFMDA2Q0YwOTkgLyogUGFnZUdyb3VwTG9hZERlZmVycmVyLmNwcCAqLywKIAkJCQk3
QTY3NEJEQTBGOUVCRjRFMDA2Q0YwOTkgLyogUGFnZUdyb3VwTG9hZERlZmVycmVyLmggKi8sCisJ
CQkJRkZENUI5NzcxMzVDQzk3ODAwRDVFOTJBIC8qIFBhZ2VWaXNpYmlsaXR5U3RhdGUuY3BwICov
LAorCQkJCUZGRDVCOTc4MTM1Q0M5NzgwMEQ1RTkyQSAvKiBQYWdlVmlzaWJpbGl0eVN0YXRlLmgg
Ki8sCiAJCQkJOEE4NDREMDExMUQzQzE4RTAwMTQwNjVDIC8qIFBlcmZvcm1hbmNlLmNwcCAqLywK
IAkJCQk4QTg0NEQwMjExRDNDMThFMDAxNDA2NUMgLyogUGVyZm9ybWFuY2UuaCAqLywKIAkJCQk4
QTg0NEQwMzExRDNDMThFMDAxNDA2NUMgLyogUGVyZm9ybWFuY2UuaWRsICovLApAQCAtMjIwNTMs
NiArMjIwNTksNyBAQAogCQkJCTdBNjc0QkRDMEY5RUJGNEUwMDZDRjA5OSAvKiBQYWdlR3JvdXBM
b2FkRGVmZXJyZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUYzNDc0MkU1MTM0MzYzM0MwMDUzMUJD
MiAvKiBQYWdlU2NyaXB0RGVidWdTZXJ2ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUUxMjg0QUUx
MTA0NDdENDUwMEVBRUI1MiAvKiBQYWdlVHJhbnNpdGlvbkV2ZW50LmggaW4gSGVhZGVycyAqLywK
KwkJCQlGRkQ1Qjk3QjEzNUNDOTc4MDBENUU5MkEgLyogUGFnZVZpc2liaWxpdHlTdGF0ZS5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJNTFFMUVDQzMwQzkxQzkwNDAwREMyNTVCIC8qIFBhZ2VVUkxSZWNv
cmQuaCBpbiBIZWFkZXJzICovLAogCQkJCTA4ODUwNjdGMTFEQTA0NUIwMDE4MkI5OCAvKiBQYWlu
dEluZm8uaCBpbiBIZWFkZXJzICovLAogCQkJCTA4ODUwNjgwMTFEQTA0NUIwMDE4MkI5OCAvKiBQ
YWludFBoYXNlLmggaW4gSGVhZGVycyAqLywKQEAgLTI1NjUwLDYgKzI1NjU3LDkgQEAKIAkJCQkx
NEUwQkM1NjEzNjE0OEE4MDAyQUQxMkUgLyogSlNET01Ub2tlbkxpc3RDdXN0b20uY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJRjM4MTBDMUIxMzY1QTQ5NjAwRUQ2RTMzIC8qIEluc3BlY3Rvcldvcmtl
ckFnZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTc4MTc1NTg2MTM2NUExQjAwMDkzQkUyRSAv
KiBEYXRhVHJhbnNmZXJJdGVtcy5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk4Q0FERjJBQTEzNUM3
QjM2MDA5RUY0M0YgLyogTGV2ZWxEQkRhdGFiYXNlLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCThD
QURGMkFDMTM1QzdCMzYwMDlFRjQzRiAvKiBMZXZlbERCSXRlcmF0b3IuY3BwIGluIFNvdXJjZXMg
Ki8sCisJCQkJRkZENUI5N0ExMzVDQzk3ODAwRDVFOTJBIC8qIFBhZ2VWaXNpYmlsaXR5U3RhdGUu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJv
Y2Vzc2luZyA9IDA7CiAJCX07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1l
bnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAppbmRleCBhMzVjNDQ1Li5j
MjJlMGY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKQEAgLTEzMjgsNiArMTMyOCwzNSBAQCB2
b2lkIERvY3VtZW50OjpyZW1vdmVUaXRsZShFbGVtZW50KiB0aXRsZUVsZW1lbnQpCiAgICAgICAg
IHVwZGF0ZVRpdGxlKFN0cmluZ1dpdGhEaXJlY3Rpb24oKSk7CiB9CiAKKyNpZiBFTkFCTEUoUEFH
RV9WSVNJQklMSVRZX0FQSSkKK1BhZ2VWaXNpYmlsaXR5U3RhdGUgRG9jdW1lbnQ6OnZpc2liaWxp
dHlTdGF0ZSgpIGNvbnN0Cit7CisgICAgLy8gSWYgdGhlcmUgaXMgbm8gZnJhbWUgYXNzb2NpYXRl
ZCB3aXRoIHRoZSBkb2N1bWVudCBvciBubyBwYWdlIGFzc29jaWF0ZWQKKyAgICAvLyB3aXRoIHRo
ZSBmcmFtZSwgd2Ugd2lsbCBjb25zaWRlciB0aGUgZG9jdW1lbnQgdG8gYmUgaW52aXNpYmxlLiBU
aGlzCisgICAgLy8gc2VlbXMgdG8gaGFwcGVuIGluIGNhc2VzIHN1Y2ggYXMgdGh1bWJuYWlscyB3
aGljaCB3ZSBjb25zaWRlciBhcworICAgIC8vIHZpc2libGUuIE9uY2Ugd2UgaW1wbGVtZW50IG1v
cmUgc3RhdGVzIG9mIHZpc2liaWxpdHksIHRoZXNlIHNob3VsZCBoYXZlCisgICAgLy8gdGhlaXIg
b3duIHN0YXRlLgorICAgIGlmICghbV9mcmFtZSB8fCAhbV9mcmFtZS0+cGFnZSgpKQorICAgICAg
ICByZXR1cm4gUGFnZVZpc2liaWxpdHlTdGF0ZVZpc2libGU7CisgICAgcmV0dXJuIG1fZnJhbWUt
PnBhZ2UoKS0+dmlzaWJpbGl0eVN0YXRlKCk7Cit9CisKK1N0cmluZyBEb2N1bWVudDo6d2Via2l0
VmlzaWJpbGl0eVN0YXRlKCkgY29uc3QKK3sKKyAgICByZXR1cm4gR2V0UGFnZVZpc2liaWxpdHlT
dGF0ZVN0cmluZyh2aXNpYmlsaXR5U3RhdGUoKSk7Cit9CisKK2Jvb2wgRG9jdW1lbnQ6OndlYmtp
dElzVmlzaWJsZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIHZpc2liaWxpdHlTdGF0ZSgpID09IFBh
Z2VWaXNpYmlsaXR5U3RhdGVWaXNpYmxlOworfQorCit2b2lkIERvY3VtZW50OjpkaXNwYXRjaFZp
c2liaWxpdHlTdGF0ZUNoYW5nZUV2ZW50KCkKK3sKKyAgICBkaXNwYXRjaEV2ZW50KEV2ZW50Ojpj
cmVhdGUoZXZlbnROYW1lcygpLndlYmtpdHZpc2liaWxpdHlzdGF0ZWNoYW5nZUV2ZW50LCBmYWxz
ZSwgZmFsc2UpKTsKK30KKyNlbmRpZgorCiBTdHJpbmcgRG9jdW1lbnQ6Om5vZGVOYW1lKCkgY29u
c3QKIHsKICAgICByZXR1cm4gIiNkb2N1bWVudCI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vRG9jdW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCmluZGV4IDE0
NTljOTIuLjYzNDhhYjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCkBAIC0zMyw2ICszMyw3IEBACiAj
aW5jbHVkZSAiQ29sb3IuaCIKICNpbmNsdWRlICJET01UaW1lU3RhbXAuaCIKICNpbmNsdWRlICJE
b2N1bWVudFRpbWluZy5oIgorI2luY2x1ZGUgIlBhZ2VWaXNpYmlsaXR5U3RhdGUuaCIKICNpbmNs
dWRlICJRdWFsaWZpZWROYW1lLmgiCiAjaW5jbHVkZSAiU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5o
IgogI2luY2x1ZGUgIlN0cmluZ1dpdGhEaXJlY3Rpb24uaCIKQEAgLTMwMCw2ICszMDEsOSBAQCBw
dWJsaWM6CiAjaWYgRU5BQkxFKEZVTExTQ1JFRU5fQVBJKQogICAgIERFRklORV9BVFRSSUJVVEVf
RVZFTlRfTElTVEVORVIod2Via2l0ZnVsbHNjcmVlbmNoYW5nZSk7CiAjZW5kaWYKKyNpZiBFTkFC
TEUoUEFHRV9WSVNJQklMSVRZX0FQSSkKKyAgICBERUZJTkVfQVRUUklCVVRFX0VWRU5UX0xJU1RF
TkVSKHdlYmtpdHZpc2liaWxpdHlzdGF0ZWNoYW5nZSk7CisjZW5kaWYKIAogICAgIFZpZXdwb3J0
QXJndW1lbnRzIHZpZXdwb3J0QXJndW1lbnRzKCkgY29uc3QgeyByZXR1cm4gbV92aWV3cG9ydEFy
Z3VtZW50czsgfQogCkBAIC0zNzMsNiArMzc3LDEyIEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwg
S1VSTCBiYXNlVVJJKCkgY29uc3Q7CiAKKyNpZiBFTkFCTEUoUEFHRV9WSVNJQklMSVRZX0FQSSkK
KyAgICBTdHJpbmcgd2Via2l0VmlzaWJpbGl0eVN0YXRlKCkgY29uc3Q7CisgICAgYm9vbCB3ZWJr
aXRJc1Zpc2libGUoKSBjb25zdDsKKyAgICB2b2lkIGRpc3BhdGNoVmlzaWJpbGl0eVN0YXRlQ2hh
bmdlRXZlbnQoKTsKKyNlbmRpZgorCiAgICAgUGFzc1JlZlB0cjxOb2RlPiBhZG9wdE5vZGUoUGFz
c1JlZlB0cjxOb2RlPiBzb3VyY2UsIEV4Y2VwdGlvbkNvZGUmKTsKIAogICAgIFBhc3NSZWZQdHI8
SFRNTENvbGxlY3Rpb24+IGltYWdlcygpOwpAQCAtMTEzNCw2ICsxMTQ0LDEwIEBAIHByaXZhdGU6
CiAKICAgICB2b2lkIGxvYWRFdmVudERlbGF5VGltZXJGaXJlZChUaW1lcjxEb2N1bWVudD4qKTsK
IAorI2lmIEVOQUJMRShQQUdFX1ZJU0lCSUxJVFlfQVBJKQorICAgIFBhZ2VWaXNpYmlsaXR5U3Rh
dGUgdmlzaWJpbGl0eVN0YXRlKCkgY29uc3Q7CisjZW5kaWYKKwogICAgIGludCBtX2d1YXJkUmVm
Q291bnQ7CiAKICAgICBPd25QdHI8Q1NTU3R5bGVTZWxlY3Rvcj4gbV9zdHlsZVNlbGVjdG9yOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmlkbCBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9Eb2N1bWVudC5pZGwKaW5kZXggZDI4YzZlZC4uMGEwYjFmZSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20v
RG9jdW1lbnQuaWRsCkBAIC0zNDAsNiArMzQwLDEwIEBAIG1vZHVsZSBjb3JlIHsKICAgICAgICAg
Ym9vbGVhbiBpc0hUTUxEb2N1bWVudCgpOwogI2VuZGlmCiAKKyAgICAgICAgLy8gUGFnZSB2aXNp
YmlsaXR5IEFQSS4KKyAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFtDb25kaXRpb25hbD1QQUdF
X1ZJU0lCSUxJVFlfQVBJXSBET01TdHJpbmcgd2Via2l0VmlzaWJpbGl0eVN0YXRlOworICAgICAg
ICByZWFkb25seSBhdHRyaWJ1dGUgW0NvbmRpdGlvbmFsPVBBR0VfVklTSUJJTElUWV9BUEldIGJv
b2xlYW4gd2Via2l0SXNWaXNpYmxlOworCiAgICAgfTsKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvZG9tL0V2ZW50TmFtZXMuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudE5hbWVz
LmgKaW5kZXggZWNlMmEwOC4uOTZmMDM4MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9t
L0V2ZW50TmFtZXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnROYW1lcy5oCkBAIC0x
MDYsNiArMTA2LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIG1hY3JvKHVubG9hZCkgXAog
ICAgIG1hY3JvKHVwZGF0ZXJlYWR5KSBcCiAgICAgbWFjcm8odmVyc2lvbmNoYW5nZSkgXAorICAg
IG1hY3JvKHdlYmtpdHZpc2liaWxpdHlzdGF0ZWNoYW5nZSkgXAogICAgIG1hY3JvKHdyaXRlKSBc
CiAgICAgbWFjcm8od3JpdGVlbmQpIFwKICAgICBtYWNybyh3cml0ZXN0YXJ0KSBcCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
RnJhbWUuY3BwCmluZGV4IDg4N2QxYzIuLjM3Y2Q2MDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvRnJhbWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWUuY3BwCkBA
IC03MDAsNiArNzAwLDE2IEBAIHZvaWQgRnJhbWU6OnNldERPTVdpbmRvdyhET01XaW5kb3cqIGRv
bVdpbmRvdykKICAgICBtX2RvbVdpbmRvdyA9IGRvbVdpbmRvdzsKIH0KIAorI2lmIEVOQUJMRShQ
QUdFX1ZJU0lCSUxJVFlfQVBJKQordm9pZCBGcmFtZTo6ZGlzcGF0Y2hWaXNpYmlsaXR5U3RhdGVD
aGFuZ2VFdmVudCgpCit7CisgICAgaWYgKG1fZG9jKQorICAgICAgICBtX2RvYy0+ZGlzcGF0Y2hW
aXNpYmlsaXR5U3RhdGVDaGFuZ2VFdmVudCgpOworICAgIGZvciAoRnJhbWUqIGNoaWxkID0gdHJl
ZSgpLT5maXJzdENoaWxkKCk7IGNoaWxkOyBjaGlsZCA9IGNoaWxkLT50cmVlKCktPm5leHRTaWJs
aW5nKCkpCisgICAgICAgIGNoaWxkLT5kaXNwYXRjaFZpc2liaWxpdHlTdGF0ZUNoYW5nZUV2ZW50
KCk7Cit9CisjZW5kaWYKKwogRE9NV2luZG93KiBGcmFtZTo6ZG9tV2luZG93KCkgY29uc3QKIHsK
ICAgICBpZiAoIW1fZG9tV2luZG93KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9G
cmFtZS5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZS5oCmluZGV4IDVjZjczOTkuLjMxZTVj
ZWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWUuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL0ZyYW1lLmgKQEAgLTExOCw2ICsxMTgsMTAgQEAgbmFtZXNwYWNlIFdlYkNv
cmUgewogCiAgICAgICAgIHZvaWQgdHJhbnNmZXJDaGlsZEZyYW1lVG9OZXdEb2N1bWVudCgpOwog
CisjaWYgRU5BQkxFKFBBR0VfVklTSUJJTElUWV9BUEkpCisgICAgICAgIHZvaWQgZGlzcGF0Y2hW
aXNpYmlsaXR5U3RhdGVDaGFuZ2VFdmVudCgpOworI2VuZGlmCisKICAgICAvLyA9PT09PT09PSBB
bGwgcHVibGljIGZ1bmN0aW9ucyBiZWxvdyB0aGlzIHBvaW50IGFyZSBjYW5kaWRhdGVzIHRvIG1v
dmUgb3V0IG9mIEZyYW1lIGludG8gYW5vdGhlciBjbGFzcy4gPT09PT09PT0KIAogICAgICAgICBi
b29sIGlzRGlzY29ubmVjdGVkKCkgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL1BhZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcAppbmRleCAzNTkwNGYy
Li40M2FmYTg2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAKQEAgLTE2Miw2ICsxNjIsOSBAQCBQYWdlOjpQ
YWdlKGNvbnN0IFBhZ2VDbGllbnRzJiBwYWdlQ2xpZW50cykKICAgICAsIG1fdmlld01vZGUoVmll
d01vZGVXaW5kb3dlZCkKICAgICAsIG1fbWluaW11bVRpbWVySW50ZXJ2YWwoU2V0dGluZ3M6OmRl
ZmF1bHRNaW5ET01UaW1lckludGVydmFsKCkpCiAgICAgLCBtX2lzRWRpdGFibGUoZmFsc2UpCisj
aWYgRU5BQkxFKFBBR0VfVklTSUJJTElUWV9BUEkpCisgICAgLCBtX3Zpc2liaWxpdHlTdGF0ZShQ
YWdlVmlzaWJpbGl0eVN0YXRlVmlzaWJsZSkKKyNlbmRpZgogewogICAgIGlmICghYWxsUGFnZXMp
IHsKICAgICAgICAgYWxsUGFnZXMgPSBuZXcgSGFzaFNldDxQYWdlKj47CkBAIC05NDEsNiArOTQ0
LDIzIEBAIHZvaWQgUGFnZTo6Y2hlY2tGcmFtZUNvdW50Q29uc2lzdGVuY3koKSBjb25zdAogfQog
I2VuZGlmCiAKKyNpZiBFTkFCTEUoUEFHRV9WSVNJQklMSVRZX0FQSSkKK3ZvaWQgUGFnZTo6c2V0
VmlzaWJpbGl0eVN0YXRlKFBhZ2VWaXNpYmlsaXR5U3RhdGUgdmlzaWJpbGl0eVN0YXRlLCBib29s
IGlzSW5pdGlhbFN0YXRlKQoreworICAgIGlmIChtX3Zpc2liaWxpdHlTdGF0ZSA9PSB2aXNpYmls
aXR5U3RhdGUpCisgICAgICAgIHJldHVybjsKKyAgICBtX3Zpc2liaWxpdHlTdGF0ZSA9IHZpc2li
aWxpdHlTdGF0ZTsKKworICAgIGlmICghaXNJbml0aWFsU3RhdGUgJiYgbV9tYWluRnJhbWUpCisg
ICAgICAgIG1fbWFpbkZyYW1lLT5kaXNwYXRjaFZpc2liaWxpdHlTdGF0ZUNoYW5nZUV2ZW50KCk7
Cit9CisKK1BhZ2VWaXNpYmlsaXR5U3RhdGUgUGFnZTo6dmlzaWJpbGl0eVN0YXRlKCkgY29uc3QK
K3sKKyAgICByZXR1cm4gbV92aXNpYmlsaXR5U3RhdGU7Cit9CisjZW5kaWYKKwogUGFnZTo6UGFn
ZUNsaWVudHM6OlBhZ2VDbGllbnRzKCkKICAgICA6IGNocm9tZUNsaWVudCgwKQogICAgICwgY29u
dGV4dE1lbnVDbGllbnQoMCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5o
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmgKaW5kZXggYWM0YzE2MC4uMDY0NTA0YyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9QYWdlLmgKQEAgLTIzLDYgKzIzLDcgQEAKIAogI2luY2x1ZGUgIkZyYW1lTG9hZGVyVHlw
ZXMuaCIKICNpbmNsdWRlICJGaW5kT3B0aW9ucy5oIgorI2luY2x1ZGUgIlBhZ2VWaXNpYmlsaXR5
U3RhdGUuaCIKICNpbmNsdWRlICJQbGF0Zm9ybVN0cmluZy5oIgogI2luY2x1ZGUgIlZpZXdwb3J0
QXJndW1lbnRzLmgiCiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KQEAgLTMwMSw2ICszMDIsMTEg
QEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICB2b2lkIHNldEVkaXRhYmxlKGJvb2wgaXNF
ZGl0YWJsZSkgeyBtX2lzRWRpdGFibGUgPSBpc0VkaXRhYmxlOyB9CiAgICAgICAgIGJvb2wgaXNF
ZGl0YWJsZSgpIHsgcmV0dXJuIG1faXNFZGl0YWJsZTsgfQogCisjaWYgRU5BQkxFKFBBR0VfVklT
SUJJTElUWV9BUEkpCisgICAgICAgIFBhZ2VWaXNpYmlsaXR5U3RhdGUgdmlzaWJpbGl0eVN0YXRl
KCkgY29uc3Q7CisgICAgICAgIHZvaWQgc2V0VmlzaWJpbGl0eVN0YXRlKFBhZ2VWaXNpYmlsaXR5
U3RhdGUsIGJvb2wpOworI2VuZGlmCisKICAgICBwcml2YXRlOgogICAgICAgICB2b2lkIGluaXRH
cm91cCgpOwogCkBAIC00MDcsNiArNDEzLDEwIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAg
ICAgT3duUHRyPFNjcm9sbGFibGVBcmVhU2V0PiBtX3Njcm9sbGFibGVBcmVhU2V0OwogCiAgICAg
ICAgIGJvb2wgbV9pc0VkaXRhYmxlOworCisjaWYgRU5BQkxFKFBBR0VfVklTSUJJTElUWV9BUEkp
CisgICAgICAgIFBhZ2VWaXNpYmlsaXR5U3RhdGUgbV92aXNpYmlsaXR5U3RhdGU7CisjZW5kaWYK
ICAgICB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL1BhZ2VWaXNpYmlsaXR5U3RhdGUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9Q
YWdlVmlzaWJpbGl0eVN0YXRlLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
Li5mZTE4ZGZhCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlVmlz
aWJpbGl0eVN0YXRlLmNwcApAQCAtMCwwICsxLDU2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
ICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAg
ICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMK
KyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVj
dHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Ig
d3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
VEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBM
SU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QK
KyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2lu
Y2x1ZGUgIlBhZ2VWaXNpYmlsaXR5U3RhdGUuaCIKKworI2lmIEVOQUJMRShQQUdFX1ZJU0lCSUxJ
VFlfQVBJKQorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1N0cmluZyBHZXRQYWdlVmlzaWJpbGl0
eVN0YXRlU3RyaW5nKFBhZ2VWaXNpYmlsaXR5U3RhdGUgc3RhdGUpCit7CisgICAgREVGSU5FX1NU
QVRJQ19MT0NBTChjb25zdCBTdHJpbmcsIHZpc2libGUsICgidmlzaWJsZSIpKTsKKyAgICBERUZJ
TkVfU1RBVElDX0xPQ0FMKGNvbnN0IFN0cmluZywgaGlkZGVuLCAoImhpZGRlbiIpKTsKKworICAg
IHN3aXRjaCAoc3RhdGUpIHsKKyAgICBjYXNlIFBhZ2VWaXNpYmlsaXR5U3RhdGVWaXNpYmxlOgor
ICAgICAgICByZXR1cm4gdmlzaWJsZTsKKyAgICBjYXNlIFBhZ2VWaXNpYmlsaXR5U3RhdGVIaWRk
ZW46CisgICAgICAgIHJldHVybiBoaWRkZW47CisgICAgfQorCisgICAgQVNTRVJUX05PVF9SRUFD
SEVEKCk7CisgICAgcmV0dXJuIFN0cmluZygpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CisKKyNlbmRpZiAvLyBpZiBFTkFCTEUoUEFHRV9WSVNJQklMSVRZX0FQSSkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZVZpc2liaWxpdHlTdGF0ZS5oIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9QYWdlVmlzaWJpbGl0eVN0YXRlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMC4uYTdkNzAyMQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
UGFnZVZpc2liaWxpdHlTdGF0ZS5oCkBAIC0wLDAgKzEsNTEgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgor
ICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9m
IGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBw
cm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBw
cmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QK
KyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9S
UyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAq
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFBhZ2VWaXNpYmls
aXR5U3RhdGVfaAorI2RlZmluZSBQYWdlVmlzaWJpbGl0eVN0YXRlX2gKKworI2luY2x1ZGUgPHd0
Zi90ZXh0L1dURlN0cmluZy5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKKy8vIFRoZSBlbnVt
IGlzIG5vdCBmbGFnIHByb3RlY3RlZCBhcyBpdCBpcyB1c2VkIGluIHRoZSBXZWJLaXQgY2hyb21p
dW0gQVBJCisvLyB3aXRob3V0IGZsYWcgcHJvdGVjdGlvbi4KK2VudW0gUGFnZVZpc2liaWxpdHlT
dGF0ZSB7CisgICAgUGFnZVZpc2liaWxpdHlTdGF0ZVZpc2libGUsCisgICAgUGFnZVZpc2liaWxp
dHlTdGF0ZUhpZGRlbgorfTsKKworI2lmIEVOQUJMRShQQUdFX1ZJU0lCSUxJVFlfQVBJKQorU3Ry
aW5nIEdldFBhZ2VWaXNpYmlsaXR5U3RhdGVTdHJpbmcoUGFnZVZpc2liaWxpdHlTdGF0ZSk7Cisj
ZW5kaWYKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gaWZuZGVmIFBhZ2VW
aXNpYmlsaXR5U3RhdGVfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9XZWJL
aXQuZ3lwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9XZWJLaXQuZ3lwCmluZGV4IGI1ODgwZWUu
LjliYWRlMTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vV2ViS2l0Lmd5cAor
KysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL1dlYktpdC5neXAKQEAgLTIyNyw2ICsyMjcsNyBA
QAogICAgICAgICAgICAgICAgICdwdWJsaWMvV2ViT3B0aW9uRWxlbWVudC5oJywKICAgICAgICAg
ICAgICAgICAncHVibGljL1dlYlBhZ2VTZXJpYWxpemVyLmgnLAogICAgICAgICAgICAgICAgICdw
dWJsaWMvV2ViUGFnZVNlcmlhbGl6ZXJDbGllbnQuaCcsCisgICAgICAgICAgICAgICAgJ3B1Ymxp
Yy9XZWJQYWdlVmlzaWJpbGl0eVN0YXRlLmgnLAogICAgICAgICAgICAgICAgICdwdWJsaWMvV2Vi
UGFzc3dvcmRBdXRvY29tcGxldGVMaXN0ZW5lci5oJywKICAgICAgICAgICAgICAgICAncHVibGlj
L1dlYlBhc3N3b3JkRm9ybURhdGEuaCcsCiAgICAgICAgICAgICAgICAgJ3B1YmxpYy9XZWJQZXJm
b3JtYW5jZS5oJywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vZmVhdHVyZXMu
Z3lwaSBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vZmVhdHVyZXMuZ3lwaQppbmRleCA1MTBmYmU2
Li4xNDQ4ZjliIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL2ZlYXR1cmVzLmd5
cGkKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9mZWF0dXJlcy5neXBpCkBAIC03NSw3ICs3
NSw3IEBACiAgICAgICAgICdFTkFCTEVfT0ZGTElORV9XRUJfQVBQTElDQVRJT05TPTEnLAogICAg
ICAgICAnRU5BQkxFX09QRU5UWVBFX1NBTklUSVpFUj0xJywKICAgICAgICAgJ0VOQUJMRV9PUklF
TlRBVElPTl9FVkVOVFM9MCcsCi0gICAgICAgICdFTkFCTEVfUEFHRV9WSVNJQklMSVRZX0FQST0w
JywKKyAgICAgICAgJ0VOQUJMRV9QQUdFX1ZJU0lCSUxJVFlfQVBJPTEnLAogICAgICAgICAnRU5B
QkxFX1BST0dSRVNTX1RBRz0xJywKICAgICAgICAgJ0VOQUJMRV9RVU9UQT0xJywKICAgICAgICAg
J0VOQUJMRV9SRUdJU1RFUl9QUk9UT0NPTF9IQU5ETEVSPTAnLApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViUGFnZVZpc2liaWxpdHlTdGF0ZS5oIGIvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViUGFnZVZpc2liaWxpdHlTdGF0ZS5oCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjU0NzRiZTQKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJQYWdlVmlzaWJpbGl0eVN0YXRlLmgKQEAg
LTAsMCArMSw0NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICog
bWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1l
IG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5
IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICog
dGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVS
UyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBB
UlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENP
UFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAq
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNpZm5kZWYgV2ViUGFnZVZpc2liaWxpdHlTdGF0ZV9oCisjZGVmaW5lIFdl
YlBhZ2VWaXNpYmlsaXR5U3RhdGVfaAorCituYW1lc3BhY2UgV2ViS2l0IHsKKworLy8gVGhlIGZv
bGxvd2luZyBlbnVtIHNob3VsZCBiZSBjb25zaXN0ZW50IHdpdGggdGhlIFBhZ2VWaXNpYmlsaXR5
U3RhdGUgZW51bQorLy8gZGVmaW5lZCBpbiBXZWJDb3JlLgorZW51bSBXZWJQYWdlVmlzaWJpbGl0
eVN0YXRlIHsKKyAgICBXZWJQYWdlVmlzaWJpbGl0eVN0YXRlVmlzaWJsZSwKKyAgICBXZWJQYWdl
VmlzaWJpbGl0eVN0YXRlSGlkZGVuCit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2Vu
ZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJWaWV3Lmgg
Yi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJWaWV3LmgKaW5kZXggNmI2OWU3Yy4u
MTY1NjljOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViVmll
dy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlZpZXcuaApAQCAtMzIs
NiArMzIsNyBAQAogI2RlZmluZSBXZWJWaWV3X2gKIAogI2luY2x1ZGUgIldlYkRyYWdPcGVyYXRp
b24uaCIKKyNpbmNsdWRlICJXZWJQYWdlVmlzaWJpbGl0eVN0YXRlLmgiCiAjaW5jbHVkZSAiV2Vi
U3RyaW5nLmgiCiAjaW5jbHVkZSAiV2ViVmVjdG9yLmgiCiAjaW5jbHVkZSAiV2ViV2lkZ2V0Lmgi
CkBAIC0zNTUsNiArMzU2LDEyIEBAIHB1YmxpYzoKICAgICAvLyBBUElzLgogICAgIHZpcnR1YWwg
V2ViR3JhcGhpY3NDb250ZXh0M0QqIGdyYXBoaWNzQ29udGV4dDNEKCkgPSAwOwogCisgICAgLy8g
VmlzaWJpbGl0eSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLQorCisgICAgLy8gU2V0cyB0aGUgdmlzaWJpbGl0eSBvZiB0aGUgV2ViVmll
dy4KKyAgICB2aXJ0dWFsIHZvaWQgc2V0VmlzaWJpbGl0eVN0YXRlKFdlYlBhZ2VWaXNpYmlsaXR5
U3RhdGUgdmlzaWJpbGl0eVN0YXRlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgYm9vbCBpc0luaXRpYWxTdGF0ZSkgeyB9CisKIHByb3RlY3RlZDoKICAgICB+V2ViVmlldygp
IHt9CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViVmll
d0NsaWVudC5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViVmlld0NsaWVudC5o
CmluZGV4IGJjNzRjZjMuLjI4ZTI1NzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vcHVibGljL1dlYlZpZXdDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1
YmxpYy9XZWJWaWV3Q2xpZW50LmgKQEAgLTM2LDYgKzM2LDcgQEAKICNpbmNsdWRlICJXZWJFZGl0
aW5nQWN0aW9uLmgiCiAjaW5jbHVkZSAiV2ViRmlsZUNob29zZXJDb21wbGV0aW9uLmgiCiAjaW5j
bHVkZSAiV2ViRmlsZUNob29zZXJQYXJhbXMuaCIKKyNpbmNsdWRlICJXZWJQYWdlVmlzaWJpbGl0
eVN0YXRlLmgiCiAjaW5jbHVkZSAiV2ViUG9wdXBUeXBlLmgiCiAjaW5jbHVkZSAiV2ViU3RyaW5n
LmgiCiAjaW5jbHVkZSAiV2ViVGV4dEFmZmluaXR5LmgiCkBAIC0zMTgsNiArMzE5LDE0IEBAIHB1
YmxpYzoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgV2Vi
U3RyaW5nJiB1cmwsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNv
bnN0IFdlYlN0cmluZyYgdGl0bGUpIHsgfQogCisgICAgLy8gVmlzaWJpbGl0eSAtLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAg
Ly8gUmV0dXJucyB0aGUgY3VycmVudCB2aXNpYmlsaXR5IG9mIHRoZSBXZWJWaWV3LgorICAgIHZp
cnR1YWwgV2ViUGFnZVZpc2liaWxpdHlTdGF0ZSB2aXNpYmlsaXR5U3RhdGUoKSBjb25zdAorICAg
IHsKKyAgICAgICAgcmV0dXJuIFdlYlBhZ2VWaXNpYmlsaXR5U3RhdGVWaXNpYmxlOworICAgIH0K
KwogcHJvdGVjdGVkOgogICAgIH5XZWJWaWV3Q2xpZW50KCkgeyB9CiB9OwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuY3BwIGIvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuY3BwCmluZGV4IDkwY2UwMWMuLjhiMGIyZGIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAKQEAgLTM2MCw2ICsz
NjAsMTAgQEAgV2ViVmlld0ltcGw6OldlYlZpZXdJbXBsKFdlYlZpZXdDbGllbnQqIGNsaWVudCkK
IAogICAgIG1fcGFnZS0+c2V0R3JvdXBOYW1lKHBhZ2VHcm91cE5hbWUpOwogCisjaWYgRU5BQkxF
KFBBR0VfVklTSUJJTElUWV9BUEkpCisgICAgc2V0VmlzaWJpbGl0eVN0YXRlKG1fY2xpZW50LT52
aXNpYmlsaXR5U3RhdGUoKSwgdHJ1ZSk7CisjZW5kaWYKKwogICAgIG1faW5zcGVjdG9yU2V0dGlu
Z3NNYXAgPSBhZG9wdFB0cihuZXcgU2V0dGluZ3NNYXApOwogfQogCkBAIC0yNTUwLDQgKzI1NTQs
MjQgQEAgV2ViR3JhcGhpY3NDb250ZXh0M0QqIFdlYlZpZXdJbXBsOjpncmFwaGljc0NvbnRleHQz
RCgpCiAgICAgcmV0dXJuIDA7CiB9CiAKKwordm9pZCBXZWJWaWV3SW1wbDo6c2V0VmlzaWJpbGl0
eVN0YXRlKFdlYlBhZ2VWaXNpYmlsaXR5U3RhdGUgdmlzaWJpbGl0eVN0YXRlLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2wgaXNJbml0aWFsU3RhdGUpIHsKKyNpZiBF
TkFCTEUoUEFHRV9WSVNJQklMSVRZX0FQSSkKKyAgICBpZiAoIXBhZ2UoKSkKKyAgICAgICAgcmV0
dXJuOworCisgICAgc3dpdGNoICh2aXNpYmlsaXR5U3RhdGUpIHsKKyAgICBjYXNlIFdlYlBhZ2VW
aXNpYmlsaXR5U3RhdGVWaXNpYmxlOgorICAgICAgICBtX3BhZ2UtPnNldFZpc2liaWxpdHlTdGF0
ZShQYWdlVmlzaWJpbGl0eVN0YXRlVmlzaWJsZSwgaXNJbml0aWFsU3RhdGUpOworICAgICAgICBy
ZXR1cm47CisgICAgY2FzZSBXZWJQYWdlVmlzaWJpbGl0eVN0YXRlSGlkZGVuOgorICAgICAgICBt
X3BhZ2UtPnNldFZpc2liaWxpdHlTdGF0ZShQYWdlVmlzaWJpbGl0eVN0YXRlSGlkZGVuLCBpc0lu
aXRpYWxTdGF0ZSk7CisgICAgICAgIHJldHVybjsKKyAgICBkZWZhdWx0OgorICAgICAgICBBU1NF
UlRfTk9UX1JFQUNIRUQoKTsKKyAgICB9CisjZW5kaWYKK30KKwogfSAvLyBuYW1lc3BhY2UgV2Vi
S2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5o
IGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuaAppbmRleCA1NzVjYWIx
Li44NWEyMDg5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3
SW1wbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmgKQEAg
LTM0OSw2ICszNDksOCBAQCBwdWJsaWM6CiAgICAgLy8gV2ViR0wuIFJldHVybnMgMCBpZiBjb21w
b3NpdGluZyBzdXBwb3J0IGlzIG5vdCBjb21waWxlZCBpbi4KICAgICB2aXJ0dWFsIFdlYkdyYXBo
aWNzQ29udGV4dDNEKiBncmFwaGljc0NvbnRleHQzRCgpOwogCisgICAgdmlydHVhbCB2b2lkIHNl
dFZpc2liaWxpdHlTdGF0ZShXZWJQYWdlVmlzaWJpbGl0eVN0YXRlLCBib29sKTsKKwogICAgIFdl
YkNvcmU6OlBvcHVwQ29udGFpbmVyKiBzZWxlY3RQb3B1cCgpIGNvbnN0IHsgcmV0dXJuIG1fc2Vs
ZWN0UG9wdXAuZ2V0KCk7IH0KIAogICAgIC8vIFJldHVybnMgdHJ1ZSBpZiB0aGUgZXZlbnQgbGVh
ZHMgdG8gc2Nyb2xsaW5nLgpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvTGF5b3V0
VGVzdENvbnRyb2xsZXIuY3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvTGF5b3V0VGVzdENvbnRy
b2xsZXIuY3BwCmluZGV4IDRjYTkwZDguLjEwODUxOTcgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBS
ZW5kZXJUcmVlL0xheW91dFRlc3RDb250cm9sbGVyLmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVy
VHJlZS9MYXlvdXRUZXN0Q29udHJvbGxlci5jcHAKQEAgLTE2NzAsNiArMTY3MCwyNiBAQCBzdGF0
aWMgSlNWYWx1ZVJlZiBzZXRQbHVnaW5zRW5hYmxlZENhbGxiYWNrKEpTQ29udGV4dFJlZiBjb250
ZXh0LCBKU09iamVjdFJlZiBmdQogICAgIHJldHVybiBKU1ZhbHVlTWFrZVVuZGVmaW5lZChjb250
ZXh0KTsKIH0gICAgCiAKK3N0YXRpYyBKU1ZhbHVlUmVmIHNldFBhZ2VWaXNpYmlsaXR5Q2FsbGJh
Y2soSlNDb250ZXh0UmVmIGNvbnRleHQsIEpTT2JqZWN0UmVmIGZ1bmN0aW9uLCBKU09iamVjdFJl
ZiB0aGlzT2JqZWN0LCBzaXplX3QgYXJndW1lbnRDb3VudCwgY29uc3QgSlNWYWx1ZVJlZiBhcmd1
bWVudHNbXSwgSlNWYWx1ZVJlZiogZXhjZXB0aW9uKQoreworICAgIC8vIEhhcyBtYWMgJiB3aW5k
b3dzIGltcGxlbWVudGF0aW9uCisgICAgaWYgKGFyZ3VtZW50Q291bnQgPCAxKQorICAgICAgICBy
ZXR1cm4gSlNWYWx1ZU1ha2VVbmRlZmluZWQoY29udGV4dCk7CisKKyAgICBKU1JldGFpblB0cjxK
U1N0cmluZ1JlZj4gdmlzaWJpbGl0eShBZG9wdCwgSlNWYWx1ZVRvU3RyaW5nQ29weShjb250ZXh0
LCBhcmd1bWVudHNbMF0sIGV4Y2VwdGlvbikpOworICAgIEFTU0VSVCghKmV4Y2VwdGlvbik7CisK
KyAgICBzaXplX3QgbWF4TGVuZ3RoID0gSlNTdHJpbmdHZXRNYXhpbXVtVVRGOENTdHJpbmdTaXpl
KHZpc2liaWxpdHkuZ2V0KCkpOworICAgIGNoYXIqIHZpc2liaWxpdHlCdWZmZXIgPSBuZXcgY2hh
clttYXhMZW5ndGggKyAxXTsKKyAgICBKU1N0cmluZ0dldFVURjhDU3RyaW5nKHZpc2liaWxpdHku
Z2V0KCksIHZpc2liaWxpdHlCdWZmZXIsIG1heExlbmd0aCArIDEpOworICAgIAorICAgIExheW91
dFRlc3RDb250cm9sbGVyKiBjb250cm9sbGVyID0gc3RhdGljX2Nhc3Q8TGF5b3V0VGVzdENvbnRy
b2xsZXIqPihKU09iamVjdEdldFByaXZhdGUodGhpc09iamVjdCkpOworICAgIGNvbnRyb2xsZXIt
PnNldFBhZ2VWaXNpYmlsaXR5KHZpc2liaWxpdHlCdWZmZXIpOworICAgIGRlbGV0ZVtdIHZpc2li
aWxpdHlCdWZmZXI7CisgICAgCisgICAgcmV0dXJuIEpTVmFsdWVNYWtlVW5kZWZpbmVkKGNvbnRl
eHQpOworfSAgICAKKwogc3RhdGljIEpTVmFsdWVSZWYgc2V0U21hcnRJbnNlcnREZWxldGVFbmFi
bGVkQ2FsbGJhY2soSlNDb250ZXh0UmVmIGNvbnRleHQsIEpTT2JqZWN0UmVmIGZ1bmN0aW9uLCBK
U09iamVjdFJlZiB0aGlzT2JqZWN0LCBzaXplX3QgYXJndW1lbnRDb3VudCwgY29uc3QgSlNWYWx1
ZVJlZiBhcmd1bWVudHNbXSwgSlNWYWx1ZVJlZiogZXhjZXB0aW9uKQogewogICAgIGlmIChhcmd1
bWVudENvdW50IDwgMSkKQEAgLTIyODgsNiArMjMwOCw3IEBAIEpTU3RhdGljRnVuY3Rpb24qIExh
eW91dFRlc3RDb250cm9sbGVyOjpzdGF0aWNGdW5jdGlvbnMoKQogICAgICAgICB7ICJzZXRNb2Nr
R2VvbG9jYXRpb25Qb3NpdGlvbiIsIHNldE1vY2tHZW9sb2NhdGlvblBvc2l0aW9uQ2FsbGJhY2ss
IGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnRE
ZWxldGUgfSwKICAgICAgICAgeyAiYWRkTW9ja1NwZWVjaElucHV0UmVzdWx0IiwgYWRkTW9ja1Nw
ZWVjaElucHV0UmVzdWx0Q2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBr
SlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKICAgICAgICAgeyAic2V0TmV3V2luZG93
c0NvcHlCYWNrRm9yd2FyZExpc3QiLCBzZXROZXdXaW5kb3dzQ29weUJhY2tGb3J3YXJkTGlzdENh
bGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1
dGVEb250RGVsZXRlIH0sCisgICAgICAgIHsgInNldFBhZ2VWaXNpYmlsaXR5Iiwgc2V0UGFnZVZp
c2liaWxpdHlDYWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3Bl
cnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LAogICAgICAgICB7ICJzZXRQT1NJWExvY2FsZSIsIHNl
dFBPU0lYTG9jYWxlQ2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQ
cm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKICAgICAgICAgeyAic2V0UGVyc2lzdGVudFVz
ZXJTdHlsZVNoZWV0TG9jYXRpb24iLCBzZXRQZXJzaXN0ZW50VXNlclN0eWxlU2hlZXRMb2NhdGlv
bkNhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRy
aWJ1dGVEb250RGVsZXRlIH0sCiAgICAgICAgIHsgInNldFBvcHVwQmxvY2tpbmdFbmFibGVkIiwg
c2V0UG9wdXBCbG9ja2luZ0VuYWJsZWRDYWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFk
T25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LApkaWZmIC0tZ2l0IGEvVG9v
bHMvRHVtcFJlbmRlclRyZWUvTGF5b3V0VGVzdENvbnRyb2xsZXIuaCBiL1Rvb2xzL0R1bXBSZW5k
ZXJUcmVlL0xheW91dFRlc3RDb250cm9sbGVyLmgKaW5kZXggYTMxZTkwOC4uMzYzYWRiNSAxMDA2
NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvTGF5b3V0VGVzdENvbnRyb2xsZXIuaAorKysg
Yi9Ub29scy9EdW1wUmVuZGVyVHJlZS9MYXlvdXRUZXN0Q29udHJvbGxlci5oCkBAIC0xMDUsNiAr
MTA1LDcgQEAgcHVibGljOgogICAgIHZvaWQgc2V0TW9ja0dlb2xvY2F0aW9uRXJyb3IoaW50IGNv
ZGUsIEpTU3RyaW5nUmVmIG1lc3NhZ2UpOwogICAgIHZvaWQgc2V0TW9ja0dlb2xvY2F0aW9uUG9z
aXRpb24oZG91YmxlIGxhdGl0dWRlLCBkb3VibGUgbG9uZ2l0dWRlLCBkb3VibGUgYWNjdXJhY3kp
OwogICAgIHZvaWQgYWRkTW9ja1NwZWVjaElucHV0UmVzdWx0KEpTU3RyaW5nUmVmIHJlc3VsdCwg
ZG91YmxlIGNvbmZpZGVuY2UsIEpTU3RyaW5nUmVmIGxhbmd1YWdlKTsKKyAgICB2b2lkIHNldFBh
Z2VWaXNpYmlsaXR5KGNvbnN0IGNoYXIqIHZpc2liaWxpdHkpIHsgfQogICAgIHZvaWQgc2V0UGVy
c2lzdGVudFVzZXJTdHlsZVNoZWV0TG9jYXRpb24oSlNTdHJpbmdSZWYgcGF0aCk7CiAgICAgdm9p
ZCBzZXRQbHVnaW5zRW5hYmxlZChib29sIGZsYWcpOwogICAgIHZvaWQgc2V0UG9wdXBCbG9ja2lu
Z0VuYWJsZWQoYm9vbCBmbGFnKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2No
cm9taXVtL0xheW91dFRlc3RDb250cm9sbGVyLmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2No
cm9taXVtL0xheW91dFRlc3RDb250cm9sbGVyLmNwcAppbmRleCBlZThkNWFjLi5hZWFiZjAxIDEw
MDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9MYXlvdXRUZXN0Q29udHJv
bGxlci5jcHAKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vTGF5b3V0VGVzdENv
bnRyb2xsZXIuY3BwCkBAIC0xNTcsNiArMTU3LDcgQEAgTGF5b3V0VGVzdENvbnRyb2xsZXI6Okxh
eW91dFRlc3RDb250cm9sbGVyKFRlc3RTaGVsbCogc2hlbGwpCiAgICAgYmluZE1ldGhvZCgic2V0
TW9ja0dlb2xvY2F0aW9uRXJyb3IiLCAmTGF5b3V0VGVzdENvbnRyb2xsZXI6OnNldE1vY2tHZW9s
b2NhdGlvbkVycm9yKTsKICAgICBiaW5kTWV0aG9kKCJzZXRNb2NrR2VvbG9jYXRpb25Qb3NpdGlv
biIsICZMYXlvdXRUZXN0Q29udHJvbGxlcjo6c2V0TW9ja0dlb2xvY2F0aW9uUG9zaXRpb24pOwog
ICAgIGJpbmRNZXRob2QoImFkZE1vY2tTcGVlY2hJbnB1dFJlc3VsdCIsICZMYXlvdXRUZXN0Q29u
dHJvbGxlcjo6YWRkTW9ja1NwZWVjaElucHV0UmVzdWx0KTsKKyAgICBiaW5kTWV0aG9kKCJzZXRQ
YWdlVmlzaWJpbGl0eSIsICZMYXlvdXRUZXN0Q29udHJvbGxlcjo6c2V0UGFnZVZpc2liaWxpdHkp
OwogICAgIGJpbmRNZXRob2QoInNldFBsdWdpbnNFbmFibGVkIiwgJkxheW91dFRlc3RDb250cm9s
bGVyOjpzZXRQbHVnaW5zRW5hYmxlZCk7CiAgICAgYmluZE1ldGhvZCgic2V0UG9wdXBCbG9ja2lu
Z0VuYWJsZWQiLCAmTGF5b3V0VGVzdENvbnRyb2xsZXI6OnNldFBvcHVwQmxvY2tpbmdFbmFibGVk
KTsKICAgICBiaW5kTWV0aG9kKCJzZXRQT1NJWExvY2FsZSIsICZMYXlvdXRUZXN0Q29udHJvbGxl
cjo6c2V0UE9TSVhMb2NhbGUpOwpAQCAtMTc2NiwzICsxNzY3LDE0IEBAIHZvaWQgTGF5b3V0VGVz
dENvbnRyb2xsZXI6OnNldFBsdWdpbnNFbmFibGVkKGNvbnN0IENwcEFyZ3VtZW50TGlzdCYgYXJn
dW1lbnRzLCBDCiAgICAgfQogICAgIHJlc3VsdC0+c2V0TnVsbCgpOwogfQorCit2b2lkIExheW91
dFRlc3RDb250cm9sbGVyOjpzZXRQYWdlVmlzaWJpbGl0eShjb25zdCBDcHBBcmd1bWVudExpc3Qm
IGFyZ3VtZW50cywgQ3BwVmFyaWFudCogcmVzdWx0KQoreworICAgIGlmIChhcmd1bWVudHMuc2l6
ZSgpID4gMCAmJiBhcmd1bWVudHNbMF0uaXNTdHJpbmcoKSkgeworICAgICAgICBzdHJpbmcgbmV3
VmlzaWJpbGl0eSA9IGFyZ3VtZW50c1swXS50b1N0cmluZygpOworICAgICAgICBpZiAobmV3Vmlz
aWJpbGl0eSA9PSAidmlzaWJsZSIpCisgICAgICAgICAgICBtX3NoZWxsLT53ZWJWaWV3KCktPnNl
dFZpc2liaWxpdHlTdGF0ZShXZWJQYWdlVmlzaWJpbGl0eVN0YXRlVmlzaWJsZSwgZmFsc2UpOwor
ICAgICAgICBlbHNlIGlmIChuZXdWaXNpYmlsaXR5ID09ICJoaWRkZW4iKQorICAgICAgICAgICAg
bV9zaGVsbC0+d2ViVmlldygpLT5zZXRWaXNpYmlsaXR5U3RhdGUoV2ViUGFnZVZpc2liaWxpdHlT
dGF0ZUhpZGRlbiwgZmFsc2UpOworICAgIH0KK30KZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5k
ZXJUcmVlL2Nocm9taXVtL0xheW91dFRlc3RDb250cm9sbGVyLmggYi9Ub29scy9EdW1wUmVuZGVy
VHJlZS9jaHJvbWl1bS9MYXlvdXRUZXN0Q29udHJvbGxlci5oCmluZGV4IDQ0YWMyY2QuLjQ4OTU5
OTYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0xheW91dFRlc3RD
b250cm9sbGVyLmgKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vTGF5b3V0VGVz
dENvbnRyb2xsZXIuaApAQCAtMzY1LDYgKzM2NSw5IEBAIHB1YmxpYzoKICAgICAvLyBFbmFibGUg
b3IgZGlzYWJsZSBwbHVnaW5zLgogICAgIHZvaWQgc2V0UGx1Z2luc0VuYWJsZWQoY29uc3QgQ3Bw
QXJndW1lbnRMaXN0JiwgQ3BwVmFyaWFudCopOwogCisgICAgLy8gU3dpdGNoIHRoZSB2aXNpYmls
aXR5IG9mIHRoZSBwYWdlLgorICAgIHZvaWQgc2V0UGFnZVZpc2liaWxpdHkoY29uc3QgQ3BwQXJn
dW1lbnRMaXN0JiwgQ3BwVmFyaWFudCopOworCiBwdWJsaWM6CiAgICAgLy8gVGhlIGZvbGxvd2lu
ZyBtZXRob2RzIGFyZSBub3QgZXhwb3NlZCB0byBKYXZhU2NyaXB0LgogICAgIHZvaWQgc2V0V29y
a1F1ZXVlRnJvemVuKGJvb2wgZnJvemVuKSB7IG1fd29ya1F1ZXVlLnNldEZyb3plbihmcm96ZW4p
OyB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>92357</attachid>
            <date>2011-05-04 18:46:37 -0700</date>
            <delta_ts>2011-05-05 12:37:46 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>page_visibility_api.patch</filename>
            <type>text/plain</type>
            <size>57498</size>
            <attacher name="Shishir Agrawal">shishir</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA4YzJiMzJjLi44YTc0ZTA5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjUgQEAKKzIwMTEtMDUt
MDQgIFNoaXNoaXIgQWdyYXdhbCAgPHNoaXNoaXJAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEltcGxlbWVudCBQYWdlIFZpc2li
aWxpdHkgQVBJLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9NTQxODEKKworICAgICAgICAqIGZhc3QvZXZlbnRzL3BhZ2UtdmlzaWJpbGl0eS1pZnJhbWUt
ZGVsZXRlLXRlc3QtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2V2ZW50cy9w
YWdlLXZpc2liaWxpdHktaWZyYW1lLWRlbGV0ZS10ZXN0Lmh0bWw6IEFkZGVkLgorICAgICAgICAq
IGZhc3QvZXZlbnRzL3BhZ2UtdmlzaWJpbGl0eS1pZnJhbWUtbW92ZS10ZXN0LWV4cGVjdGVkLnR4
dDogQWRkZWQuCisgICAgICAgICogZmFzdC9ldmVudHMvcGFnZS12aXNpYmlsaXR5LWlmcmFtZS1t
b3ZlLXRlc3QuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9ldmVudHMvcGFnZS12aXNpYmls
aXR5LWlmcmFtZS1wcm9wYWdhdGlvbi10ZXN0LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAg
ICogZmFzdC9ldmVudHMvcGFnZS12aXNpYmlsaXR5LWlmcmFtZS1wcm9wYWdhdGlvbi10ZXN0Lmh0
bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZXZlbnRzL3BhZ2UtdmlzaWJpbGl0eS10cmFuc2l0
aW9uLXRlc3QtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2V2ZW50cy9wYWdl
LXZpc2liaWxpdHktdHJhbnNpdGlvbi10ZXN0Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3Qv
ZXZlbnRzL3Jlc291cmNlcy9wYWdlLXZpc2liaWxpdHktaWZyYW1lLWRlbGV0ZS10ZXN0LWZyYW1l
Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZXZlbnRzL3Jlc291cmNlcy9wYWdlLXZpc2li
aWxpdHktaWZyYW1lLW1vdmUtbmV3LXBhZ2UuaHRtbDogQWRkZWQuCisgICAgICAgICogcGxhdGZv
cm0vZ3RrL1NraXBwZWQ6CisgICAgICAgICogcGxhdGZvcm0vbWFjL1NraXBwZWQ6CisgICAgICAg
ICogcGxhdGZvcm0vcXQvU2tpcHBlZDoKKyAgICAgICAgKiBwbGF0Zm9ybS93aW4vU2tpcHBlZDoK
KwogMjAxMS0wNS0wMyAgSmVyIE5vYmxlICA8amVyLm5vYmxlQGFwcGxlLmNvbT4KIAogICAgICAg
ICBSZXZpZXdlZCBieSBBbnR0aSBLb2l2aXN0by4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zh
c3QvZXZlbnRzL3BhZ2UtdmlzaWJpbGl0eS1pZnJhbWUtZGVsZXRlLXRlc3QtZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvcGFnZS12aXNpYmlsaXR5LWlmcmFtZS1kZWxldGUt
dGVzdC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMWQy
MGEzOQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3BhZ2Utdmlz
aWJpbGl0eS1pZnJhbWUtZGVsZXRlLXRlc3QtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTIgQEAK
K1RoaXMgdGVzdCBjaGVja3MgdGhhdCB0aGUgcGFnZSB2aXNpYmlsaXR5IGV2ZW50IHByb2FnYXRp
b24gZG9lcyBub3QgY3Jhc2ggdGhlIGJyb3dzZXIgd2hlbiBmcmFtZXMgYXJlIGFkZGVkIC8gZGVs
ZXRlZC4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNz
YWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK0xvYWRlZCBhbGwgZnJhbWVz
LgorVmlzaWJpbGl0eSBvZiBtYWluIGRvY3VtZW50IGNoYW5nZWQuCitWaXNpYmlsaXR5IG9mIHN1
YiBmcmFtZSAyIGNoYW5nZWQuCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RF
U1QgQ09NUExFVEUKKyAgIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvcGFn
ZS12aXNpYmlsaXR5LWlmcmFtZS1kZWxldGUtdGVzdC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9l
dmVudHMvcGFnZS12aXNpYmlsaXR5LWlmcmFtZS1kZWxldGUtdGVzdC5odG1sCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQ3MDVmNGYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9mYXN0L2V2ZW50cy9wYWdlLXZpc2liaWxpdHktaWZyYW1lLWRlbGV0ZS10ZXN0Lmh0
bWwKQEAgLTAsMCArMSwxMTAgQEAKKzxodG1sPgorPGJvZHkgb25sb2FkPSJzdGFydFRlc3QoKSI+
CisKKzxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+CisK
KzxzY3JpcHQgc3JjPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0Pgor
Cis8c2NyaXB0PgorCitkZXNjcmlwdGlvbigiVGhpcyB0ZXN0IGNoZWNrcyB0aGF0IHRoZSBwYWdl
IHZpc2liaWxpdHkgZXZlbnQgcHJvYWdhdGlvbiBkb2VzIG5vdCBjcmFzaCB0aGUgYnJvd3NlciB3
aGVuIGZyYW1lcyBhcmUgYWRkZWQgLyBkZWxldGVkLiIpOworCit3aW5kb3cuanNUZXN0SXNBc3lu
YyA9IHRydWU7Cit3aW5kb3cuc3VjY2Vzc2Z1bGx5UGFyc2VkID0gZmFsc2U7CisKK3ZhciBudW1W
aXNpYmlsaXR5Q2hhbmdlcyA9IDA7Cit2YXIgZnJhbWUxLCBmcmFtZTIsIGZyYW1lMywgZnJhbWU0
LCBmcmFtZTUsIHN1YmZyYW1lMSwgc3ViRnJhbWUyLCBzdWJGcmFtZTM7CisKK3ZhciBkb2NzTG9h
ZGVkID0gMDsKK3ZhciBtYWluUGFnZVZpc2liaWxpdHlDaGFuZ2VEb25lID0gZmFsc2U7Cit2YXIg
ZnJhbWUyVmlzaWJsaXR5Q2hhbmdlRG9uZSA9IGZhbHNlOworCitmdW5jdGlvbiBzdGFydFRlc3Qo
KSB7CisgICAgKytkb2NzTG9hZGVkOworICAgIGlmIChkb2NzTG9hZGVkIDwgOCkgeworICAgICAg
cmV0dXJuOworICAgfQorCisgICAgZGVidWcoIkxvYWRlZCBhbGwgZnJhbWVzLiIpOworCisgICAg
ZnJhbWUxID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRvcEZyYW1lMSIpOworICAgIGZyYW1l
MiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0b3BGcmFtZTIiKTsKKyAgICBmcmFtZTMgPSBk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgidG9wRnJhbWUzIik7CisgICAgZnJhbWU0ID0gZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoInRvcEZyYW1lNCIpOworICAgIHN1YkZyYW1lMSA9IGZyYW1lMy5j
b250ZW50RG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInN1YklmcmFtZTEiKTsKKyAgICBzdWJGcmFt
ZTIgPSBmcmFtZTMuY29udGVudERvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzdWJJZnJhbWUyIik7
CisKKyAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKAorICAgICAgICAid2Via2l0dmlzaWJp
bGl0eXN0YXRlY2hhbmdlIiwgb25NYWluUGFnZVZpc2liaWxpdHlDaGFuZ2UsIGZhbHNlKTsKKyAg
ICBmcmFtZTIuY29udGVudERvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoCisgICAgICAgICJ3ZWJr
aXR2aXNpYmlsaXR5c3RhdGVjaGFuZ2UiLCBvbkZyYW1lMlZpc2liaWxpdHlDaGFuZ2UsIGZhbHNl
KTsKKyAgICAvLyBDaGFuZ2UgdGhlIHZpc2liaWxpdHkgb2YgdGhlIGN1cnJlbnQgcGFnZSB0byBp
bnZpc2libGUuCisgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgeworICAgICAg
ICBudW1WaXNpYmlsaXR5Q2hhbmdlcysrOworICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5z
ZXRQYWdlVmlzaWJpbGl0eSgiaGlkZGVuIik7CisgICAgfQorfQorCitmdW5jdGlvbiBmaW5pc2hU
ZXN0KCkgeworICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgICAgIGxh
eW91dFRlc3RDb250cm9sbGVyLnJlc2V0UGFnZVZpc2liaWxpdHkoKTsKKyAgICB3aW5kb3cuc3Vj
Y2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKKyAgICBmaW5pc2hKU1Rlc3QoKTsKK30KKworZnVuY3Rp
b24gb25NYWluUGFnZVZpc2liaWxpdHlDaGFuZ2UoKSB7CisgICAgaWYgKG1haW5QYWdlVmlzaWJp
bGl0eUNoYW5nZURvbmUgJiYgZnJhbWUyVmlzaWJsaXR5Q2hhbmdlRG9uZSkgeworICAgICAgICBm
aW5pc2hUZXN0KCk7CisgICAgfSBlbHNlIGlmICghbWFpblBhZ2VWaXNpYmlsaXR5Q2hhbmdlRG9u
ZSkgeworICAgICAgICBkZWJ1ZygiVmlzaWJpbGl0eSBvZiBtYWluIGRvY3VtZW50IGNoYW5nZWQu
Iik7CisgICAgICAgIC8vIERlbGV0ZSBmcmFtZSA0LgorICAgICAgICBkb2N1bWVudC5ib2R5LnJl
bW92ZUNoaWxkKGZyYW1lNCk7CisKKyAgICAgICAgLy8gRGVsZXRlIHN1YmZyYW1lIDIuCisgICAg
ICAgIGZyYW1lMy5jb250ZW50RG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChzdWJGcmFtZTIpOwor
CisgICAgICAgIC8vIEFkZCBhIG5ldyBmcmFtZSB0byB0b3AgbGV2ZWwuCisgICAgICAgIGZyYW1l
NSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImlmcmFtZSIpOworICAgICAgICBmcmFtZTUuc3Jj
ID0gJyc7CisgICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZnJhbWU1KTsKKworICAg
ICAgICAvLyBBZGQgYSBuZXcgZnJhbWUgdG8gZnJhbWUyLgorICAgICAgICBzdWJGcmFtZTMgPSBm
cmFtZTIuY29udGVudERvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImlmcmFtZSIpOworICAgICAgICBz
dWJGcmFtZTMuc3JjID0gJyc7CisgICAgICAgIGZyYW1lMi5jb250ZW50RG9jdW1lbnQuYm9keS5h
cHBlbmRDaGlsZChzdWJGcmFtZTMpOworCisgICAgICAgIG1haW5QYWdlVmlzaWJpbGl0eUNoYW5n
ZURvbmUgPSB0cnVlOworICAgIH0KKworICAgIGlmIChtYWluUGFnZVZpc2liaWxpdHlDaGFuZ2VE
b25lICYmIGZyYW1lMlZpc2libGl0eUNoYW5nZURvbmUpIHsKKyAgICAgICAgZmluaXNoVGVzdCgp
OworICAgIH0KK30KKworZnVuY3Rpb24gb25GcmFtZTJWaXNpYmlsaXR5Q2hhbmdlKCkgeworICAg
IGlmIChtYWluUGFnZVZpc2liaWxpdHlDaGFuZ2VEb25lICYmIGZyYW1lMlZpc2libGl0eUNoYW5n
ZURvbmUpIHsKKyAgICAgICAgZmluaXNoVGVzdCgpOworICAgIH0gZWxzZSBpZiAoIWZyYW1lMlZp
c2libGl0eUNoYW5nZURvbmUpIHsKKyAgICAgICAgZGVidWcoIlZpc2liaWxpdHkgb2Ygc3ViIGZy
YW1lIDIgY2hhbmdlZC4iKTsKKworICAgICAgICAvLyBEZWxldGUgZnJhbWUgMS4KKyAgICAgICAg
ZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChmcmFtZTEpOworCisgICAgICAgIGZyYW1lMlZpc2li
bGl0eUNoYW5nZURvbmUgPSB0cnVlOworICAgIH0KKworICAgIGlmIChtYWluUGFnZVZpc2liaWxp
dHlDaGFuZ2VEb25lICYmIGZyYW1lMlZpc2libGl0eUNoYW5nZURvbmUpIHsKKyAgICAgICAgZmlu
aXNoVGVzdCgpOworICAgIH0KK30KKzwvc2NyaXB0PgorCis8c2NyaXB0IHNyYz0iLi4vanMvcmVz
b3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+CisKKzxpZnJhbWUgaWQ9InRvcEZyYW1l
MSIgb25sb2FkPSJzdGFydFRlc3QoKSIgPjwvaWZyYW1lPgorPGlmcmFtZSBpZD0idG9wRnJhbWUy
IiBvbmxvYWQ9InN0YXJ0VGVzdCgpIiA+PC9pZnJhbWU+Cis8aWZyYW1lIGlkPSJ0b3BGcmFtZTMi
IG9ubG9hZD0ic3RhcnRUZXN0KCkiIHNyYz0icmVzb3VyY2VzL3BhZ2UtdmlzaWJpbGl0eS1pZnJh
bWUtZGVsZXRlLXRlc3QtZnJhbWUuaHRtbCI+PC9pZnJhbWU+Cis8aWZyYW1lIGlkPSJ0b3BGcmFt
ZTQiIG9ubG9hZD0ic3RhcnRUZXN0KCkiID48L2lmcmFtZT4KKzwvYm9keT4KKzwvaHRtbD4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3BhZ2UtdmlzaWJpbGl0eS1pZnJhbWUt
bW92ZS10ZXN0LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3BhZ2Utdmlz
aWJpbGl0eS1pZnJhbWUtbW92ZS10ZXN0LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwLi43OTQ0MGNmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
ZmFzdC9ldmVudHMvcGFnZS12aXNpYmlsaXR5LWlmcmFtZS1tb3ZlLXRlc3QtZXhwZWN0ZWQudHh0
CkBAIC0wLDAgKzEsMjEgQEAKK1RoaXMgdGVzdCBjaGVja3MgdGhhdCBhbiBpZnJhbWUgdGhhdCBt
b3ZlcyBiZXR3ZWVuIHBhZ2VzIHdpdGggZGlmZmVyZW50IHZpc2liaWxpdHkgd2lsbCBoYXZlIHRo
ZSBjb3JyZWN0IHZpc2liaWxpdHkgdmFsdWUuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBh
IHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4K
KworCitXaW5kb3cgMSBMb2FkZWQKK1dpbmRvdyAyIExvYWRlZAorUEFTUyB3aW5kb3cuZG9jdW1l
bnQud2Via2l0SXNWaXNpYmxlIGlzIHRydWUKK1BBU1Mgd2luZG93Mi5kb2N1bWVudC53ZWJraXRJ
c1Zpc2libGUgaXMgdHJ1ZQorUEFTUyBpZnJhbWUuY29udGVudERvY3VtZW50LndlYmtpdElzVmlz
aWJsZSBpcyB0cnVlCitQQVNTIHdpbmRvdy5kb2N1bWVudC53ZWJraXRJc1Zpc2libGUgaXMgZmFs
c2UKK1BBU1Mgd2luZG93Mi5kb2N1bWVudC53ZWJraXRJc1Zpc2libGUgaXMgdHJ1ZQorUEFTUyBp
ZnJhbWUuY29udGVudERvY3VtZW50LndlYmtpdElzVmlzaWJsZSBpcyB0cnVlCitBZG9wdGVkIGlm
cmFtZSB0byBXaW5kb3cgMQorUEFTUyB3aW5kb3cuZG9jdW1lbnQud2Via2l0SXNWaXNpYmxlIGlz
IGZhbHNlCitQQVNTIHdpbmRvdzIuZG9jdW1lbnQud2Via2l0SXNWaXNpYmxlIGlzIHRydWUKK1BB
U1MgaWZyYW1lLmNvbnRlbnREb2N1bWVudC53ZWJraXRJc1Zpc2libGUgaXMgZmFsc2UKK1BBU1Mg
c3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9wYWdlLXZpc2liaWxpdHktaWZyYW1lLW1vdmUtdGVz
dC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvcGFnZS12aXNpYmlsaXR5LWlmcmFtZS1t
b3ZlLXRlc3QuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41YWJlYTg3
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvcGFnZS12aXNpYmls
aXR5LWlmcmFtZS1tb3ZlLXRlc3QuaHRtbApAQCAtMCwwICsxLDgwIEBACis8aHRtbD4KKzxib2R5
IG9ubG9hZD0ic3RhcnRUZXN0KCkiPgorCis8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxkaXYg
aWQ9ImNvbnNvbGUiPjwvZGl2PgorCis8c2NyaXB0IHNyYz0iLi4vanMvcmVzb3VyY2VzL2pzLXRl
c3QtcHJlLmpzIj48L3NjcmlwdD4KKworPHNjcmlwdD4KKworZGVzY3JpcHRpb24oIlRoaXMgdGVz
dCBjaGVja3MgdGhhdCBhbiBpZnJhbWUgdGhhdCBtb3ZlcyBiZXR3ZWVuIHBhZ2VzIHdpdGggZGlm
ZmVyZW50IHZpc2liaWxpdHkgd2lsbCBoYXZlIHRoZSBjb3JyZWN0IHZpc2liaWxpdHkgdmFsdWUu
Iik7CisKK3dpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKK3dpbmRvdy5zdWNjZXNzZnVsbHlQ
YXJzZWQgPSBmYWxzZTsKKwordmFyIHdpbmRvdzIsIGlmcmFtZTsKK3ZhciBudW1WaXNpYmlsaXR5
Q2hhbmdlcyA9IDA7CisKK2Z1bmN0aW9uIHdpbmRvdzJMb2FkZWQoKSB7CisgICAgZGVidWcoIldp
bmRvdyAyIExvYWRlZCIpOworCisgICAgaWZyYW1lID0gd2luZG93Mi5kb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgiaWZyYW1lIik7CisKKyAgICBzaG91bGRCZVRydWUoIndpbmRvdy5kb2N1bWVudC53
ZWJraXRJc1Zpc2libGUiKTsKKyAgICBzaG91bGRCZVRydWUoIndpbmRvdzIuZG9jdW1lbnQud2Vi
a2l0SXNWaXNpYmxlIik7CisgICAgc2hvdWxkQmVUcnVlKCJpZnJhbWUuY29udGVudERvY3VtZW50
LndlYmtpdElzVmlzaWJsZSIpOworCisgICAgLy8gQ2hhbmdlIHRoZSB2aXNpYmlsaXR5IG9mIHRo
ZSBjdXJyZW50IHBhZ2UgdG8gaW52aXNpYmxlLgorICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENv
bnRyb2xsZXIpIHsKKyAgICAgICAgbnVtVmlzaWJpbGl0eUNoYW5nZXMrKzsKKyAgICAgICAgd2lu
ZG93LmxheW91dFRlc3RDb250cm9sbGVyLnNldFBhZ2VWaXNpYmlsaXR5KCJoaWRkZW4iKTsKKyAg
ICB9Cit9CisKK2Z1bmN0aW9uIG9uVmlzaWJpbGl0eUNoYW5nZSgpIHsKKyAgICBzaG91bGRCZUZh
bHNlKCJ3aW5kb3cuZG9jdW1lbnQud2Via2l0SXNWaXNpYmxlIik7CisgICAgc2hvdWxkQmVUcnVl
KCJ3aW5kb3cyLmRvY3VtZW50LndlYmtpdElzVmlzaWJsZSIpOworICAgIHNob3VsZEJlVHJ1ZSgi
aWZyYW1lLmNvbnRlbnREb2N1bWVudC53ZWJraXRJc1Zpc2libGUiKTsKKworICAgIHdpbmRvdy5k
b2N1bWVudC5hZG9wdE5vZGUoaWZyYW1lKTsKKyAgICB3aW5kb3cuZG9jdW1lbnQuYm9keS5hcHBl
bmRDaGlsZChpZnJhbWUpOworICAgIGRlYnVnKCJBZG9wdGVkIGlmcmFtZSB0byBXaW5kb3cgMSIp
OworCisgICAgc2hvdWxkQmVGYWxzZSgid2luZG93LmRvY3VtZW50LndlYmtpdElzVmlzaWJsZSIp
OworICAgIHNob3VsZEJlVHJ1ZSgid2luZG93Mi5kb2N1bWVudC53ZWJraXRJc1Zpc2libGUiKTsK
KyAgICBzaG91bGRCZUZhbHNlKCJpZnJhbWUuY29udGVudERvY3VtZW50LndlYmtpdElzVmlzaWJs
ZSIpOworCisgICAgd2luZG93Mi5jbG9zZSgpOworCisgICAgd2luZG93LnN1Y2Nlc3NmdWxseVBh
cnNlZCA9IHRydWU7CisgICAgZmluaXNoVGVzdCgpOworfQorCitmdW5jdGlvbiBzdGFydFRlc3Qo
KSB7CisgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgeworICAgICAgICBsYXlv
dXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7CisgICAgICAgIGxheW91dFRlc3RDb250
cm9sbGVyLnNldENhbk9wZW5XaW5kb3dzKCk7CisgICAgfQorCisgICAgZGVidWcoIldpbmRvdyAx
IExvYWRlZCIpOworICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoIndlYmtpdHZpc2liaWxp
dHlzdGF0ZWNoYW5nZSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvblZpc2liaWxp
dHlDaGFuZ2UsIGZhbHNlKTsKKworICAgIHdpbmRvdzIgPSB3aW5kb3cub3BlbigicmVzb3VyY2Vz
L3BhZ2UtdmlzaWJpbGl0eS1pZnJhbWUtbW92ZS1uZXctcGFnZS5odG1sIik7CisgICAgd2luZG93
Mi5hZGRFdmVudExpc3RlbmVyKCJsb2FkIiwgd2luZG93MkxvYWRlZCwgZmFsc2UpOworfQorCitm
dW5jdGlvbiBmaW5pc2hUZXN0KCkgeworICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xs
ZXIpIHsKKyAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIucmVzZXRQYWdlVmlzaWJpbGl0eSgp
OworICAgIH0KKyAgICBmaW5pc2hKU1Rlc3QoKTsKK30KKworPC9zY3JpcHQ+CisKKzxzY3JpcHQg
c3JjPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKworPC9ib2R5
PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvcGFnZS12aXNp
YmlsaXR5LWlmcmFtZS1wcm9wYWdhdGlvbi10ZXN0LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2Zhc3QvZXZlbnRzL3BhZ2UtdmlzaWJpbGl0eS1pZnJhbWUtcHJvcGFnYXRpb24tdGVzdC1leHBl
Y3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTViNzliYQotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3BhZ2UtdmlzaWJpbGl0eS1p
ZnJhbWUtcHJvcGFnYXRpb24tdGVzdC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwyNyBAQAorVGhp
cyB0ZXN0IGNoZWNrcyB0aGF0IFBhZ2UgVmlzaWJpbGl0eSBzdGF0ZSBldmVudHMgYXJlIHByb3Bh
Z2F0ZWQgdG8gY2hpbGQgZnJhbWVzLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJp
ZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKwor
TWFpbiBQYWdlOgorUEFTUyBkb2N1bWVudC53ZWJraXRWaXNpYmlsaXR5U3RhdGUgaXMgInZpc2li
bGUiCitQQVNTIGRvY3VtZW50LndlYmtpdElzVmlzaWJsZSBpcyB0cnVlCitDaGlsZCBGcmFtZToK
K1BBU1MgY2hpbGRGcmFtZS5jb250ZW50RG9jdW1lbnQud2Via2l0VmlzaWJpbGl0eVN0YXRlIGlz
ICJ2aXNpYmxlIgorUEFTUyBjaGlsZEZyYW1lLmNvbnRlbnREb2N1bWVudC53ZWJraXRJc1Zpc2li
bGUgaXMgdHJ1ZQorTWFpbiBQYWdlOgorUEFTUyBkb2N1bWVudC53ZWJraXRWaXNpYmlsaXR5U3Rh
dGUgaXMgImhpZGRlbiIKK1BBU1MgZG9jdW1lbnQud2Via2l0SXNWaXNpYmxlIGlzIGZhbHNlCitD
aGlsZCBGcmFtZToKK1BBU1MgY2hpbGRGcmFtZS5jb250ZW50RG9jdW1lbnQud2Via2l0VmlzaWJp
bGl0eVN0YXRlIGlzICJoaWRkZW4iCitQQVNTIGNoaWxkRnJhbWUuY29udGVudERvY3VtZW50Lndl
YmtpdElzVmlzaWJsZSBpcyBmYWxzZQorTWFpbiBQYWdlOgorUEFTUyBkb2N1bWVudC53ZWJraXRW
aXNpYmlsaXR5U3RhdGUgaXMgInZpc2libGUiCitQQVNTIGRvY3VtZW50LndlYmtpdElzVmlzaWJs
ZSBpcyB0cnVlCitDaGlsZCBGcmFtZToKK1BBU1MgY2hpbGRGcmFtZS5jb250ZW50RG9jdW1lbnQu
d2Via2l0VmlzaWJpbGl0eVN0YXRlIGlzICJ2aXNpYmxlIgorUEFTUyBjaGlsZEZyYW1lLmNvbnRl
bnREb2N1bWVudC53ZWJraXRJc1Zpc2libGUgaXMgdHJ1ZQorUEFTUyBzdWNjZXNzZnVsbHlQYXJz
ZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zh
c3QvZXZlbnRzL3BhZ2UtdmlzaWJpbGl0eS1pZnJhbWUtcHJvcGFnYXRpb24tdGVzdC5odG1sIGIv
TGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvcGFnZS12aXNpYmlsaXR5LWlmcmFtZS1wcm9wYWdhdGlv
bi10ZXN0Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMmE4YzVkMAot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3BhZ2UtdmlzaWJpbGl0
eS1pZnJhbWUtcHJvcGFnYXRpb24tdGVzdC5odG1sCkBAIC0wLDAgKzEsMTI0IEBACis8aHRtbD4K
Kzxib2R5PgorCis8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwv
ZGl2PgorCis8c2NyaXB0IHNyYz0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3Nj
cmlwdD4KKworPHNjcmlwdD4KKworZGVzY3JpcHRpb24oIlRoaXMgdGVzdCBjaGVja3MgdGhhdCBQ
YWdlIFZpc2liaWxpdHkgc3RhdGUgZXZlbnRzIGFyZSBwcm9wYWdhdGVkIHRvIGNoaWxkIGZyYW1l
cy4iKTsKKword2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOword2luZG93LnN1Y2Nlc3NmdWxs
eVBhcnNlZCA9IGZhbHNlOworCitmdW5jdGlvbiBtYWtlUGFnZVZpc2libGUoKSB7CisgICAgaWYg
KHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xs
ZXIuc2V0UGFnZVZpc2liaWxpdHkoInZpc2libGUiKTsKK30KKworZnVuY3Rpb24gbWFrZVBhZ2VI
aWRkZW4oKSB7CisgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICAgICAg
bGF5b3V0VGVzdENvbnRyb2xsZXIuc2V0UGFnZVZpc2liaWxpdHkoImhpZGRlbiIpOworfQorCitm
dW5jdGlvbiBjaGVja0lzUGFnZVZpc2libGUoKSB7CisgICAgZGVidWcoIk1haW4gUGFnZToiKTsK
KyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoImRvY3VtZW50LndlYmtpdFZpc2liaWxpdHlTdGF0
ZSIsICJ2aXNpYmxlIik7CisgICAgc2hvdWxkQmVUcnVlKCJkb2N1bWVudC53ZWJraXRJc1Zpc2li
bGUiKTsKK30KKworZnVuY3Rpb24gY2hlY2tJc1BhZ2VIaWRkZW4oKSB7CisgICAgZGVidWcoIk1h
aW4gUGFnZToiKTsKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoImRvY3VtZW50LndlYmtpdFZp
c2liaWxpdHlTdGF0ZSIsICJoaWRkZW4iKTsKKyAgICBzaG91bGRCZUZhbHNlKCJkb2N1bWVudC53
ZWJraXRJc1Zpc2libGUiKTsKK30KKworZnVuY3Rpb24gY2hlY2tJc0NoaWxkRnJhbWVWaXNpYmxl
KCkgeworICAgIGRlYnVnKCJDaGlsZCBGcmFtZToiKTsKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJp
bmcoImNoaWxkRnJhbWUuY29udGVudERvY3VtZW50LndlYmtpdFZpc2liaWxpdHlTdGF0ZSIsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICJ2aXNpYmxlIik7CisgICAgc2hvdWxkQmVUcnVlKCJj
aGlsZEZyYW1lLmNvbnRlbnREb2N1bWVudC53ZWJraXRJc1Zpc2libGUiKTsKK30KKworZnVuY3Rp
b24gY2hlY2tJc0NoaWxkRnJhbWVIaWRkZW4oKSB7CisgICAgZGVidWcoIkNoaWxkIEZyYW1lOiIp
OworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygiY2hpbGRGcmFtZS5jb250ZW50RG9jdW1lbnQu
d2Via2l0VmlzaWJpbGl0eVN0YXRlIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgImhpZGRl
biIpOworICAgIHNob3VsZEJlRmFsc2UoImNoaWxkRnJhbWUuY29udGVudERvY3VtZW50LndlYmtp
dElzVmlzaWJsZSIpOworfQorCisvLyBXZSB3aWxsIHRyeSB0byBjaGFuZ2UgdGhlIHZpc2liaWxp
dHkgc3RhdGVzIGFzOgorLy8gIDAgLSB2aXNpYmxlLiAoSW5pdGlhbCAtIGkuZS4gb24gbG9hZCku
CisvLyAgMSAtIGhpZGRlbgorLy8gIDIgLSB2aXNpYmxlCit2YXIgbnVtVmlzaWJpbGl0eUNoYW5n
ZXMgPSAwOworCit2YXIgY2hpbGRGcmFtZTsKKworZnVuY3Rpb24gc3RhcnRUZXN0KCkgeworICAg
IGNoaWxkRnJhbWUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY2hpbGRGcmFtZSIpOworICAg
IGNoaWxkRnJhbWUuY29udGVudERvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoCisgICAgICAgICJ3
ZWJraXR2aXNpYmlsaXR5c3RhdGVjaGFuZ2UiLCBvbkNoaWxkRnJhbWVWaXNpYmlsaXR5Q2hhbmdl
LCBmYWxzZSk7CisgICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigid2Via2l0dmlzaWJpbGl0
eXN0YXRlY2hhbmdlIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uVmlzaWJpbGl0
eUNoYW5nZSwgZmFsc2UpOworCisgICAgY2hlY2tJc1BhZ2VWaXNpYmxlKCk7CisgICAgY2hlY2tJ
c0NoaWxkRnJhbWVWaXNpYmxlKCk7CisKKyAgICBudW1WaXNpYmlsaXR5Q2hhbmdlcysrOworICAg
IG1ha2VQYWdlSGlkZGVuKCk7Cit9CisKK3ZhciBudW1GaW5pc2hlcyA9IDA7CitmdW5jdGlvbiBm
aW5pc2hUZXN0KCkgeworICAgIG51bUZpbmlzaGVzKys7CisgICAgaWYgKG51bUZpbmlzaGVzIDwg
MikgeworICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENv
bnRyb2xsZXIpIHsKKyAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIucmVzZXRQYWdlVmlzaWJp
bGl0eSgpOworICAgIH0KKyAgICBmaW5pc2hKU1Rlc3QoKTsKK30KKworZnVuY3Rpb24gb25WaXNp
YmlsaXR5Q2hhbmdlKCkgeworICAgIGlmIChudW1WaXNpYmlsaXR5Q2hhbmdlcyA9PSAxKSB7Cisg
ICAgICAgIGNoZWNrSXNQYWdlSGlkZGVuKCk7CisgICAgICAgIHJldHVybjsKKyAgICB9IGVsc2Ug
aWYgKG51bVZpc2liaWxpdHlDaGFuZ2VzID09IDIpIHsKKyAgICAgICAgY2hlY2tJc1BhZ2VWaXNp
YmxlKCk7CisgICAgICAgIHdpbmRvdy5zdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOworICAgICAg
ICBmaW5pc2hUZXN0KCk7CisgICAgICAgIHJldHVybjsKKyAgICB9IGVsc2UgeworICAgICAgICB0
ZXN0RmFpbGVkKCJUb28gbWFueSB2aXNpYmlsaXR5IHRyYW5zaXRpb25zIik7CisgICAgICAgIGZp
bmlzaFRlc3QoKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KK30KKworZnVuY3Rpb24gb25DaGls
ZEZyYW1lVmlzaWJpbGl0eUNoYW5nZSgpIHsKKyAgICBpZiAobnVtVmlzaWJpbGl0eUNoYW5nZXMg
PT0gMSkgeworICAgICAgICBjaGVja0lzQ2hpbGRGcmFtZUhpZGRlbigpOworICAgICAgICBudW1W
aXNpYmlsaXR5Q2hhbmdlcysrOworICAgICAgICBtYWtlUGFnZVZpc2libGUoKTsKKyAgICAgICAg
cmV0dXJuOworICAgIH0gZWxzZSBpZiAobnVtVmlzaWJpbGl0eUNoYW5nZXMgPT0gMikgeworICAg
ICAgICBjaGVja0lzQ2hpbGRGcmFtZVZpc2libGUoKTsKKyAgICAgICAgZmluaXNoVGVzdCgpOwor
ICAgICAgICByZXR1cm47CisgICAgfSBlbHNlIHsKKyAgICAgICAgdGVzdEZhaWxlZCgiQ2hpbGQg
RnJhbWU6IFRvbyBtYW55IHZpc2liaWxpdHkgdHJhbnNpdGlvbnMiKTsKKyAgICAgICAgZmluaXNo
VGVzdCgpOworICAgIH0KK30KKzwvc2NyaXB0PgorCis8c2NyaXB0IHNyYz0iLi4vanMvcmVzb3Vy
Y2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+CisKKzxpZnJhbWUgaWQ9ImNoaWxkRnJhbWUi
IG9ubG9hZD0ic3RhcnRUZXN0KCkiPjwvaWZyYW1lPgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvcGFnZS12aXNpYmlsaXR5LXRyYW5zaXRpb24t
dGVzdC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9wYWdlLXZpc2liaWxp
dHktdHJhbnNpdGlvbi10ZXN0LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwLi4yNWE5YjVlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9l
dmVudHMvcGFnZS12aXNpYmlsaXR5LXRyYW5zaXRpb24tdGVzdC1leHBlY3RlZC50eHQKQEAgLTAs
MCArMSwxNyBAQAorVGhpcyB0ZXN0IGNoZWNrcyB0aGF0IFBhZ2UgVmlzaWJpbGl0eSBzdGF0ZSB2
YWx1ZXMgYXJlIGNvcnJlY3QgYW5kIHRoZSBldmVudCBjaGFuZ2VzIGFyZSBmaXJlZCBjb3JyZWN0
bHkuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2Fn
ZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIGRvY3VtZW50LndlYmtp
dFZpc2liaWxpdHlTdGF0ZSBpcyAidmlzaWJsZSIKK1BBU1MgZG9jdW1lbnQud2Via2l0SXNWaXNp
YmxlIGlzIHRydWUKK1BBU1MgZG9jdW1lbnQud2Via2l0VmlzaWJpbGl0eVN0YXRlIGlzICJoaWRk
ZW4iCitQQVNTIGRvY3VtZW50LndlYmtpdElzVmlzaWJsZSBpcyBmYWxzZQorUEFTUyBkb2N1bWVu
dC53ZWJraXRWaXNpYmlsaXR5U3RhdGUgaXMgImhpZGRlbiIKK1BBU1MgZG9jdW1lbnQud2Via2l0
SXNWaXNpYmxlIGlzIGZhbHNlCitQQVNTIGRvY3VtZW50LndlYmtpdFZpc2liaWxpdHlTdGF0ZSBp
cyAidmlzaWJsZSIKK1BBU1MgZG9jdW1lbnQud2Via2l0SXNWaXNpYmxlIGlzIHRydWUKK1BBU1Mg
c3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9wYWdlLXZpc2liaWxpdHktdHJhbnNpdGlvbi10ZXN0
Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9wYWdlLXZpc2liaWxpdHktdHJhbnNpdGlv
bi10ZXN0Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODE0NTA4ZQot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3BhZ2UtdmlzaWJpbGl0
eS10cmFuc2l0aW9uLXRlc3QuaHRtbApAQCAtMCwwICsxLDg4IEBACis8aHRtbD4KKzxib2R5IG9u
bG9hZD0nc3RhcnRUZXN0KCknPgorCis8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxkaXYgaWQ9
ImNvbnNvbGUiPjwvZGl2PgorCis8c2NyaXB0IHNyYz0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3Qt
cHJlLmpzIj48L3NjcmlwdD4KKworPHNjcmlwdD4KKworZGVzY3JpcHRpb24oIlRoaXMgdGVzdCBj
aGVja3MgdGhhdCBQYWdlIFZpc2liaWxpdHkgc3RhdGUgdmFsdWVzIGFyZSBjb3JyZWN0IGFuZCB0
aGUgZXZlbnQgY2hhbmdlcyBhcmUgZmlyZWQgY29ycmVjdGx5LiIpOworCit3aW5kb3cuanNUZXN0
SXNBc3luYyA9IHRydWU7Cit3aW5kb3cuc3VjY2Vzc2Z1bGx5UGFyc2VkID0gZmFsc2U7CisKK2Z1
bmN0aW9uIG1ha2VQYWdlVmlzaWJsZSgpIHsKKyAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250
cm9sbGVyKQorICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5zZXRQYWdlVmlzaWJpbGl0eSgi
dmlzaWJsZSIpOworfQorCitmdW5jdGlvbiBtYWtlUGFnZUhpZGRlbigpIHsKKyAgICBpZiAod2lu
ZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5z
ZXRQYWdlVmlzaWJpbGl0eSgiaGlkZGVuIik7Cit9CisKK2Z1bmN0aW9uIGNoZWNrSXNQYWdlVmlz
aWJsZSgpIHsKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoImRvY3VtZW50LndlYmtpdFZpc2li
aWxpdHlTdGF0ZSIsICJ2aXNpYmxlIik7CisgICAgc2hvdWxkQmVUcnVlKCJkb2N1bWVudC53ZWJr
aXRJc1Zpc2libGUiKTsKK30KKworZnVuY3Rpb24gY2hlY2tJc1BhZ2VIaWRkZW4oKSB7CisgICAg
c2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJkb2N1bWVudC53ZWJraXRWaXNpYmlsaXR5U3RhdGUiLCAi
aGlkZGVuIik7CisgICAgc2hvdWxkQmVGYWxzZSgiZG9jdW1lbnQud2Via2l0SXNWaXNpYmxlIik7
Cit9CisKKy8vIFdlIHdpbGwgdHJ5IHRvIGNoYW5nZSB0aGUgdmlzaWJpbGl0eSBzdGF0ZXMgYXM6
CisvLyAgMCAtIHZpc2libGUuIChJbml0aWFsIC0gaS5lLiBvbiBsb2FkKS4KKy8vICAxIC0gaGlk
ZGVuIChzaG91bGQgZmlyZSBldmVudCkuCisvLyAgMiAtIGhpZGRlbiAobm8gZXZlbnQpLgorLy8g
IDMgLSB2aXNpYmxlIChzaG91bGQgZmlyZSBldmVudCkuCit2YXIgbnVtVmlzaWJpbGl0eUNoYW5n
ZXMgPSAwOworCitmdW5jdGlvbiBzdGFydFRlc3QoKSB7CisgICAgZG9jdW1lbnQuYWRkRXZlbnRM
aXN0ZW5lcigKKyAgICAgICAgIndlYmtpdHZpc2liaWxpdHlzdGF0ZWNoYW5nZSIsIG9uVmlzaWJp
bGl0eUNoYW5nZSwgZmFsc2UpOworICAgIGNoZWNrSXNQYWdlVmlzaWJsZSgpOworICAgIG51bVZp
c2liaWxpdHlDaGFuZ2VzKys7CisgICAgbWFrZVBhZ2VIaWRkZW4oKTsKK30KKworZnVuY3Rpb24g
ZmluaXNoVGVzdCgpIHsKKyAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7Cisg
ICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLnJlc2V0UGFnZVZpc2liaWxpdHkoKTsKKyAgICB9
CisgICAgZmluaXNoSlNUZXN0KCk7Cit9CisKK2Z1bmN0aW9uIG9uVmlzaWJpbGl0eUNoYW5nZSgp
IHsKKyAgICBpZiAobnVtVmlzaWJpbGl0eUNoYW5nZXMgPT0gMSkgeworICAgICAgICBjaGVja0lz
UGFnZUhpZGRlbigpOworICAgICAgICBudW1WaXNpYmlsaXR5Q2hhbmdlcysrOworICAgICAgICBt
YWtlUGFnZUhpZGRlbigpOworICAgICAgICBjaGVja0lzUGFnZUhpZGRlbigpOworICAgICAgICBu
dW1WaXNpYmlsaXR5Q2hhbmdlcysrOworICAgICAgICBtYWtlUGFnZVZpc2libGUoKTsKKyAgICAg
ICAgcmV0dXJuOworICAgIH0gZWxzZSBpZiAobnVtVmlzaWJpbGl0eUNoYW5nZXMgPT0gMikgewor
ICAgICAgICB0ZXN0RmFpbGVkKCJJbnZhbGlkIGV2ZW50IGZpcmVkIG9uIHNhbWUgc3RhdGUgY2hh
bmdlLiIpOworICAgICAgICBmaW5pc2hUZXN0KCk7CisgICAgICAgIHJldHVybjsKKyAgICB9IGVs
c2UgaWYgKG51bVZpc2liaWxpdHlDaGFuZ2VzID09IDMpIHsKKyAgICAgICAgY2hlY2tJc1BhZ2VW
aXNpYmxlKCk7CisgICAgICAgIG51bVZpc2liaWxpdHlDaGFuZ2VzKys7CisgICAgICAgIHdpbmRv
dy5zdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOworICAgICAgICBmaW5pc2hUZXN0KCk7CisgICAg
ICAgIHJldHVybjsKKyAgICB9IGVsc2UgeworICAgICAgICB0ZXN0RmFpbGVkKCJUb28gbWFueSB2
aXNpYmlsaXR5IHRyYW5zaXRpb25zIik7CisgICAgICAgIGZpbmlzaFRlc3QoKTsKKyAgICAgICAg
cmV0dXJuOworICAgIH0KK30KKzwvc2NyaXB0PgorCis8c2NyaXB0IHNyYz0iLi4vanMvcmVzb3Vy
Y2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+CisKKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3Jlc291cmNlcy9wYWdlLXZpc2liaWxpdHkt
aWZyYW1lLWRlbGV0ZS10ZXN0LWZyYW1lLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9y
ZXNvdXJjZXMvcGFnZS12aXNpYmlsaXR5LWlmcmFtZS1kZWxldGUtdGVzdC1mcmFtZS5odG1sCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmZlYmI5NTQKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9yZXNvdXJjZXMvcGFnZS12aXNpYmlsaXR5LWlm
cmFtZS1kZWxldGUtdGVzdC1mcmFtZS5odG1sCkBAIC0wLDAgKzEsNiBAQAorPGh0bWw+Cis8Ym9k
eSBvbmxvYWQ9InBhcmVudC5zdGFydFRlc3QoKSI+Cis8aWZyYW1lIGlkPSJzdWJJZnJhbWUxIiBv
bmxvYWQ9InBhcmVudC5wYXJlbnQuc3RhcnRUZXN0KCkiPjwvaWZyYW1lPgorPGlmcmFtZSBpZD0i
c3ViSWZyYW1lMiIgb25sb2FkPSJwYXJlbnQucGFyZW50LnN0YXJ0VGVzdCgpIj48L2lmcmFtZT4K
KzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3Jl
c291cmNlcy9wYWdlLXZpc2liaWxpdHktaWZyYW1lLW1vdmUtbmV3LXBhZ2UuaHRtbCBiL0xheW91
dFRlc3RzL2Zhc3QvZXZlbnRzL3Jlc291cmNlcy9wYWdlLXZpc2liaWxpdHktaWZyYW1lLW1vdmUt
bmV3LXBhZ2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42ZDI4Y2Nj
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvcmVzb3VyY2VzL3Bh
Z2UtdmlzaWJpbGl0eS1pZnJhbWUtbW92ZS1uZXctcGFnZS5odG1sCkBAIC0wLDAgKzEsNSBAQAor
PGh0bWw+Cis8Ym9keT4KKzxpZnJhbWUgaWQ9ImlmcmFtZSI+PC9pZnJhbWU+Cis8L2JvZHk+Cis8
L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvU2tpcHBlZCBiL0xh
eW91dFRlc3RzL3BsYXRmb3JtL2d0ay9Ta2lwcGVkCmluZGV4IGFhMjFhNzQuLjY4M2I1NDAgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9Ta2lwcGVkCisrKyBiL0xheW91dFRl
c3RzL3BsYXRmb3JtL2d0ay9Ta2lwcGVkCkBAIC0xNDEyLDMgKzE0MTIsNyBAQCB0YWJsZXMvbW96
aWxsYV9leHBlY3RlZF9mYWlsdXJlcy9idWdzL2J1Zzg1MDE2Lmh0bWwKICMgSFRUUCAyMDQgKE5v
IENvbnRlbnQpIHNob3VsZCBiZSBpZ25vcmVkCiAjIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD02MDIwNgogaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL3Jlc3BvbnNlMjA0Lmh0
bWwKKworIyBUaGlzIHBsYXRmb3JtIGRvZXMgbm90IHN1cHBvcnQgdGhlIFBhZ2UgVmlzaWJpbGl0
eSBBUEkuCitmYXN0L2V2ZW50cy9wYWdlLXZpc2liaWxpdHktaWZyYW1lLXRlc3QuaHRtbAorZmFz
dC9ldmVudHMvcGFnZS12aXNpYmlsaXR5LXRyYW5zaXRpb24tdGVzdC5odG1sCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvU2tpcHBlZCBiL0xheW91dFRlc3RzL3BsYXRmb3Jt
L21hYy9Ta2lwcGVkCmluZGV4IDRmNGMyMTcuLjM2ODZjYjQgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL3BsYXRmb3JtL21hYy9Ta2lwcGVkCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9T
a2lwcGVkCkBAIC0zNTEsMyArMzUxLDcgQEAgYW5pbWF0aW9ucy9hbmltYXRpb24tYXBpLTEuaHRt
bAogIyBIVFRQIDIwNCAoTm8gQ29udGVudCkgc2hvdWxkIGJlIGlnbm9yZWQKICMgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTYwMjA2CiBodHRwL3Rlc3RzL25hdmlnYXRp
b24vcmVzcG9uc2UyMDQuaHRtbAorCisjIFRoaXMgcGxhdGZvcm0gZG9lcyBub3Qgc3VwcG9ydCB0
aGUgUGFnZSBWaXNpYmlsaXR5IEFQSS4KK2Zhc3QvZXZlbnRzL3BhZ2UtdmlzaWJpbGl0eS1pZnJh
bWUtdGVzdC5odG1sCitmYXN0L2V2ZW50cy9wYWdlLXZpc2liaWxpdHktdHJhbnNpdGlvbi10ZXN0
Lmh0bWwKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0L1NraXBwZWQgYi9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9xdC9Ta2lwcGVkCmluZGV4IGU1ZDJjMjcuLjdjMTBlZDIgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0L1NraXBwZWQKKysrIGIvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vcXQvU2tpcHBlZApAQCAtMjY5NiwzICsyNjk2LDcgQEAgaHR0cC90ZXN0cy9zZWN1
cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvbWVkaWEtc3JjLWJsb2NrZWQuaHRtbAogCiAjIEFu
aW1hdGlvbiBBUEkgaXMgZGlzYWJsZWQgYnkgZGVmYXVsdAogYW5pbWF0aW9ucy9hbmltYXRpb24t
YXBpLTEuaHRtbAorCisjIFRoaXMgcGxhdGZvcm0gZG9lcyBub3Qgc3VwcG9ydCB0aGUgUGFnZSBW
aXNpYmlsaXR5IEFQSS4KK2Zhc3QvZXZlbnRzL3BhZ2UtdmlzaWJpbGl0eS1pZnJhbWUtdGVzdC5o
dG1sCitmYXN0L2V2ZW50cy9wYWdlLXZpc2liaWxpdHktdHJhbnNpdGlvbi10ZXN0Lmh0bWwKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9Ta2lwcGVkIGIvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vd2luL1NraXBwZWQKaW5kZXggOTA3NmYwYS4uZWM1ZTEwNCAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1NraXBwZWQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vd2luL1NraXBwZWQKQEAgLTEyODIsMyArMTI4Miw3IEBAIGFuaW1hdGlvbnMvYW5pbWF0aW9u
LWFwaS0xLmh0bWwKICMgSFRUUCAyMDQgKE5vIENvbnRlbnQpIHNob3VsZCBiZSBpZ25vcmVkCiAj
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02MDIwNgogaHR0cC90ZXN0
cy9uYXZpZ2F0aW9uL3Jlc3BvbnNlMjA0Lmh0bWwKKworIyBUaGlzIHBsYXRmb3JtIGRvZXMgbm90
IHN1cHBvcnQgdGhlIFBhZ2UgVmlzaWJpbGl0eSBBUEkuCitmYXN0L2V2ZW50cy9wYWdlLXZpc2li
aWxpdHktaWZyYW1lLXRlc3QuaHRtbAorZmFzdC9ldmVudHMvcGFnZS12aXNpYmlsaXR5LXRyYW5z
aXRpb24tdGVzdC5odG1sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4
dCBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CmluZGV4IGQxYWZkNjUuLjkyZDA5Yjkg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9X
ZWJDb3JlL0NNYWtlTGlzdHMudHh0CkBAIC0xMDExLDYgKzEwMTEsNyBAQCBTRVQoV2ViQ29yZV9T
T1VSQ0VTCiAgICAgcGFnZS9QYWdlR3JvdXAuY3BwCiAgICAgcGFnZS9QYWdlR3JvdXBMb2FkRGVm
ZXJyZXIuY3BwCiAgICAgcGFnZS9QYWdlU2VyaWFsaXplci5jcHAKKyAgICBwYWdlL1BhZ2VWaXNp
YmlsaXR5U3RhdGUuY3BwCiAgICAgcGFnZS9QZXJmb3JtYW5jZS5jcHAKICAgICBwYWdlL1BlcmZv
cm1hbmNlTmF2aWdhdGlvbi5jcHAKICAgICBwYWdlL1BlcmZvcm1hbmNlVGltaW5nLmNwcApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCmluZGV4IGViYzZlNjQuLmYxNDZlNzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0MSBAQAor
MjAxMS0wNS0wNCAgU2hpc2hpciBBZ3Jhd2FsICA8c2hpc2hpckBjaHJvbWl1bS5vcmc+CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSW1wbGVtZW50IFBh
Z2UgVmlzaWJpbGl0eSBBUEkuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD01NDE4MQorCisgICAgICAgIFRlc3RzOiBmYXN0L2V2ZW50cy9wYWdlLXZpc2li
aWxpdHktaWZyYW1lLWRlbGV0ZS10ZXN0Lmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QvZXZlbnRz
L3BhZ2UtdmlzaWJpbGl0eS1pZnJhbWUtbW92ZS10ZXN0Lmh0bWwKKyAgICAgICAgICAgICAgIGZh
c3QvZXZlbnRzL3BhZ2UtdmlzaWJpbGl0eS1pZnJhbWUtcHJvcGFnYXRpb24tdGVzdC5odG1sCisg
ICAgICAgICAgICAgICBmYXN0L2V2ZW50cy9wYWdlLXZpc2liaWxpdHktdHJhbnNpdGlvbi10ZXN0
Lmh0bWwKKworICAgICAgICAqIENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIEdOVW1ha2VmaWxl
Lmxpc3QuYW06CisgICAgICAgICogV2ViQ29yZS5neXBpOgorICAgICAgICAqIFdlYkNvcmUucHJv
OgorICAgICAgICAqIFdlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qOgorICAgICAgICAqIFdl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBkb20vRG9jdW1lbnQu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OnZpc2liaWxpdHlTdGF0ZSk6CisgICAg
ICAgIChXZWJDb3JlOjpEb2N1bWVudDo6d2Via2l0VmlzaWJpbGl0eVN0YXRlKToKKyAgICAgICAg
KFdlYkNvcmU6OkRvY3VtZW50Ojp3ZWJraXRJc1Zpc2libGUpOgorICAgICAgICAoV2ViQ29yZTo6
RG9jdW1lbnQ6OmRpc3BhdGNoVmlzaWJpbGl0eVN0YXRlQ2hhbmdlRXZlbnQpOgorICAgICAgICAq
IGRvbS9Eb2N1bWVudC5oOgorICAgICAgICAqIGRvbS9Eb2N1bWVudC5pZGw6CisgICAgICAgICog
ZG9tL0V2ZW50TmFtZXMuaDoKKyAgICAgICAgKiBwYWdlL0ZyYW1lLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkZyYW1lOjpkaXNwYXRjaFZpc2liaWxpdHlTdGF0ZUNoYW5nZUV2ZW50KToKKyAgICAg
ICAgKiBwYWdlL0ZyYW1lLmg6CisgICAgICAgICogcGFnZS9QYWdlLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlBhZ2U6OlBhZ2UpOgorICAgICAgICAoV2ViQ29yZTo6UGFnZTo6c2V0VmlzaWJpbGl0
eVN0YXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2U6OnZpc2liaWxpdHlTdGF0ZSk6CisgICAg
ICAgICogcGFnZS9QYWdlLmg6CisgICAgICAgICogcGFnZS9QYWdlVmlzaWJpbGl0eVN0YXRlLmNw
cDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpHZXRQYWdlVmlzaWJpbGl0eVN0YXRlU3RyaW5n
KToKKyAgICAgICAgKiBwYWdlL1BhZ2VWaXNpYmlsaXR5U3RhdGUuaDogQWRkZWQuCisKIDIwMTEt
MDUtMDMgIEplciBOb2JsZSAgPGplci5ub2JsZUBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3
ZWQgYnkgQW50dGkgS29pdmlzdG8uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtl
ZmlsZS5saXN0LmFtIGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQppbmRleCA4
MjVkZTRkLi45MmVhMTEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5s
aXN0LmFtCisrKyBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KQEAgLTIyMjAs
NiArMjIyMCw4IEBAIHdlYmNvcmVfc291cmNlcyArPSBcCiAJU291cmNlL1dlYkNvcmUvcGFnZS9Q
YWdlR3JvdXBMb2FkRGVmZXJyZXIuaCBcCiAJU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlU2VyaWFs
aXplci5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZVNlcmlhbGl6ZXIuaCBcCisJU291
cmNlL1dlYkNvcmUvcGFnZS9QYWdlVmlzaWJpbGl0eVN0YXRlLmNwcCBcCisJU291cmNlL1dlYkNv
cmUvcGFnZS9QYWdlVmlzaWJpbGl0eVN0YXRlLmggXAogCVNvdXJjZS9XZWJDb3JlL3BhZ2UvUGVy
Zm9ybWFuY2UuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9wYWdlL1BlcmZvcm1hbmNlLmggXAogCVNv
dXJjZS9XZWJDb3JlL3BhZ2UvUGVyZm9ybWFuY2VOYXZpZ2F0aW9uLmNwcCBcCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5
cGkKaW5kZXggYmI0YTNmYS4uZmU3YTAxZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS5neXBpCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQpAQCAtNzExLDYgKzcx
MSw3IEBACiAgICAgICAgICAgICAncGFnZS9QYWdlLmgnLAogICAgICAgICAgICAgJ3BhZ2UvUGFn
ZUdyb3VwLmgnLAogICAgICAgICAgICAgJ3BhZ2UvUGFnZVNlcmlhbGl6ZXIuaCcsCisgICAgICAg
ICAgICAncGFnZS9QYWdlVmlzaWJpbGl0eVN0YXRlLmgnLAogICAgICAgICAgICAgJ3BhZ2UvUGx1
Z2luSGFsdGVyQ2xpZW50LmgnLAogICAgICAgICAgICAgJ3BhZ2UvUG9zaXRpb25DYWxsYmFjay5o
JywKICAgICAgICAgICAgICdwYWdlL1Bvc2l0aW9uRXJyb3IuaCcsCkBAIC0zNDM0LDYgKzM0MzUs
NyBAQAogICAgICAgICAgICAgJ3BhZ2UvUGFnZUdyb3VwTG9hZERlZmVycmVyLmNwcCcsCiAgICAg
ICAgICAgICAncGFnZS9QYWdlR3JvdXBMb2FkRGVmZXJyZXIuaCcsCiAgICAgICAgICAgICAncGFn
ZS9QYWdlU2VyaWFsaXplci5jcHAnLAorICAgICAgICAgICAgJ3BhZ2UvUGFnZVZpc2liaWxpdHlT
dGF0ZS5jcHAnLAogICAgICAgICAgICAgJ3BhZ2UvUGVyZm9ybWFuY2UuY3BwJywKICAgICAgICAg
ICAgICdwYWdlL1BlcmZvcm1hbmNlLmgnLAogICAgICAgICAgICAgJ3BhZ2UvUGVyZm9ybWFuY2VO
YXZpZ2F0aW9uLmNwcCcsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnBybyBi
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUucHJvCmluZGV4IGYwYmFiYmMuLjg3ZjUxZjYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUucHJvCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUucHJvCkBAIC05MjEsNiArOTIxLDcgQEAgU09VUkNFUyArPSBcCiAgICAgcGFnZS9QYWdl
R3JvdXAuY3BwIFwKICAgICBwYWdlL1BhZ2VHcm91cExvYWREZWZlcnJlci5jcHAgXAogICAgIHBh
Z2UvUGFnZVNlcmlhbGl6ZXIuY3BwIFwKKyAgICBwYWdlL1BhZ2VWaXNpYmlsaXR5U3RhdGUuY3Bw
IFwKICAgICBwYWdlL1BlcmZvcm1hbmNlLmNwcCBcCiAgICAgcGFnZS9QZXJmb3JtYW5jZU5hdmln
YXRpb24uY3BwIFwKICAgICBwYWdlL1BlcmZvcm1hbmNlVGltaW5nLmNwcCBcCkBAIC0xODYxLDYg
KzE4NjIsNyBAQCBIRUFERVJTICs9IFwKICAgICBwYWdlL1BhZ2VHcm91cExvYWREZWZlcnJlci5o
IFwKICAgICBwYWdlL1BhZ2UuaCBcCiAgICAgcGFnZS9QYWdlU2VyaWFsaXplci5oIFwKKyAgICBw
YWdlL1BhZ2VWaXNpYmlsaXR5U3RhdGUuaCBcCiAgICAgcGFnZS9QbHVnaW5IYWx0ZXIuaCBcCiAg
ICAgcGFnZS9QbHVnaW5IYWx0ZXJDbGllbnQuaCBcCiAgICAgcGFnZS9QcmludENvbnRleHQuaCBc
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJv
aiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCmluZGV4IDcy
ZWQ3ODEuLjQ1Y2EzZWYgMTAwNzU1Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9q
L1dlYkNvcmUudmNwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNv
cmUudmNwcm9qCkBAIC0yNDc1MCw2ICsyNDc1MCwxMiBAQAogCQkJCT4KIAkJCTwvRmlsZT4KIAkJ
CTxGaWxlCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxwYWdlXFBhZ2VWaXNpYmlsaXR5U3RhdGUuY3Bw
IgorCQkJCT4KKwkJCTxGaWxlCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxwYWdlXFBhZ2VWaXNpYmls
aXR5U3RhdGUuaCIKKwkJCQk+CisJCQk8RmlsZQogCQkJCVJlbGF0aXZlUGF0aD0iLi5ccGFnZVxQ
ZXJmb3JtYW5jZS5jcHAiCiAJCQkJPgogCQkJPC9GaWxlPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGE3M2EzNTQuLjUzMzQzMDYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oKQEAgLTU5MjQsNiArNTkyNCw4IEBACiAJCUZFODBEQTY2MEU5QzQ3MDMwMDBENkY3NSAvKiBK
U0dlb3Bvc2l0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBGRTgwREE2MjBFOUM0NzAzMDAwRDZGNzUgLyogSlNHZW9wb3NpdGlvbi5oICovOyB9Owog
CQlGRTgwREE3MTBFOUM0NzJGMDAwRDZGNzUgLyogSlNQb3NpdGlvbkVycm9yLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEZFODBEQTZEMEU5QzQ3MkYw
MDBENkY3NSAvKiBKU1Bvc2l0aW9uRXJyb3IuY3BwICovOyB9OwogCQlGRTgwREE3MjBFOUM0NzJG
MDAwRDZGNzUgLyogSlNQb3NpdGlvbkVycm9yLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBGRTgwREE2RTBFOUM0NzJGMDAwRDZGNzUgLyogSlNQb3NpdGlv
bkVycm9yLmggKi87IH07CisJCUZGRDVCOTdBMTM1Q0M5NzgwMEQ1RTkyQSAvKiBQYWdlVmlzaWJp
bGl0eVN0YXRlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEZGRDVCOTc3MTM1Q0M5NzgwMEQ1RTkyQSAvKiBQYWdlVmlzaWJpbGl0eVN0YXRlLmNwcCAq
LzsgfTsKKwkJRkZENUI5N0IxMzVDQzk3ODAwRDVFOTJBIC8qIFBhZ2VWaXNpYmlsaXR5U3RhdGUu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEZGRDVCOTc4
MTM1Q0M5NzgwMEQ1RTkyQSAvKiBQYWdlVmlzaWJpbGl0eVN0YXRlLmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIC8qIEVuZCBQQlhCdWlsZEZpbGUgc2Vj
dGlvbiAqLwogCiAvKiBCZWdpbiBQQlhDb250YWluZXJJdGVtUHJveHkgc2VjdGlvbiAqLwpAQCAt
MTI0NDMsNiArMTI0NDUsOCBAQAogCQlGRTgwREE2MjBFOUM0NzAzMDAwRDZGNzUgLyogSlNHZW9w
b3NpdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU0dlb3Bvc2l0aW9u
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUZFODBEQTZEMEU5QzQ3MkYwMDBENkY3
NSAvKiBKU1Bvc2l0aW9uRXJyb3IuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gSlNQb3NpdGlvbkVycm9yLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
RkU4MERBNkUwRTlDNDcyRjAwMEQ2Rjc1IC8qIEpTUG9zaXRpb25FcnJvci5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBKU1Bvc2l0aW9uRXJyb3IuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJRkZENUI5NzcxMzVDQzk3ODAwRDVFOTJBIC8qIFBhZ2VWaXNpYmlsaXR5
U3RhdGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUGFnZVZpc2li
aWxpdHlTdGF0ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUZGRDVCOTc4MTM1
Q0M5NzgwMEQ1RTkyQSAvKiBQYWdlVmlzaWJpbGl0eVN0YXRlLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFBhZ2VWaXNpYmlsaXR5U3RhdGUuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIC8qIEVuZCBQQlhGaWxlUmVmZXJlbmNlIHNlY3Rpb24gKi8KIAogLyogQmVnaW4g
UEJYRnJhbWV3b3Jrc0J1aWxkUGhhc2Ugc2VjdGlvbiAqLwpAQCAtMTQxNjgsNiArMTQxNzIsOCBA
QAogCQkJCTdBNjc0QkRBMEY5RUJGNEUwMDZDRjA5OSAvKiBQYWdlR3JvdXBMb2FkRGVmZXJyZXIu
aCAqLywKIAkJCQkzNzFFNjVDRDEzNjYxRUVEMDBCRUVEQjAgLyogUGFnZVNlcmlhbGl6ZXIuY3Bw
ICovLAogCQkJCTM3MUU2NUNCMTM2NjFFREMwMEJFRURCMCAvKiBQYWdlU2VyaWFsaXplci5oICov
LAorCQkJCUZGRDVCOTc3MTM1Q0M5NzgwMEQ1RTkyQSAvKiBQYWdlVmlzaWJpbGl0eVN0YXRlLmNw
cCAqLywKKwkJCQlGRkQ1Qjk3ODEzNUNDOTc4MDBENUU5MkEgLyogUGFnZVZpc2liaWxpdHlTdGF0
ZS5oICovLAogCQkJCThBODQ0RDAxMTFEM0MxOEUwMDE0MDY1QyAvKiBQZXJmb3JtYW5jZS5jcHAg
Ki8sCiAJCQkJOEE4NDREMDIxMUQzQzE4RTAwMTQwNjVDIC8qIFBlcmZvcm1hbmNlLmggKi8sCiAJ
CQkJOEE4NDREMDMxMUQzQzE4RTAwMTQwNjVDIC8qIFBlcmZvcm1hbmNlLmlkbCAqLywKQEAgLTIx
ODY5LDYgKzIxODc1LDcgQEAKIAkJCQlGMzQ3NDJFNTEzNDM2MzNDMDA1MzFCQzIgLyogUGFnZVNj
cmlwdERlYnVnU2VydmVyLmggaW4gSGVhZGVycyAqLywKIAkJCQkzNzFFNjVDQzEzNjYxRURDMDBC
RUVEQjAgLyogUGFnZVNlcmlhbGl6ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUUxMjg0QUUxMTA0
NDdENDUwMEVBRUI1MiAvKiBQYWdlVHJhbnNpdGlvbkV2ZW50LmggaW4gSGVhZGVycyAqLywKKwkJ
CQlGRkQ1Qjk3QjEzNUNDOTc4MDBENUU5MkEgLyogUGFnZVZpc2liaWxpdHlTdGF0ZS5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJNTFFMUVDQzMwQzkxQzkwNDAwREMyNTVCIC8qIFBhZ2VVUkxSZWNvcmQu
aCBpbiBIZWFkZXJzICovLAogCQkJCTA4ODUwNjdGMTFEQTA0NUIwMDE4MkI5OCAvKiBQYWludElu
Zm8uaCBpbiBIZWFkZXJzICovLAogCQkJCTA4ODUwNjgwMTFEQTA0NUIwMDE4MkI5OCAvKiBQYWlu
dFBoYXNlLmggaW4gSGVhZGVycyAqLywKQEAgLTI0NzM0LDYgKzI0NzQxLDcgQEAKIAkJCQkzNzFF
NjVDRTEzNjYxRUVEMDBCRUVEQjAgLyogUGFnZVNlcmlhbGl6ZXIuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJRTEyODRBRUExMDQ0N0RFRTAwRUFFQjUyIC8qIFBhZ2VUcmFuc2l0aW9uRXZlbnQuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJNTFFMUVDQzIwQzkxQzkwNDAwREMyNTVCIC8qIFBhZ2VVUkxS
ZWNvcmQuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJRkZENUI5N0ExMzVDQzk3ODAwRDVFOTJBIC8q
IFBhZ2VWaXNpYmlsaXR5U3RhdGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRkQzMTYwQTIxMkIw
MjZGNzAwQzFBMzU5IC8qIFBhbm5lci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlGNTVCM0RDOTEy
NTFGMTJEMDAzRUYyNjkgLyogUGFzc3dvcmRJbnB1dFR5cGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJNEIyNzA5ODMwQUYyRTVFMDAwNjUxMjdGIC8qIFBhc3RlYm9hcmRNYWMubW0gaW4gU291cmNl
cyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCmluZGV4IDViY2VhNzMuLjM0YmNkZmQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvZG9tL0RvY3VtZW50LmNwcApAQCAtMTM1NCw2ICsxMzU0LDM0IEBAIHZvaWQgRG9jdW1lbnQ6
OnJlbW92ZVRpdGxlKEVsZW1lbnQqIHRpdGxlRWxlbWVudCkKICAgICAgICAgdXBkYXRlVGl0bGUo
U3RyaW5nV2l0aERpcmVjdGlvbigpKTsKIH0KIAorI2lmIEVOQUJMRShQQUdFX1ZJU0lCSUxJVFlf
QVBJKQorUGFnZVZpc2liaWxpdHlTdGF0ZSBEb2N1bWVudDo6dmlzaWJpbGl0eVN0YXRlKCkgY29u
c3QKK3sKKyAgICAvLyBUaGUgdmlzaWJpbGl0eSBvZiB0aGUgZG9jdW1lbnQgaXMgaW5oZXJpdGVk
IGZyb20gdGhlIHZpc2liaWxpdHkgb2YgdGhlCisgICAgLy8gcGFnZS4gSWYgdGhlcmUgaXMgbm8g
cGFnZSBhc3NvY2lhdGVkIHdpdGggdGhlIGRvY3VtZW50LCB3ZSB3aWxsIGFzc3VtZQorICAgIC8v
IHRoYXQgdGhlIHBhZ2UgaXMgdmlzaWJsZSBpLmUuIGludmlzaWJpbGl0eSBoYXMgdG8gYmUgZXhw
bGljaXRseQorICAgIC8vIHNwZWNpZmllZCBieSB0aGUgZW1iZWRkZXIuCisgICAgaWYgKCFtX2Zy
YW1lIHx8ICFtX2ZyYW1lLT5wYWdlKCkpCisgICAgICAgIHJldHVybiBQYWdlVmlzaWJpbGl0eVN0
YXRlVmlzaWJsZTsKKyAgICByZXR1cm4gbV9mcmFtZS0+cGFnZSgpLT52aXNpYmlsaXR5U3RhdGUo
KTsKK30KKworU3RyaW5nIERvY3VtZW50Ojp3ZWJraXRWaXNpYmlsaXR5U3RhdGUoKSBjb25zdAor
eworICAgIHJldHVybiBHZXRQYWdlVmlzaWJpbGl0eVN0YXRlU3RyaW5nKHZpc2liaWxpdHlTdGF0
ZSgpKTsKK30KKworYm9vbCBEb2N1bWVudDo6d2Via2l0SXNWaXNpYmxlKCkgY29uc3QKK3sKKyAg
ICByZXR1cm4gdmlzaWJpbGl0eVN0YXRlKCkgPT0gUGFnZVZpc2liaWxpdHlTdGF0ZVZpc2libGU7
Cit9CisKK3ZvaWQgRG9jdW1lbnQ6OmRpc3BhdGNoVmlzaWJpbGl0eVN0YXRlQ2hhbmdlRXZlbnQo
KQoreworICAgIGRpc3BhdGNoRXZlbnQoRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCkud2Via2l0
dmlzaWJpbGl0eXN0YXRlY2hhbmdlRXZlbnQsIGZhbHNlLCBmYWxzZSkpOworfQorI2VuZGlmCisK
IFN0cmluZyBEb2N1bWVudDo6bm9kZU5hbWUoKSBjb25zdAogewogICAgIHJldHVybiAiI2RvY3Vt
ZW50IjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oIGIvU291cmNl
L1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKaW5kZXggMjMxNWU3OS4uNzFiN2FmNyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9t
L0RvY3VtZW50LmgKQEAgLTM0LDYgKzM0LDcgQEAKICNpbmNsdWRlICJET01UaW1lU3RhbXAuaCIK
ICNpbmNsdWRlICJEb2N1bWVudFRpbWluZy5oIgogI2luY2x1ZGUgIkljb25VUkwuaCIKKyNpbmNs
dWRlICJQYWdlVmlzaWJpbGl0eVN0YXRlLmgiCiAjaW5jbHVkZSAiUXVhbGlmaWVkTmFtZS5oIgog
I2luY2x1ZGUgIlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaCIKICNpbmNsdWRlICJTdHJpbmdXaXRo
RGlyZWN0aW9uLmgiCkBAIC0zMDQsNiArMzA1LDkgQEAgcHVibGljOgogI2lmIEVOQUJMRShGVUxM
U0NSRUVOX0FQSSkKICAgICBERUZJTkVfQVRUUklCVVRFX0VWRU5UX0xJU1RFTkVSKHdlYmtpdGZ1
bGxzY3JlZW5jaGFuZ2UpOwogI2VuZGlmCisjaWYgRU5BQkxFKFBBR0VfVklTSUJJTElUWV9BUEkp
CisgICAgREVGSU5FX0FUVFJJQlVURV9FVkVOVF9MSVNURU5FUih3ZWJraXR2aXNpYmlsaXR5c3Rh
dGVjaGFuZ2UpOworI2VuZGlmCiAKICAgICBWaWV3cG9ydEFyZ3VtZW50cyB2aWV3cG9ydEFyZ3Vt
ZW50cygpIGNvbnN0IHsgcmV0dXJuIG1fdmlld3BvcnRBcmd1bWVudHM7IH0KIApAQCAtMzc5LDYg
KzM4MywxMiBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIEtVUkwgYmFzZVVSSSgpIGNvbnN0Owog
CisjaWYgRU5BQkxFKFBBR0VfVklTSUJJTElUWV9BUEkpCisgICAgU3RyaW5nIHdlYmtpdFZpc2li
aWxpdHlTdGF0ZSgpIGNvbnN0OworICAgIGJvb2wgd2Via2l0SXNWaXNpYmxlKCkgY29uc3Q7Cisg
ICAgdm9pZCBkaXNwYXRjaFZpc2liaWxpdHlTdGF0ZUNoYW5nZUV2ZW50KCk7CisjZW5kaWYKKwog
ICAgIFBhc3NSZWZQdHI8Tm9kZT4gYWRvcHROb2RlKFBhc3NSZWZQdHI8Tm9kZT4gc291cmNlLCBF
eGNlcHRpb25Db2RlJik7CiAKICAgICBQYXNzUmVmUHRyPEhUTUxDb2xsZWN0aW9uPiBpbWFnZXMo
KTsKQEAgLTExMzIsNiArMTE0MiwxMCBAQCBwcml2YXRlOgogCiAgICAgdm9pZCBsb2FkRXZlbnRE
ZWxheVRpbWVyRmlyZWQoVGltZXI8RG9jdW1lbnQ+Kik7CiAKKyNpZiBFTkFCTEUoUEFHRV9WSVNJ
QklMSVRZX0FQSSkKKyAgICBQYWdlVmlzaWJpbGl0eVN0YXRlIHZpc2liaWxpdHlTdGF0ZSgpIGNv
bnN0OworI2VuZGlmCisKICAgICBpbnQgbV9ndWFyZFJlZkNvdW50OwogCiAgICAgT3duUHRyPENT
U1N0eWxlU2VsZWN0b3I+IG1fc3R5bGVTZWxlY3RvcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9Eb2N1bWVudC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaWRsCmlu
ZGV4IDVjZmFiMjQuLjg5YWU2NWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1
bWVudC5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmlkbApAQCAtMzM0LDYg
KzMzNCwxMCBAQCBtb2R1bGUgY29yZSB7CiAgICAgICAgIGJvb2xlYW4gaXNIVE1MRG9jdW1lbnQo
KTsKICNlbmRpZgogCisgICAgICAgIC8vIFBhZ2UgdmlzaWJpbGl0eSBBUEkuCisgICAgICAgIHJl
YWRvbmx5IGF0dHJpYnV0ZSBbQ29uZGl0aW9uYWw9UEFHRV9WSVNJQklMSVRZX0FQSV0gRE9NU3Ry
aW5nIHdlYmtpdFZpc2liaWxpdHlTdGF0ZTsKKyAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFtD
b25kaXRpb25hbD1QQUdFX1ZJU0lCSUxJVFlfQVBJXSBib29sZWFuIHdlYmtpdElzVmlzaWJsZTsK
KwogICAgIH07CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudE5hbWVz
LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnROYW1lcy5oCmluZGV4IGVjZTJhMDguLjk2ZjAz
ODMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudE5hbWVzLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvZG9tL0V2ZW50TmFtZXMuaApAQCAtMTA2LDYgKzEwNiw3IEBAIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKICAgICBtYWNybyh1bmxvYWQpIFwKICAgICBtYWNybyh1cGRhdGVyZWFkeSkg
XAogICAgIG1hY3JvKHZlcnNpb25jaGFuZ2UpIFwKKyAgICBtYWNybyh3ZWJraXR2aXNpYmlsaXR5
c3RhdGVjaGFuZ2UpIFwKICAgICBtYWNybyh3cml0ZSkgXAogICAgIG1hY3JvKHdyaXRlZW5kKSBc
CiAgICAgbWFjcm8od3JpdGVzdGFydCkgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9GcmFtZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lLmNwcAppbmRleCBlODM1OTQ4
Li40ODI0NjQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lLmNwcApAQCAtNzE4LDYgKzcxOCwxNiBAQCB2b2lk
IEZyYW1lOjpzZXRET01XaW5kb3coRE9NV2luZG93KiBkb21XaW5kb3cpCiAgICAgbV9kb21XaW5k
b3cgPSBkb21XaW5kb3c7CiB9CiAKKyNpZiBFTkFCTEUoUEFHRV9WSVNJQklMSVRZX0FQSSkKK3Zv
aWQgRnJhbWU6OmRpc3BhdGNoVmlzaWJpbGl0eVN0YXRlQ2hhbmdlRXZlbnQoKQoreworICAgIGlm
IChtX2RvYykKKyAgICAgICAgbV9kb2MtPmRpc3BhdGNoVmlzaWJpbGl0eVN0YXRlQ2hhbmdlRXZl
bnQoKTsKKyAgICBmb3IgKEZyYW1lKiBjaGlsZCA9IHRyZWUoKS0+Zmlyc3RDaGlsZCgpOyBjaGls
ZDsgY2hpbGQgPSBjaGlsZC0+dHJlZSgpLT5uZXh0U2libGluZygpKQorICAgICAgICBjaGlsZC0+
ZGlzcGF0Y2hWaXNpYmlsaXR5U3RhdGVDaGFuZ2VFdmVudCgpOworfQorI2VuZGlmCisKIERPTVdp
bmRvdyogRnJhbWU6OmRvbVdpbmRvdygpIGNvbnN0CiB7CiAgICAgaWYgKCFtX2RvbVdpbmRvdykK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWUuaCBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvRnJhbWUuaAppbmRleCAyZDc2YWVlLi44NjkzMjUzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL0ZyYW1lLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZS5oCkBA
IC0xMTksNiArMTE5LDEwIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogICAgICAgICB2b2lkIHRy
YW5zZmVyQ2hpbGRGcmFtZVRvTmV3RG9jdW1lbnQoKTsKIAorI2lmIEVOQUJMRShQQUdFX1ZJU0lC
SUxJVFlfQVBJKQorICAgICAgICB2b2lkIGRpc3BhdGNoVmlzaWJpbGl0eVN0YXRlQ2hhbmdlRXZl
bnQoKTsKKyNlbmRpZgorCiAgICAgLy8gPT09PT09PT0gQWxsIHB1YmxpYyBmdW5jdGlvbnMgYmVs
b3cgdGhpcyBwb2ludCBhcmUgY2FuZGlkYXRlcyB0byBtb3ZlIG91dCBvZiBGcmFtZSBpbnRvIGFu
b3RoZXIgY2xhc3MuID09PT09PT09CiAKICAgICAgICAgYm9vbCBpc0Rpc2Nvbm5lY3RlZCgpIGNv
bnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvUGFnZS5jcHAKaW5kZXggNzY2NDJmOC4uNGI4OGE4YSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1Bh
Z2UuY3BwCkBAIC0xNjMsNiArMTYzLDkgQEAgUGFnZTo6UGFnZShjb25zdCBQYWdlQ2xpZW50cyYg
cGFnZUNsaWVudHMpCiAgICAgLCBtX3ZpZXdNb2RlKFZpZXdNb2RlV2luZG93ZWQpCiAgICAgLCBt
X21pbmltdW1UaW1lckludGVydmFsKFNldHRpbmdzOjpkZWZhdWx0TWluRE9NVGltZXJJbnRlcnZh
bCgpKQogICAgICwgbV9pc0VkaXRhYmxlKGZhbHNlKQorI2lmIEVOQUJMRShQQUdFX1ZJU0lCSUxJ
VFlfQVBJKQorICAgICwgbV92aXNpYmlsaXR5U3RhdGUoUGFnZVZpc2liaWxpdHlTdGF0ZVZpc2li
bGUpCisjZW5kaWYKIHsKICAgICBpZiAoIWFsbFBhZ2VzKSB7CiAgICAgICAgIGFsbFBhZ2VzID0g
bmV3IEhhc2hTZXQ8UGFnZSo+OwpAQCAtOTM0LDYgKzkzNywyMyBAQCB2b2lkIFBhZ2U6OmNoZWNr
RnJhbWVDb3VudENvbnNpc3RlbmN5KCkgY29uc3QKIH0KICNlbmRpZgogCisjaWYgRU5BQkxFKFBB
R0VfVklTSUJJTElUWV9BUEkpCit2b2lkIFBhZ2U6OnNldFZpc2liaWxpdHlTdGF0ZShQYWdlVmlz
aWJpbGl0eVN0YXRlIHZpc2liaWxpdHlTdGF0ZSwgYm9vbCBpc0luaXRpYWxTdGF0ZSkKK3sKKyAg
ICBpZiAobV92aXNpYmlsaXR5U3RhdGUgPT0gdmlzaWJpbGl0eVN0YXRlKQorICAgICAgICByZXR1
cm47CisgICAgbV92aXNpYmlsaXR5U3RhdGUgPSB2aXNpYmlsaXR5U3RhdGU7CisKKyAgICBpZiAo
IWlzSW5pdGlhbFN0YXRlICYmIG1fbWFpbkZyYW1lKQorICAgICAgICBtX21haW5GcmFtZS0+ZGlz
cGF0Y2hWaXNpYmlsaXR5U3RhdGVDaGFuZ2VFdmVudCgpOworfQorCitQYWdlVmlzaWJpbGl0eVN0
YXRlIFBhZ2U6OnZpc2liaWxpdHlTdGF0ZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fdmlzaWJp
bGl0eVN0YXRlOworfQorI2VuZGlmCisKIFBhZ2U6OlBhZ2VDbGllbnRzOjpQYWdlQ2xpZW50cygp
CiAgICAgOiBjaHJvbWVDbGllbnQoMCkKICAgICAsIGNvbnRleHRNZW51Q2xpZW50KDApCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
UGFnZS5oCmluZGV4IDYwMTkzZmIuLmVhM2YxZDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvUGFnZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oCkBAIC0yMyw2ICsy
Myw3IEBACiAKICNpbmNsdWRlICJGcmFtZUxvYWRlclR5cGVzLmgiCiAjaW5jbHVkZSAiRmluZE9w
dGlvbnMuaCIKKyNpbmNsdWRlICJQYWdlVmlzaWJpbGl0eVN0YXRlLmgiCiAjaW5jbHVkZSAiUGxh
dGZvcm1TdHJpbmcuaCIKICNpbmNsdWRlICJWaWV3cG9ydEFyZ3VtZW50cy5oIgogI2luY2x1ZGUg
PHd0Zi9Gb3J3YXJkLmg+CkBAIC0zMDAsNiArMzAxLDExIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsK
ICAgICAgICAgdm9pZCBzZXRFZGl0YWJsZShib29sIGlzRWRpdGFibGUpIHsgbV9pc0VkaXRhYmxl
ID0gaXNFZGl0YWJsZTsgfQogICAgICAgICBib29sIGlzRWRpdGFibGUoKSB7IHJldHVybiBtX2lz
RWRpdGFibGU7IH0KIAorI2lmIEVOQUJMRShQQUdFX1ZJU0lCSUxJVFlfQVBJKQorICAgICAgICBQ
YWdlVmlzaWJpbGl0eVN0YXRlIHZpc2liaWxpdHlTdGF0ZSgpIGNvbnN0OworICAgICAgICB2b2lk
IHNldFZpc2liaWxpdHlTdGF0ZShQYWdlVmlzaWJpbGl0eVN0YXRlLCBib29sKTsKKyNlbmRpZgor
CiAgICAgcHJpdmF0ZToKICAgICAgICAgdm9pZCBpbml0R3JvdXAoKTsKIApAQCAtNDA1LDYgKzQx
MSwxMCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIE93blB0cjxTY3JvbGxhYmxlQXJl
YVNldD4gbV9zY3JvbGxhYmxlQXJlYVNldDsKIAogICAgICAgICBib29sIG1faXNFZGl0YWJsZTsK
KworI2lmIEVOQUJMRShQQUdFX1ZJU0lCSUxJVFlfQVBJKQorICAgICAgICBQYWdlVmlzaWJpbGl0
eVN0YXRlIG1fdmlzaWJpbGl0eVN0YXRlOworI2VuZGlmCiAgICAgfTsKIAogfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlVmlzaWJpbGl0
eVN0YXRlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZVZpc2liaWxpdHlTdGF0ZS5jcHAK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZmUxOGRmYQotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZVZpc2liaWxpdHlTdGF0ZS5jcHAKQEAgLTAs
MCArMSw1NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0
OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
CisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9m
IEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJl
IHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhp
cyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBB
TkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJ
Q1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlS
SUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJQYWdlVmlzaWJpbGl0eVN0
YXRlLmgiCisKKyNpZiBFTkFCTEUoUEFHRV9WSVNJQklMSVRZX0FQSSkKKworbmFtZXNwYWNlIFdl
YkNvcmUgeworCitTdHJpbmcgR2V0UGFnZVZpc2liaWxpdHlTdGF0ZVN0cmluZyhQYWdlVmlzaWJp
bGl0eVN0YXRlIHN0YXRlKQoreworICAgIERFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgU3RyaW5n
LCB2aXNpYmxlLCAoInZpc2libGUiKSk7CisgICAgREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBT
dHJpbmcsIGhpZGRlbiwgKCJoaWRkZW4iKSk7CisKKyAgICBzd2l0Y2ggKHN0YXRlKSB7CisgICAg
Y2FzZSBQYWdlVmlzaWJpbGl0eVN0YXRlVmlzaWJsZToKKyAgICAgICAgcmV0dXJuIHZpc2libGU7
CisgICAgY2FzZSBQYWdlVmlzaWJpbGl0eVN0YXRlSGlkZGVuOgorICAgICAgICByZXR1cm4gaGlk
ZGVuOworICAgIH0KKworICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIHJldHVybiBTdHJp
bmcoKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gaWYgRU5BQkxF
KFBBR0VfVklTSUJJTElUWV9BUEkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1Bh
Z2VWaXNpYmlsaXR5U3RhdGUuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZVZpc2liaWxpdHlT
dGF0ZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmE3ZDcwMjEKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VWaXNpYmlsaXR5U3RhdGUuaApA
QCAtMCwwICsxLDUxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMuIEFs
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
QU1BR0UuCisgKi8KKworI2lmbmRlZiBQYWdlVmlzaWJpbGl0eVN0YXRlX2gKKyNkZWZpbmUgUGFn
ZVZpc2liaWxpdHlTdGF0ZV9oCisKKyNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKwor
bmFtZXNwYWNlIFdlYkNvcmUgeworCisvLyBUaGUgZW51bSBpcyBub3QgZmxhZyBwcm90ZWN0ZWQg
YXMgaXQgaXMgdXNlZCBpbiB0aGUgV2ViS2l0IGNocm9taXVtIEFQSQorLy8gd2l0aG91dCBmbGFn
IHByb3RlY3Rpb24uCitlbnVtIFBhZ2VWaXNpYmlsaXR5U3RhdGUgeworICAgIFBhZ2VWaXNpYmls
aXR5U3RhdGVWaXNpYmxlLAorICAgIFBhZ2VWaXNpYmlsaXR5U3RhdGVIaWRkZW4KK307CisKKyNp
ZiBFTkFCTEUoUEFHRV9WSVNJQklMSVRZX0FQSSkKK1N0cmluZyBHZXRQYWdlVmlzaWJpbGl0eVN0
YXRlU3RyaW5nKFBhZ2VWaXNpYmlsaXR5U3RhdGUpOworI2VuZGlmCisKK30gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKKworI2VuZGlmIC8vIGlmbmRlZiBQYWdlVmlzaWJpbGl0eVN0YXRlX2gKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXggM2NhMDg4ZC4uNTFhNWE3MyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMiBAQAorMjAxMS0wNS0wNCAgU2hpc2hpciBBZ3Jhd2Fs
ICA8c2hpc2hpckBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgSW1wbGVtZW50IFBhZ2UgVmlzaWJpbGl0eSBBUEkuCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01NDE4MQorCisgICAgICAg
ICogV2ViS2l0Lmd5cDoKKyAgICAgICAgKiBmZWF0dXJlcy5neXBpOgorICAgICAgICAqIHB1Ymxp
Yy9XZWJQYWdlVmlzaWJpbGl0eVN0YXRlLmg6IEFkZGVkLgorICAgICAgICAqIHB1YmxpYy9XZWJW
aWV3Lmg6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXc6OnNldFZpc2liaWxpdHlTdGF0ZSk6Cisg
ICAgICAgICogcHVibGljL1dlYlZpZXdDbGllbnQuaDoKKyAgICAgICAgKFdlYktpdDo6V2ViVmll
d0NsaWVudDo6dmlzaWJpbGl0eVN0YXRlKToKKyAgICAgICAgKiBzcmMvV2ViVmlld0ltcGwuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6V2ViVmlld0ltcGwpOgorICAgICAgICAo
V2ViS2l0OjpXZWJWaWV3SW1wbDo6c2V0VmlzaWJpbGl0eVN0YXRlKToKKyAgICAgICAgKiBzcmMv
V2ViVmlld0ltcGwuaDoKKwogMjAxMS0wNS0wNCAgTmF0ZSBDaGFwaW4gIDxqYXBoZXRAY2hyb21p
dW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IE1paGFpIFBhcnBhcml0YS4KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vV2ViS2l0Lmd5cCBiL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vV2ViS2l0Lmd5cAppbmRleCAzZTBiMGQ5Li5hNmU5YjI3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL1dlYktpdC5neXAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9XZWJLaXQuZ3lwCkBAIC0yMjcsNiArMjI3LDcgQEAKICAgICAgICAgICAgICAgICAncHVibGlj
L1dlYk9wdGlvbkVsZW1lbnQuaCcsCiAgICAgICAgICAgICAgICAgJ3B1YmxpYy9XZWJQYWdlU2Vy
aWFsaXplci5oJywKICAgICAgICAgICAgICAgICAncHVibGljL1dlYlBhZ2VTZXJpYWxpemVyQ2xp
ZW50LmgnLAorICAgICAgICAgICAgICAgICdwdWJsaWMvV2ViUGFnZVZpc2liaWxpdHlTdGF0ZS5o
JywKICAgICAgICAgICAgICAgICAncHVibGljL1dlYlBhc3N3b3JkQXV0b2NvbXBsZXRlTGlzdGVu
ZXIuaCcsCiAgICAgICAgICAgICAgICAgJ3B1YmxpYy9XZWJQYXNzd29yZEZvcm1EYXRhLmgnLAog
ICAgICAgICAgICAgICAgICdwdWJsaWMvV2ViUGVyZm9ybWFuY2UuaCcsCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL2ZlYXR1cmVzLmd5cGkgYi9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL2ZlYXR1cmVzLmd5cGkKaW5kZXggNTEwZmJlNi4uMTQ0OGY5YiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9jaHJvbWl1bS9mZWF0dXJlcy5neXBpCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vZmVhdHVyZXMuZ3lwaQpAQCAtNzUsNyArNzUsNyBAQAogICAgICAgICAnRU5BQkxFX09G
RkxJTkVfV0VCX0FQUExJQ0FUSU9OUz0xJywKICAgICAgICAgJ0VOQUJMRV9PUEVOVFlQRV9TQU5J
VElaRVI9MScsCiAgICAgICAgICdFTkFCTEVfT1JJRU5UQVRJT05fRVZFTlRTPTAnLAotICAgICAg
ICAnRU5BQkxFX1BBR0VfVklTSUJJTElUWV9BUEk9MCcsCisgICAgICAgICdFTkFCTEVfUEFHRV9W
SVNJQklMSVRZX0FQST0xJywKICAgICAgICAgJ0VOQUJMRV9QUk9HUkVTU19UQUc9MScsCiAgICAg
ICAgICdFTkFCTEVfUVVPVEE9MScsCiAgICAgICAgICdFTkFCTEVfUkVHSVNURVJfUFJPVE9DT0xf
SEFORExFUj0wJywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dl
YlBhZ2VWaXNpYmlsaXR5U3RhdGUuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dl
YlBhZ2VWaXNpYmlsaXR5U3RhdGUuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
Li41NDc0YmU0Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJs
aWMvV2ViUGFnZVZpc2liaWxpdHlTdGF0ZS5oCkBAIC0wLDAgKzEsNDUgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
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
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFdlYlBh
Z2VWaXNpYmlsaXR5U3RhdGVfaAorI2RlZmluZSBXZWJQYWdlVmlzaWJpbGl0eVN0YXRlX2gKKwor
bmFtZXNwYWNlIFdlYktpdCB7CisKKy8vIFRoZSBmb2xsb3dpbmcgZW51bSBzaG91bGQgYmUgY29u
c2lzdGVudCB3aXRoIHRoZSBQYWdlVmlzaWJpbGl0eVN0YXRlIGVudW0KKy8vIGRlZmluZWQgaW4g
V2ViQ29yZS4KK2VudW0gV2ViUGFnZVZpc2liaWxpdHlTdGF0ZSB7CisgICAgV2ViUGFnZVZpc2li
aWxpdHlTdGF0ZVZpc2libGUsCisgICAgV2ViUGFnZVZpc2liaWxpdHlTdGF0ZUhpZGRlbgorfTsK
KworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViVmlldy5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9w
dWJsaWMvV2ViVmlldy5oCmluZGV4IDNlOWIzZDYuLjRhM2FiNTggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlZpZXcuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL3B1YmxpYy9XZWJWaWV3LmgKQEAgLTMyLDYgKzMyLDcgQEAKICNkZWZpbmUgV2ViVmll
d19oCiAKICNpbmNsdWRlICJXZWJEcmFnT3BlcmF0aW9uLmgiCisjaW5jbHVkZSAiV2ViUGFnZVZp
c2liaWxpdHlTdGF0ZS5oIgogI2luY2x1ZGUgIldlYlN0cmluZy5oIgogI2luY2x1ZGUgIldlYlZl
Y3Rvci5oIgogI2luY2x1ZGUgIldlYldpZGdldC5oIgpAQCAtMzU3LDYgKzM1OCwxMiBAQCBwdWJs
aWM6CiAgICAgLy8gQVBJcy4KICAgICB2aXJ0dWFsIFdlYkdyYXBoaWNzQ29udGV4dDNEKiBncmFw
aGljc0NvbnRleHQzRCgpID0gMDsKIAorICAgIC8vIFZpc2liaWxpdHkgLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIC8vIFNl
dHMgdGhlIHZpc2liaWxpdHkgb2YgdGhlIFdlYlZpZXcuCisgICAgdmlydHVhbCB2b2lkIHNldFZp
c2liaWxpdHlTdGF0ZShXZWJQYWdlVmlzaWJpbGl0eVN0YXRlIHZpc2liaWxpdHlTdGF0ZSwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2wgaXNJbml0aWFsU3RhdGUpIHsg
fQorCiBwcm90ZWN0ZWQ6CiAgICAgfldlYlZpZXcoKSB7fQogfTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlZpZXdDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vcHVibGljL1dlYlZpZXdDbGllbnQuaAppbmRleCA1MTc0MzUxLi5mM2JlM2NhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJWaWV3Q2xpZW50LmgK
KysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViVmlld0NsaWVudC5oCkBAIC0z
Niw2ICszNiw3IEBACiAjaW5jbHVkZSAiV2ViRWRpdGluZ0FjdGlvbi5oIgogI2luY2x1ZGUgIldl
YkZpbGVDaG9vc2VyQ29tcGxldGlvbi5oIgogI2luY2x1ZGUgIldlYkZpbGVDaG9vc2VyUGFyYW1z
LmgiCisjaW5jbHVkZSAiV2ViUGFnZVZpc2liaWxpdHlTdGF0ZS5oIgogI2luY2x1ZGUgIldlYlBv
cHVwVHlwZS5oIgogI2luY2x1ZGUgIldlYlN0cmluZy5oIgogI2luY2x1ZGUgIldlYlRleHRBZmZp
bml0eS5oIgpAQCAtMzE1LDYgKzMxNiwxNCBAQCBwdWJsaWM6CiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFdlYlN0cmluZyYgdXJsLAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBXZWJTdHJpbmcmIHRpdGxlKSB7IH0K
IAorICAgIC8vIFZpc2liaWxpdHkgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIC8vIFJldHVybnMgdGhlIGN1cnJlbnQgdmlz
aWJpbGl0eSBvZiB0aGUgV2ViVmlldy4KKyAgICB2aXJ0dWFsIFdlYlBhZ2VWaXNpYmlsaXR5U3Rh
dGUgdmlzaWJpbGl0eVN0YXRlKCkgY29uc3QKKyAgICB7CisgICAgICAgIHJldHVybiBXZWJQYWdl
VmlzaWJpbGl0eVN0YXRlVmlzaWJsZTsKKyAgICB9CisKIHByb3RlY3RlZDoKICAgICB+V2ViVmll
d0NsaWVudCgpIHsgfQogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3Jj
L1dlYlZpZXdJbXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBs
LmNwcAppbmRleCBjYjAyNDY2Li5hYmJmNzJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9z
cmMvV2ViVmlld0ltcGwuY3BwCkBAIC0zNjYsNiArMzY2LDEwIEBAIFdlYlZpZXdJbXBsOjpXZWJW
aWV3SW1wbChXZWJWaWV3Q2xpZW50KiBjbGllbnQpCiAKICAgICBtX3BhZ2UtPnNldEdyb3VwTmFt
ZShwYWdlR3JvdXBOYW1lKTsKIAorI2lmIEVOQUJMRShQQUdFX1ZJU0lCSUxJVFlfQVBJKQorICAg
IHNldFZpc2liaWxpdHlTdGF0ZShtX2NsaWVudC0+dmlzaWJpbGl0eVN0YXRlKCksIHRydWUpOwor
I2VuZGlmCisKICAgICBtX2luc3BlY3RvclNldHRpbmdzTWFwID0gYWRvcHRQdHIobmV3IFNldHRp
bmdzTWFwKTsKIH0KIApAQCAtMjU2MCw0ICsyNTY0LDI0IEBAIFdlYkdyYXBoaWNzQ29udGV4dDNE
KiBXZWJWaWV3SW1wbDo6Z3JhcGhpY3NDb250ZXh0M0QoKQogICAgIHJldHVybiAwOwogfQogCisK
K3ZvaWQgV2ViVmlld0ltcGw6OnNldFZpc2liaWxpdHlTdGF0ZShXZWJQYWdlVmlzaWJpbGl0eVN0
YXRlIHZpc2liaWxpdHlTdGF0ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBib29sIGlzSW5pdGlhbFN0YXRlKSB7CisjaWYgRU5BQkxFKFBBR0VfVklTSUJJTElUWV9BUEkp
CisgICAgaWYgKCFwYWdlKCkpCisgICAgICAgIHJldHVybjsKKworICAgIHN3aXRjaCAodmlzaWJp
bGl0eVN0YXRlKSB7CisgICAgY2FzZSBXZWJQYWdlVmlzaWJpbGl0eVN0YXRlVmlzaWJsZToKKyAg
ICAgICAgbV9wYWdlLT5zZXRWaXNpYmlsaXR5U3RhdGUoUGFnZVZpc2liaWxpdHlTdGF0ZVZpc2li
bGUsIGlzSW5pdGlhbFN0YXRlKTsKKyAgICAgICAgcmV0dXJuOworICAgIGNhc2UgV2ViUGFnZVZp
c2liaWxpdHlTdGF0ZUhpZGRlbjoKKyAgICAgICAgbV9wYWdlLT5zZXRWaXNpYmlsaXR5U3RhdGUo
UGFnZVZpc2liaWxpdHlTdGF0ZUhpZGRlbiwgaXNJbml0aWFsU3RhdGUpOworICAgICAgICByZXR1
cm47CisgICAgZGVmYXVsdDoKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgfQor
I2VuZGlmCit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
c3JjL1dlYlZpZXdJbXBsLmgKaW5kZXggZDhkOTJhOC4uZjI5MDgyNyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuaAorKysgYi9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5oCkBAIC0zNTUsNiArMzU1LDggQEAgcHVibGljOgog
ICAgIC8vIFdlYkdMLiBSZXR1cm5zIDAgaWYgY29tcG9zaXRpbmcgc3VwcG9ydCBpcyBub3QgY29t
cGlsZWQgaW4uCiAgICAgdmlydHVhbCBXZWJHcmFwaGljc0NvbnRleHQzRCogZ3JhcGhpY3NDb250
ZXh0M0QoKTsKIAorICAgIHZpcnR1YWwgdm9pZCBzZXRWaXNpYmlsaXR5U3RhdGUoV2ViUGFnZVZp
c2liaWxpdHlTdGF0ZSwgYm9vbCk7CisKICAgICBXZWJDb3JlOjpQb3B1cENvbnRhaW5lciogc2Vs
ZWN0UG9wdXAoKSBjb25zdCB7IHJldHVybiBtX3NlbGVjdFBvcHVwLmdldCgpOyB9CiAKICAgICAv
LyBSZXR1cm5zIHRydWUgaWYgdGhlIGV2ZW50IGxlYWRzIHRvIHNjcm9sbGluZy4KZGlmZiAtLWdp
dCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCA3ZjQwZTE2Li44OWEz
YjkxIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMjMgQEAKKzIwMTEtMDUtMDQgIFNoaXNoaXIgQWdyYXdhbCAgPHNoaXNoaXJAY2hy
b21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIEltcGxlbWVudCBQYWdlIFZpc2liaWxpdHkgQVBJLgorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTQxODEKKworICAgICAgICAqIER1bXBSZW5kZXJU
cmVlL0xheW91dFRlc3RDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKHNldFBhZ2VWaXNpYmlsaXR5
Q2FsbGJhY2spOgorICAgICAgICAocmVzZXRQYWdlVmlzaWJpbGl0eUNhbGxiYWNrKToKKyAgICAg
ICAgKExheW91dFRlc3RDb250cm9sbGVyOjpzdGF0aWNGdW5jdGlvbnMpOgorICAgICAgICAqIER1
bXBSZW5kZXJUcmVlL0xheW91dFRlc3RDb250cm9sbGVyLmg6CisgICAgICAgIChMYXlvdXRUZXN0
Q29udHJvbGxlcjo6c2V0UGFnZVZpc2liaWxpdHkpOgorICAgICAgICAoTGF5b3V0VGVzdENvbnRy
b2xsZXI6OnJlc2V0UGFnZVZpc2liaWxpdHkpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2No
cm9taXVtL0xheW91dFRlc3RDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKExheW91dFRlc3RDb250
cm9sbGVyOjpMYXlvdXRUZXN0Q29udHJvbGxlcik6CisgICAgICAgIChMYXlvdXRUZXN0Q29udHJv
bGxlcjo6cmVzZXRQYWdlVmlzaWJpbGl0eSk6CisgICAgICAgIChMYXlvdXRUZXN0Q29udHJvbGxl
cjo6c2V0UGFnZVZpc2liaWxpdHkpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2Nocm9taXVt
L0xheW91dFRlc3RDb250cm9sbGVyLmg6CisKIDIwMTEtMDUtMDQgIFNpZGRoYXJ0aCBNYXRodXIg
IDxzaWRkaGFydGgubWF0aHVyQG5va2lhLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBMYXN6
bG8gR29tYm9zLgpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvTGF5b3V0VGVzdENv
bnRyb2xsZXIuY3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvTGF5b3V0VGVzdENvbnRyb2xsZXIu
Y3BwCmluZGV4IDRjYTkwZDguLjQyZmU4MWQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJU
cmVlL0xheW91dFRlc3RDb250cm9sbGVyLmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9M
YXlvdXRUZXN0Q29udHJvbGxlci5jcHAKQEAgLTE2NzAsNiArMTY3MCwzNyBAQCBzdGF0aWMgSlNW
YWx1ZVJlZiBzZXRQbHVnaW5zRW5hYmxlZENhbGxiYWNrKEpTQ29udGV4dFJlZiBjb250ZXh0LCBK
U09iamVjdFJlZiBmdQogICAgIHJldHVybiBKU1ZhbHVlTWFrZVVuZGVmaW5lZChjb250ZXh0KTsK
IH0gICAgCiAKK3N0YXRpYyBKU1ZhbHVlUmVmIHNldFBhZ2VWaXNpYmlsaXR5Q2FsbGJhY2soSlND
b250ZXh0UmVmIGNvbnRleHQsIEpTT2JqZWN0UmVmIGZ1bmN0aW9uLCBKU09iamVjdFJlZiB0aGlz
T2JqZWN0LCBzaXplX3QgYXJndW1lbnRDb3VudCwgY29uc3QgSlNWYWx1ZVJlZiBhcmd1bWVudHNb
XSwgSlNWYWx1ZVJlZiogZXhjZXB0aW9uKQoreworICAgIC8vIEhhcyBtYWMgJiB3aW5kb3dzIGlt
cGxlbWVudGF0aW9uCisgICAgaWYgKGFyZ3VtZW50Q291bnQgPCAxKQorICAgICAgICByZXR1cm4g
SlNWYWx1ZU1ha2VVbmRlZmluZWQoY29udGV4dCk7CisKKyAgICBKU1JldGFpblB0cjxKU1N0cmlu
Z1JlZj4gdmlzaWJpbGl0eShBZG9wdCwgSlNWYWx1ZVRvU3RyaW5nQ29weShjb250ZXh0LCBhcmd1
bWVudHNbMF0sIGV4Y2VwdGlvbikpOworICAgIEFTU0VSVCghKmV4Y2VwdGlvbik7CisKKyAgICBz
aXplX3QgbWF4TGVuZ3RoID0gSlNTdHJpbmdHZXRNYXhpbXVtVVRGOENTdHJpbmdTaXplKHZpc2li
aWxpdHkuZ2V0KCkpOworICAgIGNoYXIqIHZpc2liaWxpdHlCdWZmZXIgPSBuZXcgY2hhclttYXhM
ZW5ndGggKyAxXTsKKyAgICBKU1N0cmluZ0dldFVURjhDU3RyaW5nKHZpc2liaWxpdHkuZ2V0KCks
IHZpc2liaWxpdHlCdWZmZXIsIG1heExlbmd0aCArIDEpOworICAgIAorICAgIExheW91dFRlc3RD
b250cm9sbGVyKiBjb250cm9sbGVyID0gc3RhdGljX2Nhc3Q8TGF5b3V0VGVzdENvbnRyb2xsZXIq
PihKU09iamVjdEdldFByaXZhdGUodGhpc09iamVjdCkpOworICAgIGNvbnRyb2xsZXItPnNldFBh
Z2VWaXNpYmlsaXR5KHZpc2liaWxpdHlCdWZmZXIpOworICAgIGRlbGV0ZVtdIHZpc2liaWxpdHlC
dWZmZXI7CisgICAgCisgICAgcmV0dXJuIEpTVmFsdWVNYWtlVW5kZWZpbmVkKGNvbnRleHQpOwor
fSAgICAKKworc3RhdGljIEpTVmFsdWVSZWYgcmVzZXRQYWdlVmlzaWJpbGl0eUNhbGxiYWNrKEpT
Q29udGV4dFJlZiBjb250ZXh0LCBKU09iamVjdFJlZiBmdW5jdGlvbiwgSlNPYmplY3RSZWYgdGhp
c09iamVjdCwgc2l6ZV90IGFyZ3VtZW50Q291bnQsIGNvbnN0IEpTVmFsdWVSZWYgYXJndW1lbnRz
W10sIEpTVmFsdWVSZWYqIGV4Y2VwdGlvbikKK3sKKyAgICAvLyBIYXMgbWFjICYgd2luZG93cyBp
bXBsZW1lbnRhdGlvbgorICAgIGlmIChhcmd1bWVudENvdW50IDwgMSkKKyAgICAgICAgcmV0dXJu
IEpTVmFsdWVNYWtlVW5kZWZpbmVkKGNvbnRleHQpOworCisgICAgTGF5b3V0VGVzdENvbnRyb2xs
ZXIqIGNvbnRyb2xsZXIgPSBzdGF0aWNfY2FzdDxMYXlvdXRUZXN0Q29udHJvbGxlcio+KEpTT2Jq
ZWN0R2V0UHJpdmF0ZSh0aGlzT2JqZWN0KSk7CisgICAgY29udHJvbGxlci0+cmVzZXRQYWdlVmlz
aWJpbGl0eSgpOworICAgIHJldHVybiBKU1ZhbHVlTWFrZVVuZGVmaW5lZChjb250ZXh0KTsKK30g
ICAgCisKIHN0YXRpYyBKU1ZhbHVlUmVmIHNldFNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZENhbGxi
YWNrKEpTQ29udGV4dFJlZiBjb250ZXh0LCBKU09iamVjdFJlZiBmdW5jdGlvbiwgSlNPYmplY3RS
ZWYgdGhpc09iamVjdCwgc2l6ZV90IGFyZ3VtZW50Q291bnQsIGNvbnN0IEpTVmFsdWVSZWYgYXJn
dW1lbnRzW10sIEpTVmFsdWVSZWYqIGV4Y2VwdGlvbikKIHsKICAgICBpZiAoYXJndW1lbnRDb3Vu
dCA8IDEpCkBAIC0yMjU2LDYgKzIyODcsNyBAQCBKU1N0YXRpY0Z1bmN0aW9uKiBMYXlvdXRUZXN0
Q29udHJvbGxlcjo6c3RhdGljRnVuY3Rpb25zKCkKICAgICAgICAgeyAicmVtb3ZlQWxsVmlzaXRl
ZExpbmtzIiwgcmVtb3ZlQWxsVmlzaXRlZExpbmtzQ2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmli
dXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKICAgICAgICAg
eyAicmVtb3ZlT3JpZ2luQWNjZXNzV2hpdGVsaXN0RW50cnkiLCByZW1vdmVPcmlnaW5BY2Nlc3NX
aGl0ZWxpc3RFbnRyeUNhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pT
UHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCiAgICAgICAgIHsgInJlcGFpbnRTd2VlcEhv
cml6b250YWxseSIsIHJlcGFpbnRTd2VlcEhvcml6b250YWxseUNhbGxiYWNrLCBrSlNQcm9wZXJ0
eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCisg
ICAgICAgIHsgInJlc2V0UGFnZVZpc2liaWxpdHkiLCByZXNldFBhZ2VWaXNpYmlsaXR5Q2FsbGJh
Y2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURv
bnREZWxldGUgfSwKICAgICAgICAgeyAic2V0QWNjZXB0c0VkaXRpbmciLCBzZXRBY2NlcHRzRWRp
dGluZ0NhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlB
dHRyaWJ1dGVEb250RGVsZXRlIH0sCiAgICAgICAgIHsgInNldEFsbG93VW5pdmVyc2FsQWNjZXNz
RnJvbUZpbGVVUkxzIiwgc2V0QWxsb3dVbml2ZXJzYWxBY2Nlc3NGcm9tRmlsZVVSTHNDYWxsYmFj
aywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9u
dERlbGV0ZSB9LAogICAgICAgICB7ICJzZXRBbGxvd0ZpbGVBY2Nlc3NGcm9tRmlsZVVSTHMiLCBz
ZXRBbGxvd0ZpbGVBY2Nlc3NGcm9tRmlsZVVSTHNDYWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1
dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LApAQCAtMjI4OCw2
ICsyMzIwLDcgQEAgSlNTdGF0aWNGdW5jdGlvbiogTGF5b3V0VGVzdENvbnRyb2xsZXI6OnN0YXRp
Y0Z1bmN0aW9ucygpCiAgICAgICAgIHsgInNldE1vY2tHZW9sb2NhdGlvblBvc2l0aW9uIiwgc2V0
TW9ja0dlb2xvY2F0aW9uUG9zaXRpb25DYWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFk
T25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LAogICAgICAgICB7ICJhZGRN
b2NrU3BlZWNoSW5wdXRSZXN1bHQiLCBhZGRNb2NrU3BlZWNoSW5wdXRSZXN1bHRDYWxsYmFjaywg
a0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERl
bGV0ZSB9LAogICAgICAgICB7ICJzZXROZXdXaW5kb3dzQ29weUJhY2tGb3J3YXJkTGlzdCIsIHNl
dE5ld1dpbmRvd3NDb3B5QmFja0ZvcndhcmRMaXN0Q2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmli
dXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKKyAgICAgICAg
eyAic2V0UGFnZVZpc2liaWxpdHkiLCBzZXRQYWdlVmlzaWJpbGl0eUNhbGxiYWNrLCBrSlNQcm9w
ZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0s
CiAgICAgICAgIHsgInNldFBPU0lYTG9jYWxlIiwgc2V0UE9TSVhMb2NhbGVDYWxsYmFjaywga0pT
UHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0
ZSB9LAogICAgICAgICB7ICJzZXRQZXJzaXN0ZW50VXNlclN0eWxlU2hlZXRMb2NhdGlvbiIsIHNl
dFBlcnNpc3RlbnRVc2VyU3R5bGVTaGVldExvY2F0aW9uQ2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0
cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKICAgICAg
ICAgeyAic2V0UG9wdXBCbG9ja2luZ0VuYWJsZWQiLCBzZXRQb3B1cEJsb2NraW5nRW5hYmxlZENh
bGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1
dGVEb250RGVsZXRlIH0sCmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9MYXlvdXRU
ZXN0Q29udHJvbGxlci5oIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvTGF5b3V0VGVzdENvbnRyb2xs
ZXIuaAppbmRleCBhMzFlOTA4Li5kNGUzNzc1IDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVy
VHJlZS9MYXlvdXRUZXN0Q29udHJvbGxlci5oCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL0xh
eW91dFRlc3RDb250cm9sbGVyLmgKQEAgLTEyMyw2ICsxMjMsOSBAQCBwdWJsaWM6CiAgICAgdm9p
ZCBzZXRTY3JvbGxiYXJQb2xpY3koSlNTdHJpbmdSZWYgb3JpZW50YXRpb24sIEpTU3RyaW5nUmVm
IHBvbGljeSk7CiAgICAgdm9pZCBzZXRFZGl0aW5nQmVoYXZpb3IoY29uc3QgY2hhciogZWRpdGlu
Z0JlaGF2aW9yKTsKIAorICAgIHZvaWQgc2V0UGFnZVZpc2liaWxpdHkoY29uc3QgY2hhciogdmlz
aWJpbGl0eSkgeyB9CisgICAgdm9pZCByZXNldFBhZ2VWaXNpYmlsaXR5KCkgeyB9CisKICAgICBK
U1ZhbHVlUmVmIHNoYWRvd1Jvb3QoSlNDb250ZXh0UmVmLCBKU1ZhbHVlUmVmKTsKICAgICBKU1Zh
bHVlUmVmIGVuc3VyZVNoYWRvd1Jvb3QoSlNDb250ZXh0UmVmLCBKU1ZhbHVlUmVmKTsKICAgICB2
b2lkIHJlbW92ZVNoYWRvd1Jvb3QoSlNDb250ZXh0UmVmLCBKU1ZhbHVlUmVmKTsKZGlmZiAtLWdp
dCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0xheW91dFRlc3RDb250cm9sbGVyLmNw
cCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0xheW91dFRlc3RDb250cm9sbGVyLmNw
cAppbmRleCBlZThkNWFjLi42MjY5OGMxIDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJl
ZS9jaHJvbWl1bS9MYXlvdXRUZXN0Q29udHJvbGxlci5jcHAKKysrIGIvVG9vbHMvRHVtcFJlbmRl
clRyZWUvY2hyb21pdW0vTGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwCkBAIC0xMzQsNiArMTM0LDcg
QEAgTGF5b3V0VGVzdENvbnRyb2xsZXI6OkxheW91dFRlc3RDb250cm9sbGVyKFRlc3RTaGVsbCog
c2hlbGwpCiAgICAgYmluZE1ldGhvZCgicmVtb3ZlT3JpZ2luQWNjZXNzV2hpdGVsaXN0RW50cnki
LCAmTGF5b3V0VGVzdENvbnRyb2xsZXI6OnJlbW92ZU9yaWdpbkFjY2Vzc1doaXRlbGlzdEVudHJ5
KTsKICAgICBiaW5kTWV0aG9kKCJyZW1vdmVTaGFkb3dSb290IiwgJkxheW91dFRlc3RDb250cm9s
bGVyOjpyZW1vdmVTaGFkb3dSb290KTsKICAgICBiaW5kTWV0aG9kKCJyZXBhaW50U3dlZXBIb3Jp
em9udGFsbHkiLCAmTGF5b3V0VGVzdENvbnRyb2xsZXI6OnJlcGFpbnRTd2VlcEhvcml6b250YWxs
eSk7CisgICAgYmluZE1ldGhvZCgicmVzZXRQYWdlVmlzaWJpbGl0eSIsICZMYXlvdXRUZXN0Q29u
dHJvbGxlcjo6cmVzZXRQYWdlVmlzaWJpbGl0eSk7CiAgICAgYmluZE1ldGhvZCgicmVzdW1lQW5p
bWF0aW9ucyIsICZMYXlvdXRUZXN0Q29udHJvbGxlcjo6cmVzdW1lQW5pbWF0aW9ucyk7CiAgICAg
YmluZE1ldGhvZCgic2FtcGxlU1ZHQW5pbWF0aW9uRm9yRWxlbWVudEF0VGltZSIsICZMYXlvdXRU
ZXN0Q29udHJvbGxlcjo6c2FtcGxlU1ZHQW5pbWF0aW9uRm9yRWxlbWVudEF0VGltZSk7CiAgICAg
YmluZE1ldGhvZCgic2V0QWNjZXB0c0VkaXRpbmciLCAmTGF5b3V0VGVzdENvbnRyb2xsZXI6OnNl
dEFjY2VwdHNFZGl0aW5nKTsKQEAgLTE1Nyw2ICsxNTgsNyBAQCBMYXlvdXRUZXN0Q29udHJvbGxl
cjo6TGF5b3V0VGVzdENvbnRyb2xsZXIoVGVzdFNoZWxsKiBzaGVsbCkKICAgICBiaW5kTWV0aG9k
KCJzZXRNb2NrR2VvbG9jYXRpb25FcnJvciIsICZMYXlvdXRUZXN0Q29udHJvbGxlcjo6c2V0TW9j
a0dlb2xvY2F0aW9uRXJyb3IpOwogICAgIGJpbmRNZXRob2QoInNldE1vY2tHZW9sb2NhdGlvblBv
c2l0aW9uIiwgJkxheW91dFRlc3RDb250cm9sbGVyOjpzZXRNb2NrR2VvbG9jYXRpb25Qb3NpdGlv
bik7CiAgICAgYmluZE1ldGhvZCgiYWRkTW9ja1NwZWVjaElucHV0UmVzdWx0IiwgJkxheW91dFRl
c3RDb250cm9sbGVyOjphZGRNb2NrU3BlZWNoSW5wdXRSZXN1bHQpOworICAgIGJpbmRNZXRob2Qo
InNldFBhZ2VWaXNpYmlsaXR5IiwgJkxheW91dFRlc3RDb250cm9sbGVyOjpzZXRQYWdlVmlzaWJp
bGl0eSk7CiAgICAgYmluZE1ldGhvZCgic2V0UGx1Z2luc0VuYWJsZWQiLCAmTGF5b3V0VGVzdENv
bnRyb2xsZXI6OnNldFBsdWdpbnNFbmFibGVkKTsKICAgICBiaW5kTWV0aG9kKCJzZXRQb3B1cEJs
b2NraW5nRW5hYmxlZCIsICZMYXlvdXRUZXN0Q29udHJvbGxlcjo6c2V0UG9wdXBCbG9ja2luZ0Vu
YWJsZWQpOwogICAgIGJpbmRNZXRob2QoInNldFBPU0lYTG9jYWxlIiwgJkxheW91dFRlc3RDb250
cm9sbGVyOjpzZXRQT1NJWExvY2FsZSk7CkBAIC0xNzY2LDMgKzE3NjgsMTkgQEAgdm9pZCBMYXlv
dXRUZXN0Q29udHJvbGxlcjo6c2V0UGx1Z2luc0VuYWJsZWQoY29uc3QgQ3BwQXJndW1lbnRMaXN0
JiBhcmd1bWVudHMsIEMKICAgICB9CiAgICAgcmVzdWx0LT5zZXROdWxsKCk7CiB9CisKK3ZvaWQg
TGF5b3V0VGVzdENvbnRyb2xsZXI6OnJlc2V0UGFnZVZpc2liaWxpdHkoY29uc3QgQ3BwQXJndW1l
bnRMaXN0JiBhcmd1bWVudHMsIENwcFZhcmlhbnQqIHJlc3VsdCkKK3sKKyAgICBtX3NoZWxsLT53
ZWJWaWV3KCktPnNldFZpc2liaWxpdHlTdGF0ZShXZWJQYWdlVmlzaWJpbGl0eVN0YXRlVmlzaWJs
ZSwgdHJ1ZSk7Cit9CisKK3ZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OnNldFBhZ2VWaXNpYmls
aXR5KGNvbnN0IENwcEFyZ3VtZW50TGlzdCYgYXJndW1lbnRzLCBDcHBWYXJpYW50KiByZXN1bHQp
Cit7CisgICAgaWYgKGFyZ3VtZW50cy5zaXplKCkgPiAwICYmIGFyZ3VtZW50c1swXS5pc1N0cmlu
ZygpKSB7CisgICAgICAgIHN0cmluZyBuZXdWaXNpYmlsaXR5ID0gYXJndW1lbnRzWzBdLnRvU3Ry
aW5nKCk7CisgICAgICAgIGlmIChuZXdWaXNpYmlsaXR5ID09ICJ2aXNpYmxlIikKKyAgICAgICAg
ICAgIG1fc2hlbGwtPndlYlZpZXcoKS0+c2V0VmlzaWJpbGl0eVN0YXRlKFdlYlBhZ2VWaXNpYmls
aXR5U3RhdGVWaXNpYmxlLCBmYWxzZSk7CisgICAgICAgIGVsc2UgaWYgKG5ld1Zpc2liaWxpdHkg
PT0gImhpZGRlbiIpCisgICAgICAgICAgICBtX3NoZWxsLT53ZWJWaWV3KCktPnNldFZpc2liaWxp
dHlTdGF0ZShXZWJQYWdlVmlzaWJpbGl0eVN0YXRlSGlkZGVuLCBmYWxzZSk7CisgICAgfQorfQpk
aWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vTGF5b3V0VGVzdENvbnRy
b2xsZXIuaCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0xheW91dFRlc3RDb250cm9s
bGVyLmgKaW5kZXggNDRhYzJjZC4uMTA3MWFjZCAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRl
clRyZWUvY2hyb21pdW0vTGF5b3V0VGVzdENvbnRyb2xsZXIuaAorKysgYi9Ub29scy9EdW1wUmVu
ZGVyVHJlZS9jaHJvbWl1bS9MYXlvdXRUZXN0Q29udHJvbGxlci5oCkBAIC0zNjUsNiArMzY1LDEw
IEBAIHB1YmxpYzoKICAgICAvLyBFbmFibGUgb3IgZGlzYWJsZSBwbHVnaW5zLgogICAgIHZvaWQg
c2V0UGx1Z2luc0VuYWJsZWQoY29uc3QgQ3BwQXJndW1lbnRMaXN0JiwgQ3BwVmFyaWFudCopOwog
CisgICAgLy8gU3dpdGNoIHRoZSB2aXNpYmlsaXR5IG9mIHRoZSBwYWdlLgorICAgIHZvaWQgc2V0
UGFnZVZpc2liaWxpdHkoY29uc3QgQ3BwQXJndW1lbnRMaXN0JiwgQ3BwVmFyaWFudCopOworICAg
IHZvaWQgcmVzZXRQYWdlVmlzaWJpbGl0eShjb25zdCBDcHBBcmd1bWVudExpc3QmLCBDcHBWYXJp
YW50Kik7CisKIHB1YmxpYzoKICAgICAvLyBUaGUgZm9sbG93aW5nIG1ldGhvZHMgYXJlIG5vdCBl
eHBvc2VkIHRvIEphdmFTY3JpcHQuCiAgICAgdm9pZCBzZXRXb3JrUXVldWVGcm96ZW4oYm9vbCBm
cm96ZW4pIHsgbV93b3JrUXVldWUuc2V0RnJvemVuKGZyb3plbik7IH0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>92449</attachid>
            <date>2011-05-05 12:37:46 -0700</date>
            <delta_ts>2011-05-05 16:53:45 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>page_visibility_api.patch</filename>
            <type>text/plain</type>
            <size>58189</size>
            <attacher name="Shishir Agrawal">shishir</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA5ODVmODEzLi4yY2Q5YWM2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjYgQEAKKzIwMTEtMDUt
MDUgIFNoaXNoaXIgQWdyYXdhbCAgPHNoaXNoaXJAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEltcGxlbWVudCBQYWdlIFZpc2li
aWxpdHkgQVBJLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9NTQxODEKKworICAgICAgICAqIGZhc3QvZXZlbnRzL3BhZ2UtdmlzaWJpbGl0eS1pZnJhbWUt
ZGVsZXRlLXRlc3QtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2V2ZW50cy9w
YWdlLXZpc2liaWxpdHktaWZyYW1lLWRlbGV0ZS10ZXN0Lmh0bWw6IEFkZGVkLgorICAgICAgICAq
IGZhc3QvZXZlbnRzL3BhZ2UtdmlzaWJpbGl0eS1pZnJhbWUtbW92ZS10ZXN0LWV4cGVjdGVkLnR4
dDogQWRkZWQuCisgICAgICAgICogZmFzdC9ldmVudHMvcGFnZS12aXNpYmlsaXR5LWlmcmFtZS1t
b3ZlLXRlc3QuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9ldmVudHMvcGFnZS12aXNpYmls
aXR5LWlmcmFtZS1wcm9wYWdhdGlvbi10ZXN0LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAg
ICogZmFzdC9ldmVudHMvcGFnZS12aXNpYmlsaXR5LWlmcmFtZS1wcm9wYWdhdGlvbi10ZXN0Lmh0
bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZXZlbnRzL3BhZ2UtdmlzaWJpbGl0eS10cmFuc2l0
aW9uLXRlc3QtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2V2ZW50cy9wYWdl
LXZpc2liaWxpdHktdHJhbnNpdGlvbi10ZXN0Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3Qv
ZXZlbnRzL3Jlc291cmNlcy9wYWdlLXZpc2liaWxpdHktaWZyYW1lLWRlbGV0ZS10ZXN0LWZyYW1l
Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZXZlbnRzL3Jlc291cmNlcy9wYWdlLXZpc2li
aWxpdHktaWZyYW1lLW1vdmUtbmV3LXBhZ2UuaHRtbDogQWRkZWQuCisgICAgICAgICogcGxhdGZv
cm0vY2hyb21pdW0vdGVzdF9leHBlY3RhdGlvbnMudHh0OgorICAgICAgICAqIHBsYXRmb3JtL2d0
ay9Ta2lwcGVkOgorICAgICAgICAqIHBsYXRmb3JtL21hYy9Ta2lwcGVkOgorICAgICAgICAqIHBs
YXRmb3JtL3F0L1NraXBwZWQ6CisgICAgICAgICogcGxhdGZvcm0vd2luL1NraXBwZWQ6CisKIDIw
MTEtMDUtMDUgIEFuZHJleSBLb3N5YWtvdiAgPGNhc2VxQGNocm9taXVtLm9yZz4KIAogICAgICAg
ICBVbnJldmlld2VkLiBTa2lwIGluc3BlY3Rvci9jb25zb2xlL2NvbnNvbGUtc2hhZG93LWRvbS1h
Y2Nlc3MuaHRtbCAoY3Jhc2hlcyBpbiBkZWJ1ZykKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zh
c3QvZXZlbnRzL3BhZ2UtdmlzaWJpbGl0eS1pZnJhbWUtZGVsZXRlLXRlc3QtZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvcGFnZS12aXNpYmlsaXR5LWlmcmFtZS1kZWxldGUt
dGVzdC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMWQy
MGEzOQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3BhZ2Utdmlz
aWJpbGl0eS1pZnJhbWUtZGVsZXRlLXRlc3QtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTIgQEAK
K1RoaXMgdGVzdCBjaGVja3MgdGhhdCB0aGUgcGFnZSB2aXNpYmlsaXR5IGV2ZW50IHByb2FnYXRp
b24gZG9lcyBub3QgY3Jhc2ggdGhlIGJyb3dzZXIgd2hlbiBmcmFtZXMgYXJlIGFkZGVkIC8gZGVs
ZXRlZC4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNz
YWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK0xvYWRlZCBhbGwgZnJhbWVz
LgorVmlzaWJpbGl0eSBvZiBtYWluIGRvY3VtZW50IGNoYW5nZWQuCitWaXNpYmlsaXR5IG9mIHN1
YiBmcmFtZSAyIGNoYW5nZWQuCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RF
U1QgQ09NUExFVEUKKyAgIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvcGFn
ZS12aXNpYmlsaXR5LWlmcmFtZS1kZWxldGUtdGVzdC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9l
dmVudHMvcGFnZS12aXNpYmlsaXR5LWlmcmFtZS1kZWxldGUtdGVzdC5odG1sCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjg4Y2NiNjIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9mYXN0L2V2ZW50cy9wYWdlLXZpc2liaWxpdHktaWZyYW1lLWRlbGV0ZS10ZXN0Lmh0
bWwKQEAgLTAsMCArMSwxMTEgQEAKKzxodG1sPgorPGJvZHkgb25sb2FkPSJzdGFydFRlc3QoKSI+
CisKKzxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+CisK
KzxzY3JpcHQgc3JjPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0Pgor
Cis8c2NyaXB0PgorCitkZXNjcmlwdGlvbigiVGhpcyB0ZXN0IGNoZWNrcyB0aGF0IHRoZSBwYWdl
IHZpc2liaWxpdHkgZXZlbnQgcHJvYWdhdGlvbiBkb2VzIG5vdCBjcmFzaCB0aGUgYnJvd3NlciB3
aGVuIGZyYW1lcyBhcmUgYWRkZWQgLyBkZWxldGVkLiIpOworCit2YXIganNUZXN0SXNBc3luYyA9
IHRydWU7CisKK3ZhciBudW1WaXNpYmlsaXR5Q2hhbmdlcyA9IDA7Cit2YXIgZnJhbWUxLCBmcmFt
ZTIsIGZyYW1lMywgZnJhbWU0LCBmcmFtZTUsIHN1YmZyYW1lMSwgc3ViRnJhbWUyLCBzdWJGcmFt
ZTM7CisKK3ZhciBkb2NzTG9hZGVkID0gMDsKK3ZhciBtYWluUGFnZVZpc2liaWxpdHlDaGFuZ2VE
b25lID0gZmFsc2U7Cit2YXIgZnJhbWUyVmlzaWJsaXR5Q2hhbmdlRG9uZSA9IGZhbHNlOworCitm
dW5jdGlvbiBzdGFydFRlc3QoKSB7CisgICAgKytkb2NzTG9hZGVkOworICAgIGlmIChkb2NzTG9h
ZGVkIDwgOCkgeworICAgICAgcmV0dXJuOworICAgfQorCisgICAgZGVidWcoIkxvYWRlZCBhbGwg
ZnJhbWVzLiIpOworCisgICAgZnJhbWUxID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRvcEZy
YW1lMSIpOworICAgIGZyYW1lMiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0b3BGcmFtZTIi
KTsKKyAgICBmcmFtZTMgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidG9wRnJhbWUzIik7Cisg
ICAgZnJhbWU0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRvcEZyYW1lNCIpOworICAgIHN1
YkZyYW1lMSA9IGZyYW1lMy5jb250ZW50RG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInN1YklmcmFt
ZTEiKTsKKyAgICBzdWJGcmFtZTIgPSBmcmFtZTMuY29udGVudERvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCJzdWJJZnJhbWUyIik7CisKKyAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKAorICAg
ICAgICAid2Via2l0dmlzaWJpbGl0eXN0YXRlY2hhbmdlIiwgb25NYWluUGFnZVZpc2liaWxpdHlD
aGFuZ2UsIGZhbHNlKTsKKyAgICBmcmFtZTIuY29udGVudERvY3VtZW50LmFkZEV2ZW50TGlzdGVu
ZXIoCisgICAgICAgICJ3ZWJraXR2aXNpYmlsaXR5c3RhdGVjaGFuZ2UiLCBvbkZyYW1lMlZpc2li
aWxpdHlDaGFuZ2UsIGZhbHNlKTsKKyAgICAvLyBDaGFuZ2UgdGhlIHZpc2liaWxpdHkgb2YgdGhl
IGN1cnJlbnQgcGFnZSB0byBpbnZpc2libGUuCisgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29u
dHJvbGxlcikgeworICAgICAgICBudW1WaXNpYmlsaXR5Q2hhbmdlcysrOworICAgICAgICBsYXlv
dXRUZXN0Q29udHJvbGxlci5zZXRQYWdlVmlzaWJpbGl0eSgiaGlkZGVuIik7CisgICAgfQorfQor
CitmdW5jdGlvbiBmaW5pc2hUZXN0KCkgeworICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRy
b2xsZXIpCisgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLnJlc2V0UGFnZVZpc2liaWxpdHko
KTsKKyAgICBmaW5pc2hKU1Rlc3QoKTsKK30KKworZnVuY3Rpb24gb25NYWluUGFnZVZpc2liaWxp
dHlDaGFuZ2UoKSB7CisgICAgaWYgKG1haW5QYWdlVmlzaWJpbGl0eUNoYW5nZURvbmUgJiYgZnJh
bWUyVmlzaWJsaXR5Q2hhbmdlRG9uZSkgeworICAgICAgICBmaW5pc2hUZXN0KCk7CisgICAgfSBl
bHNlIGlmICghbWFpblBhZ2VWaXNpYmlsaXR5Q2hhbmdlRG9uZSkgeworICAgICAgICBkZWJ1Zygi
VmlzaWJpbGl0eSBvZiBtYWluIGRvY3VtZW50IGNoYW5nZWQuIik7CisgICAgICAgIC8vIERlbGV0
ZSBmcmFtZSA0LgorICAgICAgICBkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKGZyYW1lNCk7CisK
KyAgICAgICAgLy8gRGVsZXRlIHN1YmZyYW1lIDIuCisgICAgICAgIGZyYW1lMy5jb250ZW50RG9j
dW1lbnQuYm9keS5yZW1vdmVDaGlsZChzdWJGcmFtZTIpOworCisgICAgICAgIC8vIEFkZCBhIG5l
dyBmcmFtZSB0byB0b3AgbGV2ZWwuCisgICAgICAgIGZyYW1lNSA9IGRvY3VtZW50LmNyZWF0ZUVs
ZW1lbnQoImlmcmFtZSIpOworICAgICAgICBmcmFtZTUuc3JjID0gJyc7CisgICAgICAgIGRvY3Vt
ZW50LmJvZHkuYXBwZW5kQ2hpbGQoZnJhbWU1KTsKKworICAgICAgICAvLyBBZGQgYSBuZXcgZnJh
bWUgdG8gZnJhbWUyLgorICAgICAgICBzdWJGcmFtZTMgPSBmcmFtZTIuY29udGVudERvY3VtZW50
LmNyZWF0ZUVsZW1lbnQoImlmcmFtZSIpOworICAgICAgICBzdWJGcmFtZTMuc3JjID0gJyc7Cisg
ICAgICAgIGZyYW1lMi5jb250ZW50RG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChzdWJGcmFtZTMp
OworCisgICAgICAgIG1haW5QYWdlVmlzaWJpbGl0eUNoYW5nZURvbmUgPSB0cnVlOworICAgIH0K
KworICAgIGlmIChtYWluUGFnZVZpc2liaWxpdHlDaGFuZ2VEb25lICYmIGZyYW1lMlZpc2libGl0
eUNoYW5nZURvbmUpIHsKKyAgICAgICAgZmluaXNoVGVzdCgpOworICAgIH0KK30KKworZnVuY3Rp
b24gb25GcmFtZTJWaXNpYmlsaXR5Q2hhbmdlKCkgeworICAgIGlmIChtYWluUGFnZVZpc2liaWxp
dHlDaGFuZ2VEb25lICYmIGZyYW1lMlZpc2libGl0eUNoYW5nZURvbmUpIHsKKyAgICAgICAgZmlu
aXNoVGVzdCgpOworICAgIH0gZWxzZSBpZiAoIWZyYW1lMlZpc2libGl0eUNoYW5nZURvbmUpIHsK
KyAgICAgICAgZGVidWcoIlZpc2liaWxpdHkgb2Ygc3ViIGZyYW1lIDIgY2hhbmdlZC4iKTsKKwor
ICAgICAgICAvLyBEZWxldGUgZnJhbWUgMS4KKyAgICAgICAgZG9jdW1lbnQuYm9keS5yZW1vdmVD
aGlsZChmcmFtZTEpOworCisgICAgICAgIGZyYW1lMlZpc2libGl0eUNoYW5nZURvbmUgPSB0cnVl
OworICAgIH0KKworICAgIGlmIChtYWluUGFnZVZpc2liaWxpdHlDaGFuZ2VEb25lICYmIGZyYW1l
MlZpc2libGl0eUNoYW5nZURvbmUpIHsKKyAgICAgICAgZmluaXNoVGVzdCgpOworICAgIH0KK30K
KyAgICAKK3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOworCis8L3NjcmlwdD4KKworPHNj
cmlwdCBzcmM9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorCis8
aWZyYW1lIGlkPSJ0b3BGcmFtZTEiIG9ubG9hZD0ic3RhcnRUZXN0KCkiID48L2lmcmFtZT4KKzxp
ZnJhbWUgaWQ9InRvcEZyYW1lMiIgb25sb2FkPSJzdGFydFRlc3QoKSIgPjwvaWZyYW1lPgorPGlm
cmFtZSBpZD0idG9wRnJhbWUzIiBvbmxvYWQ9InN0YXJ0VGVzdCgpIiBzcmM9InJlc291cmNlcy9w
YWdlLXZpc2liaWxpdHktaWZyYW1lLWRlbGV0ZS10ZXN0LWZyYW1lLmh0bWwiPjwvaWZyYW1lPgor
PGlmcmFtZSBpZD0idG9wRnJhbWU0IiBvbmxvYWQ9InN0YXJ0VGVzdCgpIiA+PC9pZnJhbWU+Cis8
L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9wYWdl
LXZpc2liaWxpdHktaWZyYW1lLW1vdmUtdGVzdC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9m
YXN0L2V2ZW50cy9wYWdlLXZpc2liaWxpdHktaWZyYW1lLW1vdmUtdGVzdC1leHBlY3RlZC50eHQK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzk0NDBjZgotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3BhZ2UtdmlzaWJpbGl0eS1pZnJhbWUtbW92
ZS10ZXN0LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDIxIEBACitUaGlzIHRlc3QgY2hlY2tzIHRo
YXQgYW4gaWZyYW1lIHRoYXQgbW92ZXMgYmV0d2VlbiBwYWdlcyB3aXRoIGRpZmZlcmVudCB2aXNp
YmlsaXR5IHdpbGwgaGF2ZSB0aGUgY29ycmVjdCB2aXNpYmlsaXR5IHZhbHVlLgorCitPbiBzdWNj
ZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBi
eSAiVEVTVCBDT01QTEVURSIuCisKKworV2luZG93IDEgTG9hZGVkCitXaW5kb3cgMiBMb2FkZWQK
K1BBU1Mgd2luZG93LmRvY3VtZW50LndlYmtpdElzVmlzaWJsZSBpcyB0cnVlCitQQVNTIHdpbmRv
dzIuZG9jdW1lbnQud2Via2l0SXNWaXNpYmxlIGlzIHRydWUKK1BBU1MgaWZyYW1lLmNvbnRlbnRE
b2N1bWVudC53ZWJraXRJc1Zpc2libGUgaXMgdHJ1ZQorUEFTUyB3aW5kb3cuZG9jdW1lbnQud2Vi
a2l0SXNWaXNpYmxlIGlzIGZhbHNlCitQQVNTIHdpbmRvdzIuZG9jdW1lbnQud2Via2l0SXNWaXNp
YmxlIGlzIHRydWUKK1BBU1MgaWZyYW1lLmNvbnRlbnREb2N1bWVudC53ZWJraXRJc1Zpc2libGUg
aXMgdHJ1ZQorQWRvcHRlZCBpZnJhbWUgdG8gV2luZG93IDEKK1BBU1Mgd2luZG93LmRvY3VtZW50
LndlYmtpdElzVmlzaWJsZSBpcyBmYWxzZQorUEFTUyB3aW5kb3cyLmRvY3VtZW50LndlYmtpdElz
VmlzaWJsZSBpcyB0cnVlCitQQVNTIGlmcmFtZS5jb250ZW50RG9jdW1lbnQud2Via2l0SXNWaXNp
YmxlIGlzIGZhbHNlCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09N
UExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvcGFnZS12aXNpYmls
aXR5LWlmcmFtZS1tb3ZlLXRlc3QuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3BhZ2Ut
dmlzaWJpbGl0eS1pZnJhbWUtbW92ZS10ZXN0Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMC4uNTE2Mzg5MgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qv
ZXZlbnRzL3BhZ2UtdmlzaWJpbGl0eS1pZnJhbWUtbW92ZS10ZXN0Lmh0bWwKQEAgLTAsMCArMSw4
MCBAQAorPGh0bWw+Cis8Ym9keSBvbmxvYWQ9InN0YXJ0VGVzdCgpIj4KKworPHAgaWQ9ImRlc2Ny
aXB0aW9uIj48L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKworPHNjcmlwdCBzcmM9Ii4u
L2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+CisKKzxzY3JpcHQ+CisKK2Rl
c2NyaXB0aW9uKCJUaGlzIHRlc3QgY2hlY2tzIHRoYXQgYW4gaWZyYW1lIHRoYXQgbW92ZXMgYmV0
d2VlbiBwYWdlcyB3aXRoIGRpZmZlcmVudCB2aXNpYmlsaXR5IHdpbGwgaGF2ZSB0aGUgY29ycmVj
dCB2aXNpYmlsaXR5IHZhbHVlLiIpOworCit2YXIganNUZXN0SXNBc3luYyA9IHRydWU7CisKK3Zh
ciB3aW5kb3cyLCBpZnJhbWU7Cit2YXIgbnVtVmlzaWJpbGl0eUNoYW5nZXMgPSAwOworCitmdW5j
dGlvbiB3aW5kb3cyTG9hZGVkKCkgeworICAgIGRlYnVnKCJXaW5kb3cgMiBMb2FkZWQiKTsKKwor
ICAgIGlmcmFtZSA9IHdpbmRvdzIuZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImlmcmFtZSIpOwor
CisgICAgc2hvdWxkQmVUcnVlKCJ3aW5kb3cuZG9jdW1lbnQud2Via2l0SXNWaXNpYmxlIik7Cisg
ICAgc2hvdWxkQmVUcnVlKCJ3aW5kb3cyLmRvY3VtZW50LndlYmtpdElzVmlzaWJsZSIpOworICAg
IHNob3VsZEJlVHJ1ZSgiaWZyYW1lLmNvbnRlbnREb2N1bWVudC53ZWJraXRJc1Zpc2libGUiKTsK
KworICAgIC8vIENoYW5nZSB0aGUgdmlzaWJpbGl0eSBvZiB0aGUgY3VycmVudCBwYWdlIHRvIGlu
dmlzaWJsZS4KKyAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7CisgICAgICAg
IG51bVZpc2liaWxpdHlDaGFuZ2VzKys7CisgICAgICAgIHdpbmRvdy5sYXlvdXRUZXN0Q29udHJv
bGxlci5zZXRQYWdlVmlzaWJpbGl0eSgiaGlkZGVuIik7CisgICAgfQorfQorCitmdW5jdGlvbiBv
blZpc2liaWxpdHlDaGFuZ2UoKSB7CisgICAgc2hvdWxkQmVGYWxzZSgid2luZG93LmRvY3VtZW50
LndlYmtpdElzVmlzaWJsZSIpOworICAgIHNob3VsZEJlVHJ1ZSgid2luZG93Mi5kb2N1bWVudC53
ZWJraXRJc1Zpc2libGUiKTsKKyAgICBzaG91bGRCZVRydWUoImlmcmFtZS5jb250ZW50RG9jdW1l
bnQud2Via2l0SXNWaXNpYmxlIik7CisKKyAgICB3aW5kb3cuZG9jdW1lbnQuYWRvcHROb2RlKGlm
cmFtZSk7CisgICAgd2luZG93LmRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoaWZyYW1lKTsKKyAg
ICBkZWJ1ZygiQWRvcHRlZCBpZnJhbWUgdG8gV2luZG93IDEiKTsKKworICAgIHNob3VsZEJlRmFs
c2UoIndpbmRvdy5kb2N1bWVudC53ZWJraXRJc1Zpc2libGUiKTsKKyAgICBzaG91bGRCZVRydWUo
IndpbmRvdzIuZG9jdW1lbnQud2Via2l0SXNWaXNpYmxlIik7CisgICAgc2hvdWxkQmVGYWxzZSgi
aWZyYW1lLmNvbnRlbnREb2N1bWVudC53ZWJraXRJc1Zpc2libGUiKTsKKworICAgIHdpbmRvdzIu
Y2xvc2UoKTsKKworICAgIGZpbmlzaFRlc3QoKTsKK30KKworZnVuY3Rpb24gc3RhcnRUZXN0KCkg
eworICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKKyAgICAgICAgbGF5b3V0
VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOworICAgICAgICBsYXlvdXRUZXN0Q29udHJv
bGxlci5zZXRDYW5PcGVuV2luZG93cygpOworICAgIH0KKworICAgIGRlYnVnKCJXaW5kb3cgMSBM
b2FkZWQiKTsKKyAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJ3ZWJraXR2aXNpYmlsaXR5
c3RhdGVjaGFuZ2UiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25WaXNpYmlsaXR5
Q2hhbmdlLCBmYWxzZSk7CisKKyAgICB3aW5kb3cyID0gd2luZG93Lm9wZW4oInJlc291cmNlcy9w
YWdlLXZpc2liaWxpdHktaWZyYW1lLW1vdmUtbmV3LXBhZ2UuaHRtbCIpOworICAgIHdpbmRvdzIu
YWRkRXZlbnRMaXN0ZW5lcigibG9hZCIsIHdpbmRvdzJMb2FkZWQsIGZhbHNlKTsKK30KKworZnVu
Y3Rpb24gZmluaXNoVGVzdCgpIHsKKyAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVy
KSB7CisgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLnJlc2V0UGFnZVZpc2liaWxpdHkoKTsK
KyAgICB9CisgICAgZmluaXNoSlNUZXN0KCk7Cit9CisKK3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQg
PSB0cnVlOworCis8L3NjcmlwdD4KKworPHNjcmlwdCBzcmM9Ii4uL2pzL3Jlc291cmNlcy9qcy10
ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorCis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9wYWdlLXZpc2liaWxpdHktaWZyYW1lLXByb3BhZ2F0aW9u
LXRlc3QtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvcGFnZS12aXNpYmls
aXR5LWlmcmFtZS1wcm9wYWdhdGlvbi10ZXN0LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwLi45NWI3OWJhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvZmFzdC9ldmVudHMvcGFnZS12aXNpYmlsaXR5LWlmcmFtZS1wcm9wYWdhdGlvbi10ZXN0LWV4
cGVjdGVkLnR4dApAQCAtMCwwICsxLDI3IEBACitUaGlzIHRlc3QgY2hlY2tzIHRoYXQgUGFnZSBW
aXNpYmlsaXR5IHN0YXRlIGV2ZW50cyBhcmUgcHJvcGFnYXRlZCB0byBjaGlsZCBmcmFtZXMuCisK
K09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZv
bGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitNYWluIFBhZ2U6CitQQVNTIGRvY3VtZW50
LndlYmtpdFZpc2liaWxpdHlTdGF0ZSBpcyAidmlzaWJsZSIKK1BBU1MgZG9jdW1lbnQud2Via2l0
SXNWaXNpYmxlIGlzIHRydWUKK0NoaWxkIEZyYW1lOgorUEFTUyBjaGlsZEZyYW1lLmNvbnRlbnRE
b2N1bWVudC53ZWJraXRWaXNpYmlsaXR5U3RhdGUgaXMgInZpc2libGUiCitQQVNTIGNoaWxkRnJh
bWUuY29udGVudERvY3VtZW50LndlYmtpdElzVmlzaWJsZSBpcyB0cnVlCitNYWluIFBhZ2U6CitQ
QVNTIGRvY3VtZW50LndlYmtpdFZpc2liaWxpdHlTdGF0ZSBpcyAiaGlkZGVuIgorUEFTUyBkb2N1
bWVudC53ZWJraXRJc1Zpc2libGUgaXMgZmFsc2UKK0NoaWxkIEZyYW1lOgorUEFTUyBjaGlsZEZy
YW1lLmNvbnRlbnREb2N1bWVudC53ZWJraXRWaXNpYmlsaXR5U3RhdGUgaXMgImhpZGRlbiIKK1BB
U1MgY2hpbGRGcmFtZS5jb250ZW50RG9jdW1lbnQud2Via2l0SXNWaXNpYmxlIGlzIGZhbHNlCitN
YWluIFBhZ2U6CitQQVNTIGRvY3VtZW50LndlYmtpdFZpc2liaWxpdHlTdGF0ZSBpcyAidmlzaWJs
ZSIKK1BBU1MgZG9jdW1lbnQud2Via2l0SXNWaXNpYmxlIGlzIHRydWUKK0NoaWxkIEZyYW1lOgor
UEFTUyBjaGlsZEZyYW1lLmNvbnRlbnREb2N1bWVudC53ZWJraXRWaXNpYmlsaXR5U3RhdGUgaXMg
InZpc2libGUiCitQQVNTIGNoaWxkRnJhbWUuY29udGVudERvY3VtZW50LndlYmtpdElzVmlzaWJs
ZSBpcyB0cnVlCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExF
VEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvcGFnZS12aXNpYmlsaXR5
LWlmcmFtZS1wcm9wYWdhdGlvbi10ZXN0Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9w
YWdlLXZpc2liaWxpdHktaWZyYW1lLXByb3BhZ2F0aW9uLXRlc3QuaHRtbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwLi5hMDE2NTY3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvZmFzdC9ldmVudHMvcGFnZS12aXNpYmlsaXR5LWlmcmFtZS1wcm9wYWdhdGlvbi10ZXN0
Lmh0bWwKQEAgLTAsMCArMSwxMjUgQEAKKzxodG1sPgorPGJvZHk+CisKKzxwIGlkPSJkZXNjcmlw
dGlvbiI+PC9wPgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+CisKKzxzY3JpcHQgc3JjPSIuLi9q
cy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorCis8c2NyaXB0PgorCitkZXNj
cmlwdGlvbigiVGhpcyB0ZXN0IGNoZWNrcyB0aGF0IFBhZ2UgVmlzaWJpbGl0eSBzdGF0ZSBldmVu
dHMgYXJlIHByb3BhZ2F0ZWQgdG8gY2hpbGQgZnJhbWVzLiIpOworCit2YXIganNUZXN0SXNBc3lu
YyA9IHRydWU7CisKK2Z1bmN0aW9uIG1ha2VQYWdlVmlzaWJsZSgpIHsKKyAgICBpZiAod2luZG93
LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5zZXRQ
YWdlVmlzaWJpbGl0eSgidmlzaWJsZSIpOworfQorCitmdW5jdGlvbiBtYWtlUGFnZUhpZGRlbigp
IHsKKyAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgICAgICBsYXlvdXRU
ZXN0Q29udHJvbGxlci5zZXRQYWdlVmlzaWJpbGl0eSgiaGlkZGVuIik7Cit9CisKK2Z1bmN0aW9u
IGNoZWNrSXNQYWdlVmlzaWJsZSgpIHsKKyAgICBkZWJ1ZygiTWFpbiBQYWdlOiIpOworICAgIHNo
b3VsZEJlRXF1YWxUb1N0cmluZygiZG9jdW1lbnQud2Via2l0VmlzaWJpbGl0eVN0YXRlIiwgInZp
c2libGUiKTsKKyAgICBzaG91bGRCZVRydWUoImRvY3VtZW50LndlYmtpdElzVmlzaWJsZSIpOwor
fQorCitmdW5jdGlvbiBjaGVja0lzUGFnZUhpZGRlbigpIHsKKyAgICBkZWJ1ZygiTWFpbiBQYWdl
OiIpOworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygiZG9jdW1lbnQud2Via2l0VmlzaWJpbGl0
eVN0YXRlIiwgImhpZGRlbiIpOworICAgIHNob3VsZEJlRmFsc2UoImRvY3VtZW50LndlYmtpdElz
VmlzaWJsZSIpOworfQorCitmdW5jdGlvbiBjaGVja0lzQ2hpbGRGcmFtZVZpc2libGUoKSB7Cisg
ICAgZGVidWcoIkNoaWxkIEZyYW1lOiIpOworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygiY2hp
bGRGcmFtZS5jb250ZW50RG9jdW1lbnQud2Via2l0VmlzaWJpbGl0eVN0YXRlIiwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgInZpc2libGUiKTsKKyAgICBzaG91bGRCZVRydWUoImNoaWxkRnJh
bWUuY29udGVudERvY3VtZW50LndlYmtpdElzVmlzaWJsZSIpOworfQorCitmdW5jdGlvbiBjaGVj
a0lzQ2hpbGRGcmFtZUhpZGRlbigpIHsKKyAgICBkZWJ1ZygiQ2hpbGQgRnJhbWU6Iik7CisgICAg
c2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJjaGlsZEZyYW1lLmNvbnRlbnREb2N1bWVudC53ZWJraXRW
aXNpYmlsaXR5U3RhdGUiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAiaGlkZGVuIik7Cisg
ICAgc2hvdWxkQmVGYWxzZSgiY2hpbGRGcmFtZS5jb250ZW50RG9jdW1lbnQud2Via2l0SXNWaXNp
YmxlIik7Cit9CisKKy8vIFdlIHdpbGwgdHJ5IHRvIGNoYW5nZSB0aGUgdmlzaWJpbGl0eSBzdGF0
ZXMgYXM6CisvLyAgMCAtIHZpc2libGUuIChJbml0aWFsIC0gaS5lLiBvbiBsb2FkKS4KKy8vICAx
IC0gaGlkZGVuCisvLyAgMiAtIHZpc2libGUKK3ZhciBudW1WaXNpYmlsaXR5Q2hhbmdlcyA9IDA7
CisKK3ZhciBjaGlsZEZyYW1lOworCitmdW5jdGlvbiBzdGFydFRlc3QoKSB7CisgICAgY2hpbGRG
cmFtZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjaGlsZEZyYW1lIik7CisgICAgY2hpbGRG
cmFtZS5jb250ZW50RG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigKKyAgICAgICAgIndlYmtpdHZp
c2liaWxpdHlzdGF0ZWNoYW5nZSIsIG9uQ2hpbGRGcmFtZVZpc2liaWxpdHlDaGFuZ2UsIGZhbHNl
KTsKKyAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJ3ZWJraXR2aXNpYmlsaXR5c3RhdGVj
aGFuZ2UiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25WaXNpYmlsaXR5Q2hhbmdl
LCBmYWxzZSk7CisKKyAgICBjaGVja0lzUGFnZVZpc2libGUoKTsKKyAgICBjaGVja0lzQ2hpbGRG
cmFtZVZpc2libGUoKTsKKworICAgIG51bVZpc2liaWxpdHlDaGFuZ2VzKys7CisgICAgbWFrZVBh
Z2VIaWRkZW4oKTsKK30KKwordmFyIG51bUZpbmlzaGVzID0gMDsKK2Z1bmN0aW9uIGZpbmlzaFRl
c3QoKSB7CisgICAgbnVtRmluaXNoZXMrKzsKKyAgICBpZiAobnVtRmluaXNoZXMgPCAyKSB7Cisg
ICAgICByZXR1cm47CisgICAgfQorCisgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxl
cikgeworICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5yZXNldFBhZ2VWaXNpYmlsaXR5KCk7
CisgICAgfQorICAgIGZpbmlzaEpTVGVzdCgpOworfQorCitmdW5jdGlvbiBvblZpc2liaWxpdHlD
aGFuZ2UoKSB7CisgICAgaWYgKG51bVZpc2liaWxpdHlDaGFuZ2VzID09IDEpIHsKKyAgICAgICAg
Y2hlY2tJc1BhZ2VIaWRkZW4oKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0gZWxzZSBpZiAobnVt
VmlzaWJpbGl0eUNoYW5nZXMgPT0gMikgeworICAgICAgICBjaGVja0lzUGFnZVZpc2libGUoKTsK
KyAgICAgICAgZmluaXNoVGVzdCgpOworICAgICAgICByZXR1cm47CisgICAgfSBlbHNlIHsKKyAg
ICAgICAgdGVzdEZhaWxlZCgiVG9vIG1hbnkgdmlzaWJpbGl0eSB0cmFuc2l0aW9ucyIpOworICAg
ICAgICBmaW5pc2hUZXN0KCk7CisgICAgICAgIHJldHVybjsKKyAgICB9Cit9CisKK2Z1bmN0aW9u
IG9uQ2hpbGRGcmFtZVZpc2liaWxpdHlDaGFuZ2UoKSB7CisgICAgaWYgKG51bVZpc2liaWxpdHlD
aGFuZ2VzID09IDEpIHsKKyAgICAgICAgY2hlY2tJc0NoaWxkRnJhbWVIaWRkZW4oKTsKKyAgICAg
ICAgbnVtVmlzaWJpbGl0eUNoYW5nZXMrKzsKKyAgICAgICAgbWFrZVBhZ2VWaXNpYmxlKCk7Cisg
ICAgICAgIHJldHVybjsKKyAgICB9IGVsc2UgaWYgKG51bVZpc2liaWxpdHlDaGFuZ2VzID09IDIp
IHsKKyAgICAgICAgY2hlY2tJc0NoaWxkRnJhbWVWaXNpYmxlKCk7CisgICAgICAgIGZpbmlzaFRl
c3QoKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0gZWxzZSB7CisgICAgICAgIHRlc3RGYWlsZWQo
IkNoaWxkIEZyYW1lOiBUb28gbWFueSB2aXNpYmlsaXR5IHRyYW5zaXRpb25zIik7CisgICAgICAg
IGZpbmlzaFRlc3QoKTsKKyAgICB9Cit9CisKK3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVl
OworCis8L3NjcmlwdD4KKworPHNjcmlwdCBzcmM9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXBv
c3QuanMiPjwvc2NyaXB0PgorCis8aWZyYW1lIGlkPSJjaGlsZEZyYW1lIiBvbmxvYWQ9InN0YXJ0
VGVzdCgpIj48L2lmcmFtZT4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2Zhc3QvZXZlbnRzL3BhZ2UtdmlzaWJpbGl0eS10cmFuc2l0aW9uLXRlc3QtZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvcGFnZS12aXNpYmlsaXR5LXRyYW5zaXRpb24t
dGVzdC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjVh
OWI1ZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3BhZ2Utdmlz
aWJpbGl0eS10cmFuc2l0aW9uLXRlc3QtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTcgQEAKK1Ro
aXMgdGVzdCBjaGVja3MgdGhhdCBQYWdlIFZpc2liaWxpdHkgc3RhdGUgdmFsdWVzIGFyZSBjb3Jy
ZWN0IGFuZCB0aGUgZXZlbnQgY2hhbmdlcyBhcmUgZmlyZWQgY29ycmVjdGx5LgorCitPbiBzdWNj
ZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBi
eSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBkb2N1bWVudC53ZWJraXRWaXNpYmlsaXR5U3Rh
dGUgaXMgInZpc2libGUiCitQQVNTIGRvY3VtZW50LndlYmtpdElzVmlzaWJsZSBpcyB0cnVlCitQ
QVNTIGRvY3VtZW50LndlYmtpdFZpc2liaWxpdHlTdGF0ZSBpcyAiaGlkZGVuIgorUEFTUyBkb2N1
bWVudC53ZWJraXRJc1Zpc2libGUgaXMgZmFsc2UKK1BBU1MgZG9jdW1lbnQud2Via2l0VmlzaWJp
bGl0eVN0YXRlIGlzICJoaWRkZW4iCitQQVNTIGRvY3VtZW50LndlYmtpdElzVmlzaWJsZSBpcyBm
YWxzZQorUEFTUyBkb2N1bWVudC53ZWJraXRWaXNpYmlsaXR5U3RhdGUgaXMgInZpc2libGUiCitQ
QVNTIGRvY3VtZW50LndlYmtpdElzVmlzaWJsZSBpcyB0cnVlCitQQVNTIHN1Y2Nlc3NmdWxseVBh
cnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZmFzdC9ldmVudHMvcGFnZS12aXNpYmlsaXR5LXRyYW5zaXRpb24tdGVzdC5odG1sIGIvTGF5b3V0
VGVzdHMvZmFzdC9ldmVudHMvcGFnZS12aXNpYmlsaXR5LXRyYW5zaXRpb24tdGVzdC5odG1sCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQyYWJjYjAKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9wYWdlLXZpc2liaWxpdHktdHJhbnNpdGlvbi10
ZXN0Lmh0bWwKQEAgLTAsMCArMSw4OSBAQAorPGh0bWw+Cis8Ym9keSBvbmxvYWQ9J3N0YXJ0VGVz
dCgpJz4KKworPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rp
dj4KKworPHNjcmlwdCBzcmM9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3Jp
cHQ+CisKKzxzY3JpcHQ+CisKK2Rlc2NyaXB0aW9uKCJUaGlzIHRlc3QgY2hlY2tzIHRoYXQgUGFn
ZSBWaXNpYmlsaXR5IHN0YXRlIHZhbHVlcyBhcmUgY29ycmVjdCBhbmQgdGhlIGV2ZW50IGNoYW5n
ZXMgYXJlIGZpcmVkIGNvcnJlY3RseS4iKTsKKwordmFyIGpzVGVzdElzQXN5bmMgPSB0cnVlOwor
CitmdW5jdGlvbiBtYWtlUGFnZVZpc2libGUoKSB7CisgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0
Q29udHJvbGxlcikKKyAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuc2V0UGFnZVZpc2liaWxp
dHkoInZpc2libGUiKTsKK30KKworZnVuY3Rpb24gbWFrZVBhZ2VIaWRkZW4oKSB7CisgICAgaWYg
KHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xs
ZXIuc2V0UGFnZVZpc2liaWxpdHkoImhpZGRlbiIpOworfQorCitmdW5jdGlvbiBjaGVja0lzUGFn
ZVZpc2libGUoKSB7CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJkb2N1bWVudC53ZWJraXRW
aXNpYmlsaXR5U3RhdGUiLCAidmlzaWJsZSIpOworICAgIHNob3VsZEJlVHJ1ZSgiZG9jdW1lbnQu
d2Via2l0SXNWaXNpYmxlIik7Cit9CisKK2Z1bmN0aW9uIGNoZWNrSXNQYWdlSGlkZGVuKCkgewor
ICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygiZG9jdW1lbnQud2Via2l0VmlzaWJpbGl0eVN0YXRl
IiwgImhpZGRlbiIpOworICAgIHNob3VsZEJlRmFsc2UoImRvY3VtZW50LndlYmtpdElzVmlzaWJs
ZSIpOworfQorCisvLyBXZSB3aWxsIHRyeSB0byBjaGFuZ2UgdGhlIHZpc2liaWxpdHkgc3RhdGVz
IGFzOgorLy8gIDAgLSB2aXNpYmxlLiAoSW5pdGlhbCAtIGkuZS4gb24gbG9hZCkuCisvLyAgMSAt
IGhpZGRlbiAoc2hvdWxkIGZpcmUgZXZlbnQpLgorLy8gIDIgLSBoaWRkZW4gKG5vIGV2ZW50KS4K
Ky8vICAzIC0gdmlzaWJsZSAoc2hvdWxkIGZpcmUgZXZlbnQpLgordmFyIG51bVZpc2liaWxpdHlD
aGFuZ2VzID0gMDsKKworZnVuY3Rpb24gc3RhcnRUZXN0KCkgeworICAgIGRvY3VtZW50LmFkZEV2
ZW50TGlzdGVuZXIoCisgICAgICAgICJ3ZWJraXR2aXNpYmlsaXR5c3RhdGVjaGFuZ2UiLCBvblZp
c2liaWxpdHlDaGFuZ2UsIGZhbHNlKTsKKyAgICBjaGVja0lzUGFnZVZpc2libGUoKTsKKyAgICBu
dW1WaXNpYmlsaXR5Q2hhbmdlcysrOworICAgIG1ha2VQYWdlSGlkZGVuKCk7Cit9CisKK2Z1bmN0
aW9uIGZpbmlzaFRlc3QoKSB7CisgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikg
eworICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5yZXNldFBhZ2VWaXNpYmlsaXR5KCk7Cisg
ICAgfQorICAgIGZpbmlzaEpTVGVzdCgpOworfQorCitmdW5jdGlvbiBvblZpc2liaWxpdHlDaGFu
Z2UoKSB7CisgICAgaWYgKG51bVZpc2liaWxpdHlDaGFuZ2VzID09IDEpIHsKKyAgICAgICAgY2hl
Y2tJc1BhZ2VIaWRkZW4oKTsKKyAgICAgICAgbnVtVmlzaWJpbGl0eUNoYW5nZXMrKzsKKyAgICAg
ICAgbWFrZVBhZ2VIaWRkZW4oKTsKKyAgICAgICAgY2hlY2tJc1BhZ2VIaWRkZW4oKTsKKyAgICAg
ICAgbnVtVmlzaWJpbGl0eUNoYW5nZXMrKzsKKyAgICAgICAgbWFrZVBhZ2VWaXNpYmxlKCk7Cisg
ICAgICAgIHJldHVybjsKKyAgICB9IGVsc2UgaWYgKG51bVZpc2liaWxpdHlDaGFuZ2VzID09IDIp
IHsKKyAgICAgICAgdGVzdEZhaWxlZCgiSW52YWxpZCBldmVudCBmaXJlZCBvbiBzYW1lIHN0YXRl
IGNoYW5nZS4iKTsKKyAgICAgICAgZmluaXNoVGVzdCgpOworICAgICAgICByZXR1cm47CisgICAg
fSBlbHNlIGlmIChudW1WaXNpYmlsaXR5Q2hhbmdlcyA9PSAzKSB7CisgICAgICAgIGNoZWNrSXNQ
YWdlVmlzaWJsZSgpOworICAgICAgICBudW1WaXNpYmlsaXR5Q2hhbmdlcysrOworICAgICAgICBm
aW5pc2hUZXN0KCk7CisgICAgICAgIHJldHVybjsKKyAgICB9IGVsc2UgeworICAgICAgICB0ZXN0
RmFpbGVkKCJUb28gbWFueSB2aXNpYmlsaXR5IHRyYW5zaXRpb25zIik7CisgICAgICAgIGZpbmlz
aFRlc3QoKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KK30KKyAgICAgICAgCit2YXIgc3VjY2Vz
c2Z1bGx5UGFyc2VkID0gdHJ1ZTsKKworPC9zY3JpcHQ+CisKKzxzY3JpcHQgc3JjPSIuLi9qcy9y
ZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKworPC9ib2R5PgorPC9odG1sPgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvcmVzb3VyY2VzL3BhZ2UtdmlzaWJp
bGl0eS1pZnJhbWUtZGVsZXRlLXRlc3QtZnJhbWUuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZXZl
bnRzL3Jlc291cmNlcy9wYWdlLXZpc2liaWxpdHktaWZyYW1lLWRlbGV0ZS10ZXN0LWZyYW1lLmh0
bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZmViYjk1NAotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3Jlc291cmNlcy9wYWdlLXZpc2liaWxp
dHktaWZyYW1lLWRlbGV0ZS10ZXN0LWZyYW1lLmh0bWwKQEAgLTAsMCArMSw2IEBACis8aHRtbD4K
Kzxib2R5IG9ubG9hZD0icGFyZW50LnN0YXJ0VGVzdCgpIj4KKzxpZnJhbWUgaWQ9InN1YklmcmFt
ZTEiIG9ubG9hZD0icGFyZW50LnBhcmVudC5zdGFydFRlc3QoKSI+PC9pZnJhbWU+Cis8aWZyYW1l
IGlkPSJzdWJJZnJhbWUyIiBvbmxvYWQ9InBhcmVudC5wYXJlbnQuc3RhcnRUZXN0KCkiPjwvaWZy
YW1lPgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVu
dHMvcmVzb3VyY2VzL3BhZ2UtdmlzaWJpbGl0eS1pZnJhbWUtbW92ZS1uZXctcGFnZS5odG1sIGIv
TGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvcmVzb3VyY2VzL3BhZ2UtdmlzaWJpbGl0eS1pZnJhbWUt
bW92ZS1uZXctcGFnZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjZk
MjhjY2MKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9yZXNvdXJj
ZXMvcGFnZS12aXNpYmlsaXR5LWlmcmFtZS1tb3ZlLW5ldy1wYWdlLmh0bWwKQEAgLTAsMCArMSw1
IEBACis8aHRtbD4KKzxib2R5PgorPGlmcmFtZSBpZD0iaWZyYW1lIj48L2lmcmFtZT4KKzwvYm9k
eT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL3Rl
c3RfZXhwZWN0YXRpb25zLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL3Rlc3Rf
ZXhwZWN0YXRpb25zLnR4dAppbmRleCA3YjcwMGEwLi42MDg3NTRlNiAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vdGVzdF9leHBlY3RhdGlvbnMudHh0CisrKyBiL0xh
eW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL3Rlc3RfZXhwZWN0YXRpb25zLnR4dApAQCAtMzk5
MCwzICszOTkwLDkgQEAgQlVHV0s2MDI0MyA6IGZ1bGxzY3JlZW4vZnVsbC1zY3JlZW4tc3RhY2tp
bmctY29udGV4dC5odG1sID0gUEFTUyBURVhUCiAKIEJVR1dLNjAyNTIgTUFDIEdQVSA6IGFuaW1h
dGlvbnMvM2QvbWF0cml4LXRyYW5zZm9ybS10eXBlLWFuaW1hdGlvbi5odG1sID0gSU1BR0UKIEJV
R1dLNjAyNTIgTUFDIEdQVSA6IGFuaW1hdGlvbnMvM2Qvc3RhdGUtYXQtZW5kLWV2ZW50LXRyYW5z
Zm9ybS5odG1sID0gSU1BR0UKKworLy8gUGFnZSB2aXNpYmlsaXR5IEFQSSBub3QgdHVybmVkIG9u
LgorQlVHV0s1NDE4MSA6IGZhc3QvZXZlbnRzL3BhZ2UtdmlzaWJpbGl0eS1pZnJhbWUtZGVsZXRl
LXRlc3QuaHRtbCA9IFRJTUVPVVQKK0JVR1dLNTQxODEgOiBmYXN0L2V2ZW50cy9wYWdlLXZpc2li
aWxpdHktaWZyYW1lLW1vdmUtdGVzdC5odG1sID0gVElNRU9VVAorQlVHV0s1NDE4MSA6IGZhc3Qv
ZXZlbnRzL3BhZ2UtdmlzaWJpbGl0eS1pZnJhbWUtcHJvcGFnYXRpb24tdGVzdC5odG1sID0gVElN
RU9VVAorQlVHV0s1NDE4MSA6IGZhc3QvZXZlbnRzL3BhZ2UtdmlzaWJpbGl0eS10cmFuc2l0aW9u
LXRlc3QuaHRtbCA9IFRJTUVPVVQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0
ay9Ta2lwcGVkIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1NraXBwZWQKaW5kZXggYWEyMWE3
NC4uZTdiMTU4ZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1NraXBwZWQK
KysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1NraXBwZWQKQEAgLTE0MTIsMyArMTQxMiw5
IEBAIHRhYmxlcy9tb3ppbGxhX2V4cGVjdGVkX2ZhaWx1cmVzL2J1Z3MvYnVnODUwMTYuaHRtbAog
IyBIVFRQIDIwNCAoTm8gQ29udGVudCkgc2hvdWxkIGJlIGlnbm9yZWQKICMgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTYwMjA2CiBodHRwL3Rlc3RzL25hdmlnYXRpb24v
cmVzcG9uc2UyMDQuaHRtbAorCisjIFRoaXMgcGxhdGZvcm0gZG9lcyBub3Qgc3VwcG9ydCB0aGUg
UGFnZSBWaXNpYmlsaXR5IEFQSS4KK2Zhc3QvZXZlbnRzL3BhZ2UtdmlzaWJpbGl0eS1pZnJhbWUt
ZGVsZXRlLXRlc3QuaHRtbAorZmFzdC9ldmVudHMvcGFnZS12aXNpYmlsaXR5LWlmcmFtZS1tb3Zl
LXRlc3QuaHRtbAorZmFzdC9ldmVudHMvcGFnZS12aXNpYmlsaXR5LWlmcmFtZS1wcm9wYWdhdGlv
bi10ZXN0Lmh0bWwKK2Zhc3QvZXZlbnRzL3BhZ2UtdmlzaWJpbGl0eS10cmFuc2l0aW9uLXRlc3Qu
aHRtbApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1NraXBwZWQgYi9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9tYWMvU2tpcHBlZAppbmRleCBjMjhlYzc1Li4zNGY2ZmNkIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvU2tpcHBlZAorKysgYi9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9tYWMvU2tpcHBlZApAQCAtMzU0LDMgKzM1NCw5IEBAIGFuaW1hdGlvbnMvYW5p
bWF0aW9uLWFwaS0xLmh0bWwKICMgSFRUUCAyMDQgKE5vIENvbnRlbnQpIHNob3VsZCBiZSBpZ25v
cmVkCiAjIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02MDIwNgogaHR0
cC90ZXN0cy9uYXZpZ2F0aW9uL3Jlc3BvbnNlMjA0Lmh0bWwKKworIyBUaGlzIHBsYXRmb3JtIGRv
ZXMgbm90IHN1cHBvcnQgdGhlIFBhZ2UgVmlzaWJpbGl0eSBBUEkuCitmYXN0L2V2ZW50cy9wYWdl
LXZpc2liaWxpdHktaWZyYW1lLWRlbGV0ZS10ZXN0Lmh0bWwKK2Zhc3QvZXZlbnRzL3BhZ2Utdmlz
aWJpbGl0eS1pZnJhbWUtbW92ZS10ZXN0Lmh0bWwKK2Zhc3QvZXZlbnRzL3BhZ2UtdmlzaWJpbGl0
eS1pZnJhbWUtcHJvcGFnYXRpb24tdGVzdC5odG1sCitmYXN0L2V2ZW50cy9wYWdlLXZpc2liaWxp
dHktdHJhbnNpdGlvbi10ZXN0Lmh0bWwKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3Jt
L3F0L1NraXBwZWQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9Ta2lwcGVkCmluZGV4IGU1ZDJj
MjcuLjQ0ZDc5MGQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0L1NraXBwZWQK
KysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvU2tpcHBlZApAQCAtMjY5NiwzICsyNjk2LDkg
QEAgaHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvbWVkaWEtc3JjLWJs
b2NrZWQuaHRtbAogCiAjIEFuaW1hdGlvbiBBUEkgaXMgZGlzYWJsZWQgYnkgZGVmYXVsdAogYW5p
bWF0aW9ucy9hbmltYXRpb24tYXBpLTEuaHRtbAorCisjIFRoaXMgcGxhdGZvcm0gZG9lcyBub3Qg
c3VwcG9ydCB0aGUgUGFnZSBWaXNpYmlsaXR5IEFQSS4KK2Zhc3QvZXZlbnRzL3BhZ2UtdmlzaWJp
bGl0eS1pZnJhbWUtZGVsZXRlLXRlc3QuaHRtbAorZmFzdC9ldmVudHMvcGFnZS12aXNpYmlsaXR5
LWlmcmFtZS1tb3ZlLXRlc3QuaHRtbAorZmFzdC9ldmVudHMvcGFnZS12aXNpYmlsaXR5LWlmcmFt
ZS1wcm9wYWdhdGlvbi10ZXN0Lmh0bWwKK2Zhc3QvZXZlbnRzL3BhZ2UtdmlzaWJpbGl0eS10cmFu
c2l0aW9uLXRlc3QuaHRtbApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1Nr
aXBwZWQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vU2tpcHBlZAppbmRleCA5MDc2ZjBhLi44
NzZlMjQzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vU2tpcHBlZAorKysg
Yi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vU2tpcHBlZApAQCAtMTI4MiwzICsxMjgyLDkgQEAg
YW5pbWF0aW9ucy9hbmltYXRpb24tYXBpLTEuaHRtbAogIyBIVFRQIDIwNCAoTm8gQ29udGVudCkg
c2hvdWxkIGJlIGlnbm9yZWQKICMgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTYwMjA2CiBodHRwL3Rlc3RzL25hdmlnYXRpb24vcmVzcG9uc2UyMDQuaHRtbAorCisjIFRo
aXMgcGxhdGZvcm0gZG9lcyBub3Qgc3VwcG9ydCB0aGUgUGFnZSBWaXNpYmlsaXR5IEFQSS4KK2Zh
c3QvZXZlbnRzL3BhZ2UtdmlzaWJpbGl0eS1pZnJhbWUtZGVsZXRlLXRlc3QuaHRtbAorZmFzdC9l
dmVudHMvcGFnZS12aXNpYmlsaXR5LWlmcmFtZS1tb3ZlLXRlc3QuaHRtbAorZmFzdC9ldmVudHMv
cGFnZS12aXNpYmlsaXR5LWlmcmFtZS1wcm9wYWdhdGlvbi10ZXN0Lmh0bWwKK2Zhc3QvZXZlbnRz
L3BhZ2UtdmlzaWJpbGl0eS10cmFuc2l0aW9uLXRlc3QuaHRtbApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dApp
bmRleCBjNTRiMmVlLi4wOWZiNzg1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxp
c3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dApAQCAtMTAxMSw2ICsx
MDExLDcgQEAgU0VUKFdlYkNvcmVfU09VUkNFUwogICAgIHBhZ2UvUGFnZUdyb3VwLmNwcAogICAg
IHBhZ2UvUGFnZUdyb3VwTG9hZERlZmVycmVyLmNwcAogICAgIHBhZ2UvUGFnZVNlcmlhbGl6ZXIu
Y3BwCisgICAgcGFnZS9QYWdlVmlzaWJpbGl0eVN0YXRlLmNwcAogICAgIHBhZ2UvUGVyZm9ybWFu
Y2UuY3BwCiAgICAgcGFnZS9QZXJmb3JtYW5jZU5hdmlnYXRpb24uY3BwCiAgICAgcGFnZS9QZXJm
b3JtYW5jZVRpbWluZy5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBi
L1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBjNTIwM2NjLi5lZDY1Zjk3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsNDEgQEAKKzIwMTEtMDUtMDUgIFNoaXNoaXIgQWdyYXdhbCAgPHNoaXNo
aXJAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIEltcGxlbWVudCBQYWdlIFZpc2liaWxpdHkgQVBJLgorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTQxODEKKworICAgICAgICBUZXN0czog
ZmFzdC9ldmVudHMvcGFnZS12aXNpYmlsaXR5LWlmcmFtZS1kZWxldGUtdGVzdC5odG1sCisgICAg
ICAgICAgICAgICBmYXN0L2V2ZW50cy9wYWdlLXZpc2liaWxpdHktaWZyYW1lLW1vdmUtdGVzdC5o
dG1sCisgICAgICAgICAgICAgICBmYXN0L2V2ZW50cy9wYWdlLXZpc2liaWxpdHktaWZyYW1lLXBy
b3BhZ2F0aW9uLXRlc3QuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9ldmVudHMvcGFnZS12aXNp
YmlsaXR5LXRyYW5zaXRpb24tdGVzdC5odG1sCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoK
KyAgICAgICAgKiBHTlVtYWtlZmlsZS5saXN0LmFtOgorICAgICAgICAqIFdlYkNvcmUuZ3lwaToK
KyAgICAgICAgKiBXZWJDb3JlLnBybzoKKyAgICAgICAgKiBXZWJDb3JlLnZjcHJvai9XZWJDb3Jl
LnZjcHJvajoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6Cisg
ICAgICAgICogZG9tL0RvY3VtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50Ojp2
aXNpYmlsaXR5U3RhdGUpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OndlYmtpdFZpc2li
aWxpdHlTdGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6d2Via2l0SXNWaXNpYmxl
KToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjpkaXNwYXRjaFZpc2liaWxpdHlTdGF0ZUNo
YW5nZUV2ZW50KToKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuaDoKKyAgICAgICAgKiBkb20vRG9j
dW1lbnQuaWRsOgorICAgICAgICAqIGRvbS9FdmVudE5hbWVzLmg6CisgICAgICAgICogcGFnZS9G
cmFtZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZTo6ZGlzcGF0Y2hWaXNpYmlsaXR5U3Rh
dGVDaGFuZ2VFdmVudCk6CisgICAgICAgICogcGFnZS9GcmFtZS5oOgorICAgICAgICAqIHBhZ2Uv
UGFnZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQYWdlOjpQYWdlKToKKyAgICAgICAgKFdlYkNv
cmU6OlBhZ2U6OnNldFZpc2liaWxpdHlTdGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpQYWdlOjp2
aXNpYmlsaXR5U3RhdGUpOgorICAgICAgICAqIHBhZ2UvUGFnZS5oOgorICAgICAgICAqIHBhZ2Uv
UGFnZVZpc2liaWxpdHlTdGF0ZS5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6R2V0UGFn
ZVZpc2liaWxpdHlTdGF0ZVN0cmluZyk6CisgICAgICAgICogcGFnZS9QYWdlVmlzaWJpbGl0eVN0
YXRlLmg6IEFkZGVkLgorCiAyMDExLTA1LTA1ICBFcmljIENhcmxzb24gIDxlcmljLmNhcmxzb25A
YXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEFkYW0gUm9iZW4uCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtIGIvU291cmNlL1dlYkNvcmUvR05V
bWFrZWZpbGUubGlzdC5hbQppbmRleCBiMDQwZjk1Li4xYjMyYjQyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCisrKyBiL1NvdXJjZS9XZWJDb3JlL0dOVW1h
a2VmaWxlLmxpc3QuYW0KQEAgLTIyMjAsNiArMjIyMCw4IEBAIHdlYmNvcmVfc291cmNlcyArPSBc
CiAJU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlR3JvdXBMb2FkRGVmZXJyZXIuaCBcCiAJU291cmNl
L1dlYkNvcmUvcGFnZS9QYWdlU2VyaWFsaXplci5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL3BhZ2Uv
UGFnZVNlcmlhbGl6ZXIuaCBcCisJU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlVmlzaWJpbGl0eVN0
YXRlLmNwcCBcCisJU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlVmlzaWJpbGl0eVN0YXRlLmggXAog
CVNvdXJjZS9XZWJDb3JlL3BhZ2UvUGVyZm9ybWFuY2UuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9w
YWdlL1BlcmZvcm1hbmNlLmggXAogCVNvdXJjZS9XZWJDb3JlL3BhZ2UvUGVyZm9ybWFuY2VOYXZp
Z2F0aW9uLmNwcCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkgYi9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKaW5kZXggOWYyZmNiNi4uYmUzOWM3MSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUuZ3lwaQpAQCAtNzExLDYgKzcxMSw3IEBACiAgICAgICAgICAgICAncGFnZS9QYWdlLmgn
LAogICAgICAgICAgICAgJ3BhZ2UvUGFnZUdyb3VwLmgnLAogICAgICAgICAgICAgJ3BhZ2UvUGFn
ZVNlcmlhbGl6ZXIuaCcsCisgICAgICAgICAgICAncGFnZS9QYWdlVmlzaWJpbGl0eVN0YXRlLmgn
LAogICAgICAgICAgICAgJ3BhZ2UvUGx1Z2luSGFsdGVyQ2xpZW50LmgnLAogICAgICAgICAgICAg
J3BhZ2UvUG9zaXRpb25DYWxsYmFjay5oJywKICAgICAgICAgICAgICdwYWdlL1Bvc2l0aW9uRXJy
b3IuaCcsCkBAIC0zNDM1LDYgKzM0MzYsNyBAQAogICAgICAgICAgICAgJ3BhZ2UvUGFnZUdyb3Vw
TG9hZERlZmVycmVyLmNwcCcsCiAgICAgICAgICAgICAncGFnZS9QYWdlR3JvdXBMb2FkRGVmZXJy
ZXIuaCcsCiAgICAgICAgICAgICAncGFnZS9QYWdlU2VyaWFsaXplci5jcHAnLAorICAgICAgICAg
ICAgJ3BhZ2UvUGFnZVZpc2liaWxpdHlTdGF0ZS5jcHAnLAogICAgICAgICAgICAgJ3BhZ2UvUGVy
Zm9ybWFuY2UuY3BwJywKICAgICAgICAgICAgICdwYWdlL1BlcmZvcm1hbmNlLmgnLAogICAgICAg
ICAgICAgJ3BhZ2UvUGVyZm9ybWFuY2VOYXZpZ2F0aW9uLmNwcCcsCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnBybyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUucHJvCmluZGV4
IDg0ODJjMDMuLjZhMTJiMzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUucHJv
CisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUucHJvCkBAIC05MjEsNiArOTIxLDcgQEAgU09V
UkNFUyArPSBcCiAgICAgcGFnZS9QYWdlR3JvdXAuY3BwIFwKICAgICBwYWdlL1BhZ2VHcm91cExv
YWREZWZlcnJlci5jcHAgXAogICAgIHBhZ2UvUGFnZVNlcmlhbGl6ZXIuY3BwIFwKKyAgICBwYWdl
L1BhZ2VWaXNpYmlsaXR5U3RhdGUuY3BwIFwKICAgICBwYWdlL1BlcmZvcm1hbmNlLmNwcCBcCiAg
ICAgcGFnZS9QZXJmb3JtYW5jZU5hdmlnYXRpb24uY3BwIFwKICAgICBwYWdlL1BlcmZvcm1hbmNl
VGltaW5nLmNwcCBcCkBAIC0xODYyLDYgKzE4NjMsNyBAQCBIRUFERVJTICs9IFwKICAgICBwYWdl
L1BhZ2VHcm91cExvYWREZWZlcnJlci5oIFwKICAgICBwYWdlL1BhZ2UuaCBcCiAgICAgcGFnZS9Q
YWdlU2VyaWFsaXplci5oIFwKKyAgICBwYWdlL1BhZ2VWaXNpYmlsaXR5U3RhdGUuaCBcCiAgICAg
cGFnZS9QbHVnaW5IYWx0ZXIuaCBcCiAgICAgcGFnZS9QbHVnaW5IYWx0ZXJDbGllbnQuaCBcCiAg
ICAgcGFnZS9QcmludENvbnRleHQuaCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9q
L1dlYkNvcmUudmNwcm9qCmluZGV4IGUyYzhmNTUuLmZlMWM0YWMgMTAwNzU1Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCisrKyBiL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCkBAIC0yNDc1MCw2ICsyNDc1MCwxMiBA
QAogCQkJCT4KIAkJCTwvRmlsZT4KIAkJCTxGaWxlCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxwYWdl
XFBhZ2VWaXNpYmlsaXR5U3RhdGUuY3BwIgorCQkJCT4KKwkJCTxGaWxlCisJCQkJUmVsYXRpdmVQ
YXRoPSIuLlxwYWdlXFBhZ2VWaXNpYmlsaXR5U3RhdGUuaCIKKwkJCQk+CisJCQk8RmlsZQogCQkJ
CVJlbGF0aXZlUGF0aD0iLi5ccGFnZVxQZXJmb3JtYW5jZS5jcHAiCiAJCQkJPgogCQkJPC9GaWxl
PgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CmluZGV4IDQzOWUzMTMuLjczYTYwM2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTU5MjYsNiArNTkyNiw4IEBACiAJCUZFODBE
QTY2MEU5QzQ3MDMwMDBENkY3NSAvKiBKU0dlb3Bvc2l0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGRTgwREE2MjBFOUM0NzAzMDAwRDZGNzUgLyog
SlNHZW9wb3NpdGlvbi5oICovOyB9OwogCQlGRTgwREE3MTBFOUM0NzJGMDAwRDZGNzUgLyogSlNQ
b3NpdGlvbkVycm9yLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEZFODBEQTZEMEU5QzQ3MkYwMDBENkY3NSAvKiBKU1Bvc2l0aW9uRXJyb3IuY3BwICov
OyB9OwogCQlGRTgwREE3MjBFOUM0NzJGMDAwRDZGNzUgLyogSlNQb3NpdGlvbkVycm9yLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGRTgwREE2RTBFOUM0
NzJGMDAwRDZGNzUgLyogSlNQb3NpdGlvbkVycm9yLmggKi87IH07CisJCUZGRDVCOTdBMTM1Q0M5
NzgwMEQ1RTkyQSAvKiBQYWdlVmlzaWJpbGl0eVN0YXRlLmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEZGRDVCOTc3MTM1Q0M5NzgwMEQ1RTkyQSAvKiBQ
YWdlVmlzaWJpbGl0eVN0YXRlLmNwcCAqLzsgfTsKKwkJRkZENUI5N0IxMzVDQzk3ODAwRDVFOTJB
IC8qIFBhZ2VWaXNpYmlsaXR5U3RhdGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEZGRDVCOTc4MTM1Q0M5NzgwMEQ1RTkyQSAvKiBQYWdlVmlzaWJpbGl0
eVN0YXRlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
IC8qIEVuZCBQQlhCdWlsZEZpbGUgc2VjdGlvbiAqLwogCiAvKiBCZWdpbiBQQlhDb250YWluZXJJ
dGVtUHJveHkgc2VjdGlvbiAqLwpAQCAtMTI0NDcsNiArMTI0NDksOCBAQAogCQlGRTgwREE2MjBF
OUM0NzAzMDAwRDZGNzUgLyogSlNHZW9wb3NpdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBKU0dlb3Bvc2l0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CUZFODBEQTZEMEU5QzQ3MkYwMDBENkY3NSAvKiBKU1Bvc2l0aW9uRXJyb3IuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNQb3NpdGlvbkVycm9yLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRkU4MERBNkUwRTlDNDcyRjAwMEQ2Rjc1IC8qIEpTUG9z
aXRpb25FcnJvci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU1Bvc2l0aW9u
RXJyb3IuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRkZENUI5NzcxMzVDQzk3ODAw
RDVFOTJBIC8qIFBhZ2VWaXNpYmlsaXR5U3RhdGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gUGFnZVZpc2liaWxpdHlTdGF0ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCUZGRDVCOTc4MTM1Q0M5NzgwMEQ1RTkyQSAvKiBQYWdlVmlzaWJpbGl0eVN0
YXRlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBhZ2VWaXNpYmlsaXR5U3Rh
dGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIC8qIEVuZCBQQlhGaWxlUmVmZXJlbmNl
IHNlY3Rpb24gKi8KIAogLyogQmVnaW4gUEJYRnJhbWV3b3Jrc0J1aWxkUGhhc2Ugc2VjdGlvbiAq
LwpAQCAtMTQxNzIsNiArMTQxNzYsOCBAQAogCQkJCTdBNjc0QkRBMEY5RUJGNEUwMDZDRjA5OSAv
KiBQYWdlR3JvdXBMb2FkRGVmZXJyZXIuaCAqLywKIAkJCQkzNzFFNjVDRDEzNjYxRUVEMDBCRUVE
QjAgLyogUGFnZVNlcmlhbGl6ZXIuY3BwICovLAogCQkJCTM3MUU2NUNCMTM2NjFFREMwMEJFRURC
MCAvKiBQYWdlU2VyaWFsaXplci5oICovLAorCQkJCUZGRDVCOTc3MTM1Q0M5NzgwMEQ1RTkyQSAv
KiBQYWdlVmlzaWJpbGl0eVN0YXRlLmNwcCAqLywKKwkJCQlGRkQ1Qjk3ODEzNUNDOTc4MDBENUU5
MkEgLyogUGFnZVZpc2liaWxpdHlTdGF0ZS5oICovLAogCQkJCThBODQ0RDAxMTFEM0MxOEUwMDE0
MDY1QyAvKiBQZXJmb3JtYW5jZS5jcHAgKi8sCiAJCQkJOEE4NDREMDIxMUQzQzE4RTAwMTQwNjVD
IC8qIFBlcmZvcm1hbmNlLmggKi8sCiAJCQkJOEE4NDREMDMxMUQzQzE4RTAwMTQwNjVDIC8qIFBl
cmZvcm1hbmNlLmlkbCAqLywKQEAgLTIxODc2LDYgKzIxODgyLDcgQEAKIAkJCQlGMzQ3NDJFNTEz
NDM2MzNDMDA1MzFCQzIgLyogUGFnZVNjcmlwdERlYnVnU2VydmVyLmggaW4gSGVhZGVycyAqLywK
IAkJCQkzNzFFNjVDQzEzNjYxRURDMDBCRUVEQjAgLyogUGFnZVNlcmlhbGl6ZXIuaCBpbiBIZWFk
ZXJzICovLAogCQkJCUUxMjg0QUUxMTA0NDdENDUwMEVBRUI1MiAvKiBQYWdlVHJhbnNpdGlvbkV2
ZW50LmggaW4gSGVhZGVycyAqLywKKwkJCQlGRkQ1Qjk3QjEzNUNDOTc4MDBENUU5MkEgLyogUGFn
ZVZpc2liaWxpdHlTdGF0ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTFFMUVDQzMwQzkxQzkwNDAw
REMyNTVCIC8qIFBhZ2VVUkxSZWNvcmQuaCBpbiBIZWFkZXJzICovLAogCQkJCTA4ODUwNjdGMTFE
QTA0NUIwMDE4MkI5OCAvKiBQYWludEluZm8uaCBpbiBIZWFkZXJzICovLAogCQkJCTA4ODUwNjgw
MTFEQTA0NUIwMDE4MkI5OCAvKiBQYWludFBoYXNlLmggaW4gSGVhZGVycyAqLywKQEAgLTI0NzQz
LDYgKzI0NzUwLDcgQEAKIAkJCQkzNzFFNjVDRTEzNjYxRUVEMDBCRUVEQjAgLyogUGFnZVNlcmlh
bGl6ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRTEyODRBRUExMDQ0N0RFRTAwRUFFQjUyIC8q
IFBhZ2VUcmFuc2l0aW9uRXZlbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNTFFMUVDQzIwQzkx
QzkwNDAwREMyNTVCIC8qIFBhZ2VVUkxSZWNvcmQuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJRkZE
NUI5N0ExMzVDQzk3ODAwRDVFOTJBIC8qIFBhZ2VWaXNpYmlsaXR5U3RhdGUuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJRkQzMTYwQTIxMkIwMjZGNzAwQzFBMzU5IC8qIFBhbm5lci5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQlGNTVCM0RDOTEyNTFGMTJEMDAzRUYyNjkgLyogUGFzc3dvcmRJbnB1dFR5
cGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNEIyNzA5ODMwQUYyRTVFMDAwNjUxMjdGIC8qIFBh
c3RlYm9hcmRNYWMubW0gaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9Eb2N1bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCmluZGV4
IGFjNDZiZDYuLmE1YTRkMzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVu
dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcApAQCAtMTM1NCw2ICsx
MzU0LDM0IEBAIHZvaWQgRG9jdW1lbnQ6OnJlbW92ZVRpdGxlKEVsZW1lbnQqIHRpdGxlRWxlbWVu
dCkKICAgICAgICAgdXBkYXRlVGl0bGUoU3RyaW5nV2l0aERpcmVjdGlvbigpKTsKIH0KIAorI2lm
IEVOQUJMRShQQUdFX1ZJU0lCSUxJVFlfQVBJKQorUGFnZVZpc2liaWxpdHlTdGF0ZSBEb2N1bWVu
dDo6dmlzaWJpbGl0eVN0YXRlKCkgY29uc3QKK3sKKyAgICAvLyBUaGUgdmlzaWJpbGl0eSBvZiB0
aGUgZG9jdW1lbnQgaXMgaW5oZXJpdGVkIGZyb20gdGhlIHZpc2liaWxpdHkgb2YgdGhlCisgICAg
Ly8gcGFnZS4gSWYgdGhlcmUgaXMgbm8gcGFnZSBhc3NvY2lhdGVkIHdpdGggdGhlIGRvY3VtZW50
LCB3ZSB3aWxsIGFzc3VtZQorICAgIC8vIHRoYXQgdGhlIHBhZ2UgaXMgdmlzaWJsZSBpLmUuIGlu
dmlzaWJpbGl0eSBoYXMgdG8gYmUgZXhwbGljaXRseQorICAgIC8vIHNwZWNpZmllZCBieSB0aGUg
ZW1iZWRkZXIuCisgICAgaWYgKCFtX2ZyYW1lIHx8ICFtX2ZyYW1lLT5wYWdlKCkpCisgICAgICAg
IHJldHVybiBQYWdlVmlzaWJpbGl0eVN0YXRlVmlzaWJsZTsKKyAgICByZXR1cm4gbV9mcmFtZS0+
cGFnZSgpLT52aXNpYmlsaXR5U3RhdGUoKTsKK30KKworU3RyaW5nIERvY3VtZW50Ojp3ZWJraXRW
aXNpYmlsaXR5U3RhdGUoKSBjb25zdAoreworICAgIHJldHVybiBHZXRQYWdlVmlzaWJpbGl0eVN0
YXRlU3RyaW5nKHZpc2liaWxpdHlTdGF0ZSgpKTsKK30KKworYm9vbCBEb2N1bWVudDo6d2Via2l0
SXNWaXNpYmxlKCkgY29uc3QKK3sKKyAgICByZXR1cm4gdmlzaWJpbGl0eVN0YXRlKCkgPT0gUGFn
ZVZpc2liaWxpdHlTdGF0ZVZpc2libGU7Cit9CisKK3ZvaWQgRG9jdW1lbnQ6OmRpc3BhdGNoVmlz
aWJpbGl0eVN0YXRlQ2hhbmdlRXZlbnQoKQoreworICAgIGRpc3BhdGNoRXZlbnQoRXZlbnQ6OmNy
ZWF0ZShldmVudE5hbWVzKCkud2Via2l0dmlzaWJpbGl0eXN0YXRlY2hhbmdlRXZlbnQsIGZhbHNl
LCBmYWxzZSkpOworfQorI2VuZGlmCisKIFN0cmluZyBEb2N1bWVudDo6bm9kZU5hbWUoKSBjb25z
dAogewogICAgIHJldHVybiAiI2RvY3VtZW50IjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9Eb2N1bWVudC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKaW5kZXggMjMx
NWU3OS4uNzFiN2FmNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgK
KysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKQEAgLTM0LDYgKzM0LDcgQEAKICNp
bmNsdWRlICJET01UaW1lU3RhbXAuaCIKICNpbmNsdWRlICJEb2N1bWVudFRpbWluZy5oIgogI2lu
Y2x1ZGUgIkljb25VUkwuaCIKKyNpbmNsdWRlICJQYWdlVmlzaWJpbGl0eVN0YXRlLmgiCiAjaW5j
bHVkZSAiUXVhbGlmaWVkTmFtZS5oIgogI2luY2x1ZGUgIlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQu
aCIKICNpbmNsdWRlICJTdHJpbmdXaXRoRGlyZWN0aW9uLmgiCkBAIC0zMDQsNiArMzA1LDkgQEAg
cHVibGljOgogI2lmIEVOQUJMRShGVUxMU0NSRUVOX0FQSSkKICAgICBERUZJTkVfQVRUUklCVVRF
X0VWRU5UX0xJU1RFTkVSKHdlYmtpdGZ1bGxzY3JlZW5jaGFuZ2UpOwogI2VuZGlmCisjaWYgRU5B
QkxFKFBBR0VfVklTSUJJTElUWV9BUEkpCisgICAgREVGSU5FX0FUVFJJQlVURV9FVkVOVF9MSVNU
RU5FUih3ZWJraXR2aXNpYmlsaXR5c3RhdGVjaGFuZ2UpOworI2VuZGlmCiAKICAgICBWaWV3cG9y
dEFyZ3VtZW50cyB2aWV3cG9ydEFyZ3VtZW50cygpIGNvbnN0IHsgcmV0dXJuIG1fdmlld3BvcnRB
cmd1bWVudHM7IH0KIApAQCAtMzc5LDYgKzM4MywxMiBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFs
IEtVUkwgYmFzZVVSSSgpIGNvbnN0OwogCisjaWYgRU5BQkxFKFBBR0VfVklTSUJJTElUWV9BUEkp
CisgICAgU3RyaW5nIHdlYmtpdFZpc2liaWxpdHlTdGF0ZSgpIGNvbnN0OworICAgIGJvb2wgd2Vi
a2l0SXNWaXNpYmxlKCkgY29uc3Q7CisgICAgdm9pZCBkaXNwYXRjaFZpc2liaWxpdHlTdGF0ZUNo
YW5nZUV2ZW50KCk7CisjZW5kaWYKKwogICAgIFBhc3NSZWZQdHI8Tm9kZT4gYWRvcHROb2RlKFBh
c3NSZWZQdHI8Tm9kZT4gc291cmNlLCBFeGNlcHRpb25Db2RlJik7CiAKICAgICBQYXNzUmVmUHRy
PEhUTUxDb2xsZWN0aW9uPiBpbWFnZXMoKTsKQEAgLTExMzIsNiArMTE0MiwxMCBAQCBwcml2YXRl
OgogCiAgICAgdm9pZCBsb2FkRXZlbnREZWxheVRpbWVyRmlyZWQoVGltZXI8RG9jdW1lbnQ+Kik7
CiAKKyNpZiBFTkFCTEUoUEFHRV9WSVNJQklMSVRZX0FQSSkKKyAgICBQYWdlVmlzaWJpbGl0eVN0
YXRlIHZpc2liaWxpdHlTdGF0ZSgpIGNvbnN0OworI2VuZGlmCisKICAgICBpbnQgbV9ndWFyZFJl
ZkNvdW50OwogCiAgICAgT3duUHRyPENTU1N0eWxlU2VsZWN0b3I+IG1fc3R5bGVTZWxlY3RvcjsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5pZGwgYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vRG9jdW1lbnQuaWRsCmluZGV4IDVjZmFiMjQuLjg5YWU2NWUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvZG9t
L0RvY3VtZW50LmlkbApAQCAtMzM0LDYgKzMzNCwxMCBAQCBtb2R1bGUgY29yZSB7CiAgICAgICAg
IGJvb2xlYW4gaXNIVE1MRG9jdW1lbnQoKTsKICNlbmRpZgogCisgICAgICAgIC8vIFBhZ2Ugdmlz
aWJpbGl0eSBBUEkuCisgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBbQ29uZGl0aW9uYWw9UEFH
RV9WSVNJQklMSVRZX0FQSV0gRE9NU3RyaW5nIHdlYmtpdFZpc2liaWxpdHlTdGF0ZTsKKyAgICAg
ICAgcmVhZG9ubHkgYXR0cmlidXRlIFtDb25kaXRpb25hbD1QQUdFX1ZJU0lCSUxJVFlfQVBJXSBi
b29sZWFuIHdlYmtpdElzVmlzaWJsZTsKKwogICAgIH07CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9FdmVudE5hbWVzLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnROYW1l
cy5oCmluZGV4IGVjZTJhMDguLjk2ZjAzODMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9FdmVudE5hbWVzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50TmFtZXMuaApAQCAt
MTA2LDYgKzEwNiw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICBtYWNybyh1bmxvYWQpIFwK
ICAgICBtYWNybyh1cGRhdGVyZWFkeSkgXAogICAgIG1hY3JvKHZlcnNpb25jaGFuZ2UpIFwKKyAg
ICBtYWNybyh3ZWJraXR2aXNpYmlsaXR5c3RhdGVjaGFuZ2UpIFwKICAgICBtYWNybyh3cml0ZSkg
XAogICAgIG1hY3JvKHdyaXRlZW5kKSBcCiAgICAgbWFjcm8od3JpdGVzdGFydCkgXApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0ZyYW1lLmNwcAppbmRleCBhZjQ0MGRjLi4zYThkM2I1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0ZyYW1lLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lLmNwcApA
QCAtNzE4LDYgKzcxOCwxNiBAQCB2b2lkIEZyYW1lOjpzZXRET01XaW5kb3coRE9NV2luZG93KiBk
b21XaW5kb3cpCiAgICAgbV9kb21XaW5kb3cgPSBkb21XaW5kb3c7CiB9CiAKKyNpZiBFTkFCTEUo
UEFHRV9WSVNJQklMSVRZX0FQSSkKK3ZvaWQgRnJhbWU6OmRpc3BhdGNoVmlzaWJpbGl0eVN0YXRl
Q2hhbmdlRXZlbnQoKQoreworICAgIGlmIChtX2RvYykKKyAgICAgICAgbV9kb2MtPmRpc3BhdGNo
VmlzaWJpbGl0eVN0YXRlQ2hhbmdlRXZlbnQoKTsKKyAgICBmb3IgKEZyYW1lKiBjaGlsZCA9IHRy
ZWUoKS0+Zmlyc3RDaGlsZCgpOyBjaGlsZDsgY2hpbGQgPSBjaGlsZC0+dHJlZSgpLT5uZXh0U2li
bGluZygpKQorICAgICAgICBjaGlsZC0+ZGlzcGF0Y2hWaXNpYmlsaXR5U3RhdGVDaGFuZ2VFdmVu
dCgpOworfQorI2VuZGlmCisKIERPTVdpbmRvdyogRnJhbWU6OmRvbVdpbmRvdygpIGNvbnN0CiB7
CiAgICAgaWYgKCFtX2RvbVdpbmRvdykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
RnJhbWUuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWUuaAppbmRleCBiZWQzNDExLi43ZGE5
YzQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9GcmFtZS5oCkBAIC0xMTksNiArMTE5LDEwIEBAIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAogICAgICAgICB2b2lkIHRyYW5zZmVyQ2hpbGRGcmFtZVRvTmV3RG9jdW1lbnQoKTsK
IAorI2lmIEVOQUJMRShQQUdFX1ZJU0lCSUxJVFlfQVBJKQorICAgICAgICB2b2lkIGRpc3BhdGNo
VmlzaWJpbGl0eVN0YXRlQ2hhbmdlRXZlbnQoKTsKKyNlbmRpZgorCiAgICAgLy8gPT09PT09PT0g
QWxsIHB1YmxpYyBmdW5jdGlvbnMgYmVsb3cgdGhpcyBwb2ludCBhcmUgY2FuZGlkYXRlcyB0byBt
b3ZlIG91dCBvZiBGcmFtZSBpbnRvIGFub3RoZXIgY2xhc3MuID09PT09PT09CiAKICAgICAgICAg
Ym9vbCBpc0Rpc2Nvbm5lY3RlZCgpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGFnZS9QYWdlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAKaW5kZXggZjhkZGVl
Yy4uOTVlOGUyMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCkBAIC0xNjMsNiArMTYzLDkgQEAgUGFnZTo6
UGFnZShjb25zdCBQYWdlQ2xpZW50cyYgcGFnZUNsaWVudHMpCiAgICAgLCBtX3ZpZXdNb2RlKFZp
ZXdNb2RlV2luZG93ZWQpCiAgICAgLCBtX21pbmltdW1UaW1lckludGVydmFsKFNldHRpbmdzOjpk
ZWZhdWx0TWluRE9NVGltZXJJbnRlcnZhbCgpKQogICAgICwgbV9pc0VkaXRhYmxlKGZhbHNlKQor
I2lmIEVOQUJMRShQQUdFX1ZJU0lCSUxJVFlfQVBJKQorICAgICwgbV92aXNpYmlsaXR5U3RhdGUo
UGFnZVZpc2liaWxpdHlTdGF0ZVZpc2libGUpCisjZW5kaWYKIHsKICAgICBpZiAoIWFsbFBhZ2Vz
KSB7CiAgICAgICAgIGFsbFBhZ2VzID0gbmV3IEhhc2hTZXQ8UGFnZSo+OwpAQCAtOTM0LDYgKzkz
NywyMyBAQCB2b2lkIFBhZ2U6OmNoZWNrRnJhbWVDb3VudENvbnNpc3RlbmN5KCkgY29uc3QKIH0K
ICNlbmRpZgogCisjaWYgRU5BQkxFKFBBR0VfVklTSUJJTElUWV9BUEkpCit2b2lkIFBhZ2U6OnNl
dFZpc2liaWxpdHlTdGF0ZShQYWdlVmlzaWJpbGl0eVN0YXRlIHZpc2liaWxpdHlTdGF0ZSwgYm9v
bCBpc0luaXRpYWxTdGF0ZSkKK3sKKyAgICBpZiAobV92aXNpYmlsaXR5U3RhdGUgPT0gdmlzaWJp
bGl0eVN0YXRlKQorICAgICAgICByZXR1cm47CisgICAgbV92aXNpYmlsaXR5U3RhdGUgPSB2aXNp
YmlsaXR5U3RhdGU7CisKKyAgICBpZiAoIWlzSW5pdGlhbFN0YXRlICYmIG1fbWFpbkZyYW1lKQor
ICAgICAgICBtX21haW5GcmFtZS0+ZGlzcGF0Y2hWaXNpYmlsaXR5U3RhdGVDaGFuZ2VFdmVudCgp
OworfQorCitQYWdlVmlzaWJpbGl0eVN0YXRlIFBhZ2U6OnZpc2liaWxpdHlTdGF0ZSgpIGNvbnN0
Cit7CisgICAgcmV0dXJuIG1fdmlzaWJpbGl0eVN0YXRlOworfQorI2VuZGlmCisKIFBhZ2U6OlBh
Z2VDbGllbnRzOjpQYWdlQ2xpZW50cygpCiAgICAgOiBjaHJvbWVDbGllbnQoMCkKICAgICAsIGNv
bnRleHRNZW51Q2xpZW50KDApCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2Uu
aCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oCmluZGV4IDU4NGNjN2UuLjlmNjI0MzIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvUGFnZS5oCkBAIC0yMyw2ICsyMyw3IEBACiAKICNpbmNsdWRlICJGcmFtZUxvYWRlclR5
cGVzLmgiCiAjaW5jbHVkZSAiRmluZE9wdGlvbnMuaCIKKyNpbmNsdWRlICJQYWdlVmlzaWJpbGl0
eVN0YXRlLmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1TdHJpbmcuaCIKICNpbmNsdWRlICJWaWV3cG9y
dEFyZ3VtZW50cy5oIgogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CkBAIC0zMDAsNiArMzAxLDEx
IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgdm9pZCBzZXRFZGl0YWJsZShib29sIGlz
RWRpdGFibGUpIHsgbV9pc0VkaXRhYmxlID0gaXNFZGl0YWJsZTsgfQogICAgICAgICBib29sIGlz
RWRpdGFibGUoKSB7IHJldHVybiBtX2lzRWRpdGFibGU7IH0KIAorI2lmIEVOQUJMRShQQUdFX1ZJ
U0lCSUxJVFlfQVBJKQorICAgICAgICBQYWdlVmlzaWJpbGl0eVN0YXRlIHZpc2liaWxpdHlTdGF0
ZSgpIGNvbnN0OworICAgICAgICB2b2lkIHNldFZpc2liaWxpdHlTdGF0ZShQYWdlVmlzaWJpbGl0
eVN0YXRlLCBib29sKTsKKyNlbmRpZgorCiAgICAgcHJpdmF0ZToKICAgICAgICAgdm9pZCBpbml0
R3JvdXAoKTsKIApAQCAtNDA1LDYgKzQxMSwxMCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAg
ICAgIE93blB0cjxTY3JvbGxhYmxlQXJlYVNldD4gbV9zY3JvbGxhYmxlQXJlYVNldDsKIAogICAg
ICAgICBib29sIG1faXNFZGl0YWJsZTsKKworI2lmIEVOQUJMRShQQUdFX1ZJU0lCSUxJVFlfQVBJ
KQorICAgICAgICBQYWdlVmlzaWJpbGl0eVN0YXRlIG1fdmlzaWJpbGl0eVN0YXRlOworI2VuZGlm
CiAgICAgfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGFnZS9QYWdlVmlzaWJpbGl0eVN0YXRlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
UGFnZVZpc2liaWxpdHlTdGF0ZS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MC4uZmUxOGRmYQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZVZp
c2liaWxpdHlTdGF0ZS5jcHAKQEAgLTAsMCArMSw1NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
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
bmNsdWRlICJQYWdlVmlzaWJpbGl0eVN0YXRlLmgiCisKKyNpZiBFTkFCTEUoUEFHRV9WSVNJQklM
SVRZX0FQSSkKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitTdHJpbmcgR2V0UGFnZVZpc2liaWxp
dHlTdGF0ZVN0cmluZyhQYWdlVmlzaWJpbGl0eVN0YXRlIHN0YXRlKQoreworICAgIERFRklORV9T
VEFUSUNfTE9DQUwoY29uc3QgU3RyaW5nLCB2aXNpYmxlLCAoInZpc2libGUiKSk7CisgICAgREVG
SU5FX1NUQVRJQ19MT0NBTChjb25zdCBTdHJpbmcsIGhpZGRlbiwgKCJoaWRkZW4iKSk7CisKKyAg
ICBzd2l0Y2ggKHN0YXRlKSB7CisgICAgY2FzZSBQYWdlVmlzaWJpbGl0eVN0YXRlVmlzaWJsZToK
KyAgICAgICAgcmV0dXJuIHZpc2libGU7CisgICAgY2FzZSBQYWdlVmlzaWJpbGl0eVN0YXRlSGlk
ZGVuOgorICAgICAgICByZXR1cm4gaGlkZGVuOworICAgIH0KKworICAgIEFTU0VSVF9OT1RfUkVB
Q0hFRCgpOworICAgIHJldHVybiBTdHJpbmcoKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQorCisjZW5kaWYgLy8gaWYgRU5BQkxFKFBBR0VfVklTSUJJTElUWV9BUEkpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VWaXNpYmlsaXR5U3RhdGUuaCBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvUGFnZVZpc2liaWxpdHlTdGF0ZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAuLmE3ZDcwMjEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L1BhZ2VWaXNpYmlsaXR5U3RhdGUuaApAQCAtMCwwICsxLDUxIEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4K
KyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBv
ZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUg
cHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMg
cHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIg
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
CisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRP
UlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1Mg
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisg
KiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBQYWdlVmlzaWJp
bGl0eVN0YXRlX2gKKyNkZWZpbmUgUGFnZVZpc2liaWxpdHlTdGF0ZV9oCisKKyNpbmNsdWRlIDx3
dGYvdGV4dC9XVEZTdHJpbmcuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCisvLyBUaGUgZW51
bSBpcyBub3QgZmxhZyBwcm90ZWN0ZWQgYXMgaXQgaXMgdXNlZCBpbiB0aGUgV2ViS2l0IGNocm9t
aXVtIEFQSQorLy8gd2l0aG91dCBmbGFnIHByb3RlY3Rpb24uCitlbnVtIFBhZ2VWaXNpYmlsaXR5
U3RhdGUgeworICAgIFBhZ2VWaXNpYmlsaXR5U3RhdGVWaXNpYmxlLAorICAgIFBhZ2VWaXNpYmls
aXR5U3RhdGVIaWRkZW4KK307CisKKyNpZiBFTkFCTEUoUEFHRV9WSVNJQklMSVRZX0FQSSkKK1N0
cmluZyBHZXRQYWdlVmlzaWJpbGl0eVN0YXRlU3RyaW5nKFBhZ2VWaXNpYmlsaXR5U3RhdGUpOwor
I2VuZGlmCisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIGlmbmRlZiBQYWdl
VmlzaWJpbGl0eVN0YXRlX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hh
bmdlTG9nIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXggMGZkODNhZC4u
MDk2Yzc1MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKKysr
IGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMSBAQAorMjAx
MS0wNS0wNSAgU2hpc2hpciBBZ3Jhd2FsICA8c2hpc2hpckBjaHJvbWl1bS5vcmc+CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSW1wbGVtZW50IFBhZ2Ug
VmlzaWJpbGl0eSBBUEkuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD01NDE4MQorCisgICAgICAgICogV2ViS2l0Lmd5cDoKKyAgICAgICAgKiBwdWJsaWMv
V2ViUGFnZVZpc2liaWxpdHlTdGF0ZS5oOiBBZGRlZC4KKyAgICAgICAgKiBwdWJsaWMvV2ViVmll
dy5oOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3OjpzZXRWaXNpYmlsaXR5U3RhdGUpOgorICAg
ICAgICAqIHB1YmxpYy9XZWJWaWV3Q2xpZW50Lmg6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdD
bGllbnQ6OnZpc2liaWxpdHlTdGF0ZSk6CisgICAgICAgICogc3JjL1dlYlZpZXdJbXBsLmNwcDoK
KyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OldlYlZpZXdJbXBsKToKKyAgICAgICAgKFdl
YktpdDo6V2ViVmlld0ltcGw6OnNldFZpc2liaWxpdHlTdGF0ZSk6CisgICAgICAgICogc3JjL1dl
YlZpZXdJbXBsLmg6CisKIDIwMTEtMDUtMDUgIEFkYW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9y
Zz4KIAogICAgICAgICBSb2xsIENocm9taXVtIERFUFMuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL1dlYktpdC5neXAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL1dlYktpdC5n
eXAKaW5kZXggM2UwYjBkOS4uYTZlOWIyNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9XZWJLaXQuZ3lwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vV2ViS2l0Lmd5cApA
QCAtMjI3LDYgKzIyNyw3IEBACiAgICAgICAgICAgICAgICAgJ3B1YmxpYy9XZWJPcHRpb25FbGVt
ZW50LmgnLAogICAgICAgICAgICAgICAgICdwdWJsaWMvV2ViUGFnZVNlcmlhbGl6ZXIuaCcsCiAg
ICAgICAgICAgICAgICAgJ3B1YmxpYy9XZWJQYWdlU2VyaWFsaXplckNsaWVudC5oJywKKyAgICAg
ICAgICAgICAgICAncHVibGljL1dlYlBhZ2VWaXNpYmlsaXR5U3RhdGUuaCcsCiAgICAgICAgICAg
ICAgICAgJ3B1YmxpYy9XZWJQYXNzd29yZEF1dG9jb21wbGV0ZUxpc3RlbmVyLmgnLAogICAgICAg
ICAgICAgICAgICdwdWJsaWMvV2ViUGFzc3dvcmRGb3JtRGF0YS5oJywKICAgICAgICAgICAgICAg
ICAncHVibGljL1dlYlBlcmZvcm1hbmNlLmgnLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9wdWJsaWMvV2ViUGFnZVZpc2liaWxpdHlTdGF0ZS5oIGIvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9wdWJsaWMvV2ViUGFnZVZpc2liaWxpdHlTdGF0ZS5oCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAuLjU0NzRiZTQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3B1YmxpYy9XZWJQYWdlVmlzaWJpbGl0eVN0YXRlLmgKQEAgLTAsMCArMSw0
NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoK
KyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBp
biB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2ds
ZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQg
dG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0
d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09O
VFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIg
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAor
ICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNpZm5kZWYgV2ViUGFnZVZpc2liaWxpdHlTdGF0ZV9oCisjZGVmaW5lIFdlYlBhZ2VWaXNp
YmlsaXR5U3RhdGVfaAorCituYW1lc3BhY2UgV2ViS2l0IHsKKworLy8gVGhlIGZvbGxvd2luZyBl
bnVtIHNob3VsZCBiZSBjb25zaXN0ZW50IHdpdGggdGhlIFBhZ2VWaXNpYmlsaXR5U3RhdGUgZW51
bQorLy8gZGVmaW5lZCBpbiBXZWJDb3JlLgorZW51bSBXZWJQYWdlVmlzaWJpbGl0eVN0YXRlIHsK
KyAgICBXZWJQYWdlVmlzaWJpbGl0eVN0YXRlVmlzaWJsZSwKKyAgICBXZWJQYWdlVmlzaWJpbGl0
eVN0YXRlSGlkZGVuCit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJWaWV3LmggYi9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJWaWV3LmgKaW5kZXggM2U5YjNkNi4uNGEzYWI1OCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViVmlldy5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlZpZXcuaApAQCAtMzIsNiArMzIsNyBA
QAogI2RlZmluZSBXZWJWaWV3X2gKIAogI2luY2x1ZGUgIldlYkRyYWdPcGVyYXRpb24uaCIKKyNp
bmNsdWRlICJXZWJQYWdlVmlzaWJpbGl0eVN0YXRlLmgiCiAjaW5jbHVkZSAiV2ViU3RyaW5nLmgi
CiAjaW5jbHVkZSAiV2ViVmVjdG9yLmgiCiAjaW5jbHVkZSAiV2ViV2lkZ2V0LmgiCkBAIC0zNTcs
NiArMzU4LDEyIEBAIHB1YmxpYzoKICAgICAvLyBBUElzLgogICAgIHZpcnR1YWwgV2ViR3JhcGhp
Y3NDb250ZXh0M0QqIGdyYXBoaWNzQ29udGV4dDNEKCkgPSAwOwogCisgICAgLy8gVmlzaWJpbGl0
eSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLQorCisgICAgLy8gU2V0cyB0aGUgdmlzaWJpbGl0eSBvZiB0aGUgV2ViVmlldy4KKyAgICB2
aXJ0dWFsIHZvaWQgc2V0VmlzaWJpbGl0eVN0YXRlKFdlYlBhZ2VWaXNpYmlsaXR5U3RhdGUgdmlz
aWJpbGl0eVN0YXRlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbCBp
c0luaXRpYWxTdGF0ZSkgeyB9CisKIHByb3RlY3RlZDoKICAgICB+V2ViVmlldygpIHt9CiB9Owpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViVmlld0NsaWVudC5o
IGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViVmlld0NsaWVudC5oCmluZGV4IDUx
NzQzNTEuLmYzYmUzY2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGlj
L1dlYlZpZXdDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJW
aWV3Q2xpZW50LmgKQEAgLTM2LDYgKzM2LDcgQEAKICNpbmNsdWRlICJXZWJFZGl0aW5nQWN0aW9u
LmgiCiAjaW5jbHVkZSAiV2ViRmlsZUNob29zZXJDb21wbGV0aW9uLmgiCiAjaW5jbHVkZSAiV2Vi
RmlsZUNob29zZXJQYXJhbXMuaCIKKyNpbmNsdWRlICJXZWJQYWdlVmlzaWJpbGl0eVN0YXRlLmgi
CiAjaW5jbHVkZSAiV2ViUG9wdXBUeXBlLmgiCiAjaW5jbHVkZSAiV2ViU3RyaW5nLmgiCiAjaW5j
bHVkZSAiV2ViVGV4dEFmZmluaXR5LmgiCkBAIC0zMTUsNiArMzE2LDE0IEBAIHB1YmxpYzoKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgV2ViU3RyaW5nJiB1
cmwsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFdlYlN0
cmluZyYgdGl0bGUpIHsgfQogCisgICAgLy8gVmlzaWJpbGl0eSAtLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgLy8gUmV0dXJu
cyB0aGUgY3VycmVudCB2aXNpYmlsaXR5IG9mIHRoZSBXZWJWaWV3LgorICAgIHZpcnR1YWwgV2Vi
UGFnZVZpc2liaWxpdHlTdGF0ZSB2aXNpYmlsaXR5U3RhdGUoKSBjb25zdAorICAgIHsKKyAgICAg
ICAgcmV0dXJuIFdlYlBhZ2VWaXNpYmlsaXR5U3RhdGVWaXNpYmxlOworICAgIH0KKwogcHJvdGVj
dGVkOgogICAgIH5XZWJWaWV3Q2xpZW50KCkgeyB9CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9zcmMvV2ViVmlld0ltcGwuY3BwCmluZGV4IDY2ZTkyMDkuLjk0NjAyMDUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAKQEAgLTM2Niw2ICszNjYsMTAgQEAg
V2ViVmlld0ltcGw6OldlYlZpZXdJbXBsKFdlYlZpZXdDbGllbnQqIGNsaWVudCkKIAogICAgIG1f
cGFnZS0+c2V0R3JvdXBOYW1lKHBhZ2VHcm91cE5hbWUpOwogCisjaWYgRU5BQkxFKFBBR0VfVklT
SUJJTElUWV9BUEkpCisgICAgc2V0VmlzaWJpbGl0eVN0YXRlKG1fY2xpZW50LT52aXNpYmlsaXR5
U3RhdGUoKSwgdHJ1ZSk7CisjZW5kaWYKKwogICAgIG1faW5zcGVjdG9yU2V0dGluZ3NNYXAgPSBh
ZG9wdFB0cihuZXcgU2V0dGluZ3NNYXApOwogfQogCkBAIC0yNTU5LDQgKzI1NjMsMjQgQEAgV2Vi
R3JhcGhpY3NDb250ZXh0M0QqIFdlYlZpZXdJbXBsOjpncmFwaGljc0NvbnRleHQzRCgpCiAgICAg
cmV0dXJuIDA7CiB9CiAKKwordm9pZCBXZWJWaWV3SW1wbDo6c2V0VmlzaWJpbGl0eVN0YXRlKFdl
YlBhZ2VWaXNpYmlsaXR5U3RhdGUgdmlzaWJpbGl0eVN0YXRlLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGJvb2wgaXNJbml0aWFsU3RhdGUpIHsKKyNpZiBFTkFCTEUoUEFH
RV9WSVNJQklMSVRZX0FQSSkKKyAgICBpZiAoIXBhZ2UoKSkKKyAgICAgICAgcmV0dXJuOworCisg
ICAgc3dpdGNoICh2aXNpYmlsaXR5U3RhdGUpIHsKKyAgICBjYXNlIFdlYlBhZ2VWaXNpYmlsaXR5
U3RhdGVWaXNpYmxlOgorICAgICAgICBtX3BhZ2UtPnNldFZpc2liaWxpdHlTdGF0ZShQYWdlVmlz
aWJpbGl0eVN0YXRlVmlzaWJsZSwgaXNJbml0aWFsU3RhdGUpOworICAgICAgICByZXR1cm47Cisg
ICAgY2FzZSBXZWJQYWdlVmlzaWJpbGl0eVN0YXRlSGlkZGVuOgorICAgICAgICBtX3BhZ2UtPnNl
dFZpc2liaWxpdHlTdGF0ZShQYWdlVmlzaWJpbGl0eVN0YXRlSGlkZGVuLCBpc0luaXRpYWxTdGF0
ZSk7CisgICAgICAgIHJldHVybjsKKyAgICBkZWZhdWx0OgorICAgICAgICBBU1NFUlRfTk9UX1JF
QUNIRUQoKTsKKyAgICB9CisjZW5kaWYKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5oIGIvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuaAppbmRleCBkOGQ5MmE4Li5mMjkwODI3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmgKQEAgLTM1NSw2ICsz
NTUsOCBAQCBwdWJsaWM6CiAgICAgLy8gV2ViR0wuIFJldHVybnMgMCBpZiBjb21wb3NpdGluZyBz
dXBwb3J0IGlzIG5vdCBjb21waWxlZCBpbi4KICAgICB2aXJ0dWFsIFdlYkdyYXBoaWNzQ29udGV4
dDNEKiBncmFwaGljc0NvbnRleHQzRCgpOwogCisgICAgdmlydHVhbCB2b2lkIHNldFZpc2liaWxp
dHlTdGF0ZShXZWJQYWdlVmlzaWJpbGl0eVN0YXRlLCBib29sKTsKKwogICAgIFdlYkNvcmU6OlBv
cHVwQ29udGFpbmVyKiBzZWxlY3RQb3B1cCgpIGNvbnN0IHsgcmV0dXJuIG1fc2VsZWN0UG9wdXAu
Z2V0KCk7IH0KIAogICAgIC8vIFJldHVybnMgdHJ1ZSBpZiB0aGUgZXZlbnQgbGVhZHMgdG8gc2Ny
b2xsaW5nLgpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmlu
ZGV4IDdjY2JhMGYuLjNlZTlhODQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9U
b29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMyBAQAorMjAxMS0wNS0wNSAgU2hpc2hpciBBZ3Jh
d2FsICA8c2hpc2hpckBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgSW1wbGVtZW50IFBhZ2UgVmlzaWJpbGl0eSBBUEkuCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01NDE4MQorCisgICAg
ICAgICogRHVtcFJlbmRlclRyZWUvTGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwOgorICAgICAgICAo
c2V0UGFnZVZpc2liaWxpdHlDYWxsYmFjayk6CisgICAgICAgIChyZXNldFBhZ2VWaXNpYmlsaXR5
Q2FsbGJhY2spOgorICAgICAgICAoTGF5b3V0VGVzdENvbnRyb2xsZXI6OnN0YXRpY0Z1bmN0aW9u
cyk6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvTGF5b3V0VGVzdENvbnRyb2xsZXIuaDoKKyAg
ICAgICAgKExheW91dFRlc3RDb250cm9sbGVyOjpzZXRQYWdlVmlzaWJpbGl0eSk6CisgICAgICAg
IChMYXlvdXRUZXN0Q29udHJvbGxlcjo6cmVzZXRQYWdlVmlzaWJpbGl0eSk6CisgICAgICAgICog
RHVtcFJlbmRlclRyZWUvY2hyb21pdW0vTGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwOgorICAgICAg
ICAoTGF5b3V0VGVzdENvbnRyb2xsZXI6OkxheW91dFRlc3RDb250cm9sbGVyKToKKyAgICAgICAg
KExheW91dFRlc3RDb250cm9sbGVyOjpyZXNldFBhZ2VWaXNpYmlsaXR5KToKKyAgICAgICAgKExh
eW91dFRlc3RDb250cm9sbGVyOjpzZXRQYWdlVmlzaWJpbGl0eSk6CisgICAgICAgICogRHVtcFJl
bmRlclRyZWUvY2hyb21pdW0vTGF5b3V0VGVzdENvbnRyb2xsZXIuaDoKKwogMjAxMS0wNS0wNSAg
Sm9zZXBoIFBlY29yYXJvICA8am9lcGVja0B3ZWJraXQub3JnPgogCiAgICAgICAgIFJldmlld2Vk
IGJ5IERhdmlkIEtpbHplci4KZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL0xheW91
dFRlc3RDb250cm9sbGVyLmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL0xheW91dFRlc3RDb250
cm9sbGVyLmNwcAppbmRleCA0Y2E5MGQ4Li40MmZlODFkIDEwMDY0NAotLS0gYS9Ub29scy9EdW1w
UmVuZGVyVHJlZS9MYXlvdXRUZXN0Q29udHJvbGxlci5jcHAKKysrIGIvVG9vbHMvRHVtcFJlbmRl
clRyZWUvTGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwCkBAIC0xNjcwLDYgKzE2NzAsMzcgQEAgc3Rh
dGljIEpTVmFsdWVSZWYgc2V0UGx1Z2luc0VuYWJsZWRDYWxsYmFjayhKU0NvbnRleHRSZWYgY29u
dGV4dCwgSlNPYmplY3RSZWYgZnUKICAgICByZXR1cm4gSlNWYWx1ZU1ha2VVbmRlZmluZWQoY29u
dGV4dCk7CiB9ICAgIAogCitzdGF0aWMgSlNWYWx1ZVJlZiBzZXRQYWdlVmlzaWJpbGl0eUNhbGxi
YWNrKEpTQ29udGV4dFJlZiBjb250ZXh0LCBKU09iamVjdFJlZiBmdW5jdGlvbiwgSlNPYmplY3RS
ZWYgdGhpc09iamVjdCwgc2l6ZV90IGFyZ3VtZW50Q291bnQsIGNvbnN0IEpTVmFsdWVSZWYgYXJn
dW1lbnRzW10sIEpTVmFsdWVSZWYqIGV4Y2VwdGlvbikKK3sKKyAgICAvLyBIYXMgbWFjICYgd2lu
ZG93cyBpbXBsZW1lbnRhdGlvbgorICAgIGlmIChhcmd1bWVudENvdW50IDwgMSkKKyAgICAgICAg
cmV0dXJuIEpTVmFsdWVNYWtlVW5kZWZpbmVkKGNvbnRleHQpOworCisgICAgSlNSZXRhaW5QdHI8
SlNTdHJpbmdSZWY+IHZpc2liaWxpdHkoQWRvcHQsIEpTVmFsdWVUb1N0cmluZ0NvcHkoY29udGV4
dCwgYXJndW1lbnRzWzBdLCBleGNlcHRpb24pKTsKKyAgICBBU1NFUlQoISpleGNlcHRpb24pOwor
CisgICAgc2l6ZV90IG1heExlbmd0aCA9IEpTU3RyaW5nR2V0TWF4aW11bVVURjhDU3RyaW5nU2l6
ZSh2aXNpYmlsaXR5LmdldCgpKTsKKyAgICBjaGFyKiB2aXNpYmlsaXR5QnVmZmVyID0gbmV3IGNo
YXJbbWF4TGVuZ3RoICsgMV07CisgICAgSlNTdHJpbmdHZXRVVEY4Q1N0cmluZyh2aXNpYmlsaXR5
LmdldCgpLCB2aXNpYmlsaXR5QnVmZmVyLCBtYXhMZW5ndGggKyAxKTsKKyAgICAKKyAgICBMYXlv
dXRUZXN0Q29udHJvbGxlciogY29udHJvbGxlciA9IHN0YXRpY19jYXN0PExheW91dFRlc3RDb250
cm9sbGVyKj4oSlNPYmplY3RHZXRQcml2YXRlKHRoaXNPYmplY3QpKTsKKyAgICBjb250cm9sbGVy
LT5zZXRQYWdlVmlzaWJpbGl0eSh2aXNpYmlsaXR5QnVmZmVyKTsKKyAgICBkZWxldGVbXSB2aXNp
YmlsaXR5QnVmZmVyOworICAgIAorICAgIHJldHVybiBKU1ZhbHVlTWFrZVVuZGVmaW5lZChjb250
ZXh0KTsKK30gICAgCisKK3N0YXRpYyBKU1ZhbHVlUmVmIHJlc2V0UGFnZVZpc2liaWxpdHlDYWxs
YmFjayhKU0NvbnRleHRSZWYgY29udGV4dCwgSlNPYmplY3RSZWYgZnVuY3Rpb24sIEpTT2JqZWN0
UmVmIHRoaXNPYmplY3QsIHNpemVfdCBhcmd1bWVudENvdW50LCBjb25zdCBKU1ZhbHVlUmVmIGFy
Z3VtZW50c1tdLCBKU1ZhbHVlUmVmKiBleGNlcHRpb24pCit7CisgICAgLy8gSGFzIG1hYyAmIHdp
bmRvd3MgaW1wbGVtZW50YXRpb24KKyAgICBpZiAoYXJndW1lbnRDb3VudCA8IDEpCisgICAgICAg
IHJldHVybiBKU1ZhbHVlTWFrZVVuZGVmaW5lZChjb250ZXh0KTsKKworICAgIExheW91dFRlc3RD
b250cm9sbGVyKiBjb250cm9sbGVyID0gc3RhdGljX2Nhc3Q8TGF5b3V0VGVzdENvbnRyb2xsZXIq
PihKU09iamVjdEdldFByaXZhdGUodGhpc09iamVjdCkpOworICAgIGNvbnRyb2xsZXItPnJlc2V0
UGFnZVZpc2liaWxpdHkoKTsKKyAgICByZXR1cm4gSlNWYWx1ZU1ha2VVbmRlZmluZWQoY29udGV4
dCk7Cit9ICAgIAorCiBzdGF0aWMgSlNWYWx1ZVJlZiBzZXRTbWFydEluc2VydERlbGV0ZUVuYWJs
ZWRDYWxsYmFjayhKU0NvbnRleHRSZWYgY29udGV4dCwgSlNPYmplY3RSZWYgZnVuY3Rpb24sIEpT
T2JqZWN0UmVmIHRoaXNPYmplY3QsIHNpemVfdCBhcmd1bWVudENvdW50LCBjb25zdCBKU1ZhbHVl
UmVmIGFyZ3VtZW50c1tdLCBKU1ZhbHVlUmVmKiBleGNlcHRpb24pCiB7CiAgICAgaWYgKGFyZ3Vt
ZW50Q291bnQgPCAxKQpAQCAtMjI1Niw2ICsyMjg3LDcgQEAgSlNTdGF0aWNGdW5jdGlvbiogTGF5
b3V0VGVzdENvbnRyb2xsZXI6OnN0YXRpY0Z1bmN0aW9ucygpCiAgICAgICAgIHsgInJlbW92ZUFs
bFZpc2l0ZWRMaW5rcyIsIHJlbW92ZUFsbFZpc2l0ZWRMaW5rc0NhbGxiYWNrLCBrSlNQcm9wZXJ0
eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCiAg
ICAgICAgIHsgInJlbW92ZU9yaWdpbkFjY2Vzc1doaXRlbGlzdEVudHJ5IiwgcmVtb3ZlT3JpZ2lu
QWNjZXNzV2hpdGVsaXN0RW50cnlDYWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25s
eSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LAogICAgICAgICB7ICJyZXBhaW50
U3dlZXBIb3Jpem9udGFsbHkiLCByZXBhaW50U3dlZXBIb3Jpem9udGFsbHlDYWxsYmFjaywga0pT
UHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0
ZSB9LAorICAgICAgICB7ICJyZXNldFBhZ2VWaXNpYmlsaXR5IiwgcmVzZXRQYWdlVmlzaWJpbGl0
eUNhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRy
aWJ1dGVEb250RGVsZXRlIH0sCiAgICAgICAgIHsgInNldEFjY2VwdHNFZGl0aW5nIiwgc2V0QWNj
ZXB0c0VkaXRpbmdDYWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1By
b3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LAogICAgICAgICB7ICJzZXRBbGxvd1VuaXZlcnNh
bEFjY2Vzc0Zyb21GaWxlVVJMcyIsIHNldEFsbG93VW5pdmVyc2FsQWNjZXNzRnJvbUZpbGVVUkxz
Q2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJp
YnV0ZURvbnREZWxldGUgfSwKICAgICAgICAgeyAic2V0QWxsb3dGaWxlQWNjZXNzRnJvbUZpbGVV
UkxzIiwgc2V0QWxsb3dGaWxlQWNjZXNzRnJvbUZpbGVVUkxzQ2FsbGJhY2ssIGtKU1Byb3BlcnR5
QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKQEAg
LTIyODgsNiArMjMyMCw3IEBAIEpTU3RhdGljRnVuY3Rpb24qIExheW91dFRlc3RDb250cm9sbGVy
OjpzdGF0aWNGdW5jdGlvbnMoKQogICAgICAgICB7ICJzZXRNb2NrR2VvbG9jYXRpb25Qb3NpdGlv
biIsIHNldE1vY2tHZW9sb2NhdGlvblBvc2l0aW9uQ2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmli
dXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKICAgICAgICAg
eyAiYWRkTW9ja1NwZWVjaElucHV0UmVzdWx0IiwgYWRkTW9ja1NwZWVjaElucHV0UmVzdWx0Q2Fs
bGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0
ZURvbnREZWxldGUgfSwKICAgICAgICAgeyAic2V0TmV3V2luZG93c0NvcHlCYWNrRm9yd2FyZExp
c3QiLCBzZXROZXdXaW5kb3dzQ29weUJhY2tGb3J3YXJkTGlzdENhbGxiYWNrLCBrSlNQcm9wZXJ0
eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCisg
ICAgICAgIHsgInNldFBhZ2VWaXNpYmlsaXR5Iiwgc2V0UGFnZVZpc2liaWxpdHlDYWxsYmFjaywg
a0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERl
bGV0ZSB9LAogICAgICAgICB7ICJzZXRQT1NJWExvY2FsZSIsIHNldFBPU0lYTG9jYWxlQ2FsbGJh
Y2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURv
bnREZWxldGUgfSwKICAgICAgICAgeyAic2V0UGVyc2lzdGVudFVzZXJTdHlsZVNoZWV0TG9jYXRp
b24iLCBzZXRQZXJzaXN0ZW50VXNlclN0eWxlU2hlZXRMb2NhdGlvbkNhbGxiYWNrLCBrSlNQcm9w
ZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0s
CiAgICAgICAgIHsgInNldFBvcHVwQmxvY2tpbmdFbmFibGVkIiwgc2V0UG9wdXBCbG9ja2luZ0Vu
YWJsZWRDYWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5
QXR0cmlidXRlRG9udERlbGV0ZSB9LApkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUv
TGF5b3V0VGVzdENvbnRyb2xsZXIuaCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL0xheW91dFRlc3RD
b250cm9sbGVyLmgKaW5kZXggYTMxZTkwOC4uZDRlMzc3NSAxMDA2NDQKLS0tIGEvVG9vbHMvRHVt
cFJlbmRlclRyZWUvTGF5b3V0VGVzdENvbnRyb2xsZXIuaAorKysgYi9Ub29scy9EdW1wUmVuZGVy
VHJlZS9MYXlvdXRUZXN0Q29udHJvbGxlci5oCkBAIC0xMjMsNiArMTIzLDkgQEAgcHVibGljOgog
ICAgIHZvaWQgc2V0U2Nyb2xsYmFyUG9saWN5KEpTU3RyaW5nUmVmIG9yaWVudGF0aW9uLCBKU1N0
cmluZ1JlZiBwb2xpY3kpOwogICAgIHZvaWQgc2V0RWRpdGluZ0JlaGF2aW9yKGNvbnN0IGNoYXIq
IGVkaXRpbmdCZWhhdmlvcik7CiAKKyAgICB2b2lkIHNldFBhZ2VWaXNpYmlsaXR5KGNvbnN0IGNo
YXIqIHZpc2liaWxpdHkpIHsgfQorICAgIHZvaWQgcmVzZXRQYWdlVmlzaWJpbGl0eSgpIHsgfQor
CiAgICAgSlNWYWx1ZVJlZiBzaGFkb3dSb290KEpTQ29udGV4dFJlZiwgSlNWYWx1ZVJlZik7CiAg
ICAgSlNWYWx1ZVJlZiBlbnN1cmVTaGFkb3dSb290KEpTQ29udGV4dFJlZiwgSlNWYWx1ZVJlZik7
CiAgICAgdm9pZCByZW1vdmVTaGFkb3dSb290KEpTQ29udGV4dFJlZiwgSlNWYWx1ZVJlZik7CmRp
ZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9MYXlvdXRUZXN0Q29udHJv
bGxlci5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9MYXlvdXRUZXN0Q29udHJv
bGxlci5jcHAKaW5kZXggZWU4ZDVhYy4uNjI2OThjMSAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJl
bmRlclRyZWUvY2hyb21pdW0vTGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwCisrKyBiL1Rvb2xzL0R1
bXBSZW5kZXJUcmVlL2Nocm9taXVtL0xheW91dFRlc3RDb250cm9sbGVyLmNwcApAQCAtMTM0LDYg
KzEzNCw3IEBAIExheW91dFRlc3RDb250cm9sbGVyOjpMYXlvdXRUZXN0Q29udHJvbGxlcihUZXN0
U2hlbGwqIHNoZWxsKQogICAgIGJpbmRNZXRob2QoInJlbW92ZU9yaWdpbkFjY2Vzc1doaXRlbGlz
dEVudHJ5IiwgJkxheW91dFRlc3RDb250cm9sbGVyOjpyZW1vdmVPcmlnaW5BY2Nlc3NXaGl0ZWxp
c3RFbnRyeSk7CiAgICAgYmluZE1ldGhvZCgicmVtb3ZlU2hhZG93Um9vdCIsICZMYXlvdXRUZXN0
Q29udHJvbGxlcjo6cmVtb3ZlU2hhZG93Um9vdCk7CiAgICAgYmluZE1ldGhvZCgicmVwYWludFN3
ZWVwSG9yaXpvbnRhbGx5IiwgJkxheW91dFRlc3RDb250cm9sbGVyOjpyZXBhaW50U3dlZXBIb3Jp
em9udGFsbHkpOworICAgIGJpbmRNZXRob2QoInJlc2V0UGFnZVZpc2liaWxpdHkiLCAmTGF5b3V0
VGVzdENvbnRyb2xsZXI6OnJlc2V0UGFnZVZpc2liaWxpdHkpOwogICAgIGJpbmRNZXRob2QoInJl
c3VtZUFuaW1hdGlvbnMiLCAmTGF5b3V0VGVzdENvbnRyb2xsZXI6OnJlc3VtZUFuaW1hdGlvbnMp
OwogICAgIGJpbmRNZXRob2QoInNhbXBsZVNWR0FuaW1hdGlvbkZvckVsZW1lbnRBdFRpbWUiLCAm
TGF5b3V0VGVzdENvbnRyb2xsZXI6OnNhbXBsZVNWR0FuaW1hdGlvbkZvckVsZW1lbnRBdFRpbWUp
OwogICAgIGJpbmRNZXRob2QoInNldEFjY2VwdHNFZGl0aW5nIiwgJkxheW91dFRlc3RDb250cm9s
bGVyOjpzZXRBY2NlcHRzRWRpdGluZyk7CkBAIC0xNTcsNiArMTU4LDcgQEAgTGF5b3V0VGVzdENv
bnRyb2xsZXI6OkxheW91dFRlc3RDb250cm9sbGVyKFRlc3RTaGVsbCogc2hlbGwpCiAgICAgYmlu
ZE1ldGhvZCgic2V0TW9ja0dlb2xvY2F0aW9uRXJyb3IiLCAmTGF5b3V0VGVzdENvbnRyb2xsZXI6
OnNldE1vY2tHZW9sb2NhdGlvbkVycm9yKTsKICAgICBiaW5kTWV0aG9kKCJzZXRNb2NrR2VvbG9j
YXRpb25Qb3NpdGlvbiIsICZMYXlvdXRUZXN0Q29udHJvbGxlcjo6c2V0TW9ja0dlb2xvY2F0aW9u
UG9zaXRpb24pOwogICAgIGJpbmRNZXRob2QoImFkZE1vY2tTcGVlY2hJbnB1dFJlc3VsdCIsICZM
YXlvdXRUZXN0Q29udHJvbGxlcjo6YWRkTW9ja1NwZWVjaElucHV0UmVzdWx0KTsKKyAgICBiaW5k
TWV0aG9kKCJzZXRQYWdlVmlzaWJpbGl0eSIsICZMYXlvdXRUZXN0Q29udHJvbGxlcjo6c2V0UGFn
ZVZpc2liaWxpdHkpOwogICAgIGJpbmRNZXRob2QoInNldFBsdWdpbnNFbmFibGVkIiwgJkxheW91
dFRlc3RDb250cm9sbGVyOjpzZXRQbHVnaW5zRW5hYmxlZCk7CiAgICAgYmluZE1ldGhvZCgic2V0
UG9wdXBCbG9ja2luZ0VuYWJsZWQiLCAmTGF5b3V0VGVzdENvbnRyb2xsZXI6OnNldFBvcHVwQmxv
Y2tpbmdFbmFibGVkKTsKICAgICBiaW5kTWV0aG9kKCJzZXRQT1NJWExvY2FsZSIsICZMYXlvdXRU
ZXN0Q29udHJvbGxlcjo6c2V0UE9TSVhMb2NhbGUpOwpAQCAtMTc2NiwzICsxNzY4LDE5IEBAIHZv
aWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OnNldFBsdWdpbnNFbmFibGVkKGNvbnN0IENwcEFyZ3Vt
ZW50TGlzdCYgYXJndW1lbnRzLCBDCiAgICAgfQogICAgIHJlc3VsdC0+c2V0TnVsbCgpOwogfQor
Cit2b2lkIExheW91dFRlc3RDb250cm9sbGVyOjpyZXNldFBhZ2VWaXNpYmlsaXR5KGNvbnN0IENw
cEFyZ3VtZW50TGlzdCYgYXJndW1lbnRzLCBDcHBWYXJpYW50KiByZXN1bHQpCit7CisgICAgbV9z
aGVsbC0+d2ViVmlldygpLT5zZXRWaXNpYmlsaXR5U3RhdGUoV2ViUGFnZVZpc2liaWxpdHlTdGF0
ZVZpc2libGUsIHRydWUpOworfQorCit2b2lkIExheW91dFRlc3RDb250cm9sbGVyOjpzZXRQYWdl
VmlzaWJpbGl0eShjb25zdCBDcHBBcmd1bWVudExpc3QmIGFyZ3VtZW50cywgQ3BwVmFyaWFudCog
cmVzdWx0KQoreworICAgIGlmIChhcmd1bWVudHMuc2l6ZSgpID4gMCAmJiBhcmd1bWVudHNbMF0u
aXNTdHJpbmcoKSkgeworICAgICAgICBzdHJpbmcgbmV3VmlzaWJpbGl0eSA9IGFyZ3VtZW50c1sw
XS50b1N0cmluZygpOworICAgICAgICBpZiAobmV3VmlzaWJpbGl0eSA9PSAidmlzaWJsZSIpCisg
ICAgICAgICAgICBtX3NoZWxsLT53ZWJWaWV3KCktPnNldFZpc2liaWxpdHlTdGF0ZShXZWJQYWdl
VmlzaWJpbGl0eVN0YXRlVmlzaWJsZSwgZmFsc2UpOworICAgICAgICBlbHNlIGlmIChuZXdWaXNp
YmlsaXR5ID09ICJoaWRkZW4iKQorICAgICAgICAgICAgbV9zaGVsbC0+d2ViVmlldygpLT5zZXRW
aXNpYmlsaXR5U3RhdGUoV2ViUGFnZVZpc2liaWxpdHlTdGF0ZUhpZGRlbiwgZmFsc2UpOworICAg
IH0KK30KZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0xheW91dFRl
c3RDb250cm9sbGVyLmggYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9MYXlvdXRUZXN0
Q29udHJvbGxlci5oCmluZGV4IDQ0YWMyY2QuLjEwNzFhY2QgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1
bXBSZW5kZXJUcmVlL2Nocm9taXVtL0xheW91dFRlc3RDb250cm9sbGVyLmgKKysrIGIvVG9vbHMv
RHVtcFJlbmRlclRyZWUvY2hyb21pdW0vTGF5b3V0VGVzdENvbnRyb2xsZXIuaApAQCAtMzY1LDYg
KzM2NSwxMCBAQCBwdWJsaWM6CiAgICAgLy8gRW5hYmxlIG9yIGRpc2FibGUgcGx1Z2lucy4KICAg
ICB2b2lkIHNldFBsdWdpbnNFbmFibGVkKGNvbnN0IENwcEFyZ3VtZW50TGlzdCYsIENwcFZhcmlh
bnQqKTsKIAorICAgIC8vIFN3aXRjaCB0aGUgdmlzaWJpbGl0eSBvZiB0aGUgcGFnZS4KKyAgICB2
b2lkIHNldFBhZ2VWaXNpYmlsaXR5KGNvbnN0IENwcEFyZ3VtZW50TGlzdCYsIENwcFZhcmlhbnQq
KTsKKyAgICB2b2lkIHJlc2V0UGFnZVZpc2liaWxpdHkoY29uc3QgQ3BwQXJndW1lbnRMaXN0Jiwg
Q3BwVmFyaWFudCopOworCiBwdWJsaWM6CiAgICAgLy8gVGhlIGZvbGxvd2luZyBtZXRob2RzIGFy
ZSBub3QgZXhwb3NlZCB0byBKYXZhU2NyaXB0LgogICAgIHZvaWQgc2V0V29ya1F1ZXVlRnJvemVu
KGJvb2wgZnJvemVuKSB7IG1fd29ya1F1ZXVlLnNldEZyb3plbihmcm96ZW4pOyB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>92502</attachid>
            <date>2011-05-05 16:53:45 -0700</date>
            <delta_ts>2011-05-05 18:33:02 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>page_visibility_api.patch</filename>
            <type>text/plain</type>
            <size>54264</size>
            <attacher name="Shishir Agrawal">shishir</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3BhZ2UtdmlzaWJpbGl0eS1pZnJh
bWUtZGVsZXRlLXRlc3QtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvcGFn
ZS12aXNpYmlsaXR5LWlmcmFtZS1kZWxldGUtdGVzdC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMWQyMGEzOQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2Zhc3QvZXZlbnRzL3BhZ2UtdmlzaWJpbGl0eS1pZnJhbWUtZGVsZXRlLXRlc3QtZXhw
ZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTIgQEAKK1RoaXMgdGVzdCBjaGVja3MgdGhhdCB0aGUgcGFn
ZSB2aXNpYmlsaXR5IGV2ZW50IHByb2FnYXRpb24gZG9lcyBub3QgY3Jhc2ggdGhlIGJyb3dzZXIg
d2hlbiBmcmFtZXMgYXJlIGFkZGVkIC8gZGVsZXRlZC4KKworT24gc3VjY2VzcywgeW91IHdpbGwg
c2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExF
VEUiLgorCisKK0xvYWRlZCBhbGwgZnJhbWVzLgorVmlzaWJpbGl0eSBvZiBtYWluIGRvY3VtZW50
IGNoYW5nZWQuCitWaXNpYmlsaXR5IG9mIHN1YiBmcmFtZSAyIGNoYW5nZWQuCitQQVNTIHN1Y2Nl
c3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKyAgIApkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvcGFnZS12aXNpYmlsaXR5LWlmcmFtZS1kZWxldGUtdGVz
dC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvcGFnZS12aXNpYmlsaXR5LWlmcmFtZS1k
ZWxldGUtdGVzdC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjg4Y2Ni
NjIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9wYWdlLXZpc2li
aWxpdHktaWZyYW1lLWRlbGV0ZS10ZXN0Lmh0bWwKQEAgLTAsMCArMSwxMTEgQEAKKzxodG1sPgor
PGJvZHkgb25sb2FkPSJzdGFydFRlc3QoKSI+CisKKzxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgor
PGRpdiBpZD0iY29uc29sZSI+PC9kaXY+CisKKzxzY3JpcHQgc3JjPSIuLi9qcy9yZXNvdXJjZXMv
anMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorCis8c2NyaXB0PgorCitkZXNjcmlwdGlvbigiVGhp
cyB0ZXN0IGNoZWNrcyB0aGF0IHRoZSBwYWdlIHZpc2liaWxpdHkgZXZlbnQgcHJvYWdhdGlvbiBk
b2VzIG5vdCBjcmFzaCB0aGUgYnJvd3NlciB3aGVuIGZyYW1lcyBhcmUgYWRkZWQgLyBkZWxldGVk
LiIpOworCit2YXIganNUZXN0SXNBc3luYyA9IHRydWU7CisKK3ZhciBudW1WaXNpYmlsaXR5Q2hh
bmdlcyA9IDA7Cit2YXIgZnJhbWUxLCBmcmFtZTIsIGZyYW1lMywgZnJhbWU0LCBmcmFtZTUsIHN1
YmZyYW1lMSwgc3ViRnJhbWUyLCBzdWJGcmFtZTM7CisKK3ZhciBkb2NzTG9hZGVkID0gMDsKK3Zh
ciBtYWluUGFnZVZpc2liaWxpdHlDaGFuZ2VEb25lID0gZmFsc2U7Cit2YXIgZnJhbWUyVmlzaWJs
aXR5Q2hhbmdlRG9uZSA9IGZhbHNlOworCitmdW5jdGlvbiBzdGFydFRlc3QoKSB7CisgICAgKytk
b2NzTG9hZGVkOworICAgIGlmIChkb2NzTG9hZGVkIDwgOCkgeworICAgICAgcmV0dXJuOworICAg
fQorCisgICAgZGVidWcoIkxvYWRlZCBhbGwgZnJhbWVzLiIpOworCisgICAgZnJhbWUxID0gZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRvcEZyYW1lMSIpOworICAgIGZyYW1lMiA9IGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCJ0b3BGcmFtZTIiKTsKKyAgICBmcmFtZTMgPSBkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgidG9wRnJhbWUzIik7CisgICAgZnJhbWU0ID0gZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoInRvcEZyYW1lNCIpOworICAgIHN1YkZyYW1lMSA9IGZyYW1lMy5jb250ZW50RG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoInN1YklmcmFtZTEiKTsKKyAgICBzdWJGcmFtZTIgPSBmcmFtZTMu
Y29udGVudERvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzdWJJZnJhbWUyIik7CisKKyAgICBkb2N1
bWVudC5hZGRFdmVudExpc3RlbmVyKAorICAgICAgICAid2Via2l0dmlzaWJpbGl0eXN0YXRlY2hh
bmdlIiwgb25NYWluUGFnZVZpc2liaWxpdHlDaGFuZ2UsIGZhbHNlKTsKKyAgICBmcmFtZTIuY29u
dGVudERvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoCisgICAgICAgICJ3ZWJraXR2aXNpYmlsaXR5
c3RhdGVjaGFuZ2UiLCBvbkZyYW1lMlZpc2liaWxpdHlDaGFuZ2UsIGZhbHNlKTsKKyAgICAvLyBD
aGFuZ2UgdGhlIHZpc2liaWxpdHkgb2YgdGhlIGN1cnJlbnQgcGFnZSB0byBpbnZpc2libGUuCisg
ICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgeworICAgICAgICBudW1WaXNpYmls
aXR5Q2hhbmdlcysrOworICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5zZXRQYWdlVmlzaWJp
bGl0eSgiaGlkZGVuIik7CisgICAgfQorfQorCitmdW5jdGlvbiBmaW5pc2hUZXN0KCkgeworICAg
IGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgICAgIGxheW91dFRlc3RDb250
cm9sbGVyLnJlc2V0UGFnZVZpc2liaWxpdHkoKTsKKyAgICBmaW5pc2hKU1Rlc3QoKTsKK30KKwor
ZnVuY3Rpb24gb25NYWluUGFnZVZpc2liaWxpdHlDaGFuZ2UoKSB7CisgICAgaWYgKG1haW5QYWdl
VmlzaWJpbGl0eUNoYW5nZURvbmUgJiYgZnJhbWUyVmlzaWJsaXR5Q2hhbmdlRG9uZSkgeworICAg
ICAgICBmaW5pc2hUZXN0KCk7CisgICAgfSBlbHNlIGlmICghbWFpblBhZ2VWaXNpYmlsaXR5Q2hh
bmdlRG9uZSkgeworICAgICAgICBkZWJ1ZygiVmlzaWJpbGl0eSBvZiBtYWluIGRvY3VtZW50IGNo
YW5nZWQuIik7CisgICAgICAgIC8vIERlbGV0ZSBmcmFtZSA0LgorICAgICAgICBkb2N1bWVudC5i
b2R5LnJlbW92ZUNoaWxkKGZyYW1lNCk7CisKKyAgICAgICAgLy8gRGVsZXRlIHN1YmZyYW1lIDIu
CisgICAgICAgIGZyYW1lMy5jb250ZW50RG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChzdWJGcmFt
ZTIpOworCisgICAgICAgIC8vIEFkZCBhIG5ldyBmcmFtZSB0byB0b3AgbGV2ZWwuCisgICAgICAg
IGZyYW1lNSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImlmcmFtZSIpOworICAgICAgICBmcmFt
ZTUuc3JjID0gJyc7CisgICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZnJhbWU1KTsK
KworICAgICAgICAvLyBBZGQgYSBuZXcgZnJhbWUgdG8gZnJhbWUyLgorICAgICAgICBzdWJGcmFt
ZTMgPSBmcmFtZTIuY29udGVudERvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImlmcmFtZSIpOworICAg
ICAgICBzdWJGcmFtZTMuc3JjID0gJyc7CisgICAgICAgIGZyYW1lMi5jb250ZW50RG9jdW1lbnQu
Ym9keS5hcHBlbmRDaGlsZChzdWJGcmFtZTMpOworCisgICAgICAgIG1haW5QYWdlVmlzaWJpbGl0
eUNoYW5nZURvbmUgPSB0cnVlOworICAgIH0KKworICAgIGlmIChtYWluUGFnZVZpc2liaWxpdHlD
aGFuZ2VEb25lICYmIGZyYW1lMlZpc2libGl0eUNoYW5nZURvbmUpIHsKKyAgICAgICAgZmluaXNo
VGVzdCgpOworICAgIH0KK30KKworZnVuY3Rpb24gb25GcmFtZTJWaXNpYmlsaXR5Q2hhbmdlKCkg
eworICAgIGlmIChtYWluUGFnZVZpc2liaWxpdHlDaGFuZ2VEb25lICYmIGZyYW1lMlZpc2libGl0
eUNoYW5nZURvbmUpIHsKKyAgICAgICAgZmluaXNoVGVzdCgpOworICAgIH0gZWxzZSBpZiAoIWZy
YW1lMlZpc2libGl0eUNoYW5nZURvbmUpIHsKKyAgICAgICAgZGVidWcoIlZpc2liaWxpdHkgb2Yg
c3ViIGZyYW1lIDIgY2hhbmdlZC4iKTsKKworICAgICAgICAvLyBEZWxldGUgZnJhbWUgMS4KKyAg
ICAgICAgZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChmcmFtZTEpOworCisgICAgICAgIGZyYW1l
MlZpc2libGl0eUNoYW5nZURvbmUgPSB0cnVlOworICAgIH0KKworICAgIGlmIChtYWluUGFnZVZp
c2liaWxpdHlDaGFuZ2VEb25lICYmIGZyYW1lMlZpc2libGl0eUNoYW5nZURvbmUpIHsKKyAgICAg
ICAgZmluaXNoVGVzdCgpOworICAgIH0KK30KKyAgICAKK3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQg
PSB0cnVlOworCis8L3NjcmlwdD4KKworPHNjcmlwdCBzcmM9Ii4uL2pzL3Jlc291cmNlcy9qcy10
ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorCis8aWZyYW1lIGlkPSJ0b3BGcmFtZTEiIG9ubG9hZD0i
c3RhcnRUZXN0KCkiID48L2lmcmFtZT4KKzxpZnJhbWUgaWQ9InRvcEZyYW1lMiIgb25sb2FkPSJz
dGFydFRlc3QoKSIgPjwvaWZyYW1lPgorPGlmcmFtZSBpZD0idG9wRnJhbWUzIiBvbmxvYWQ9InN0
YXJ0VGVzdCgpIiBzcmM9InJlc291cmNlcy9wYWdlLXZpc2liaWxpdHktaWZyYW1lLWRlbGV0ZS10
ZXN0LWZyYW1lLmh0bWwiPjwvaWZyYW1lPgorPGlmcmFtZSBpZD0idG9wRnJhbWU0IiBvbmxvYWQ9
InN0YXJ0VGVzdCgpIiA+PC9pZnJhbWU+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9wYWdlLXZpc2liaWxpdHktaWZyYW1lLW1vdmUtdGVzdC1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9wYWdlLXZpc2liaWxpdHktaWZy
YW1lLW1vdmUtdGVzdC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMC4uNzk0NDBjZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRz
L3BhZ2UtdmlzaWJpbGl0eS1pZnJhbWUtbW92ZS10ZXN0LWV4cGVjdGVkLnR4dApAQCAtMCwwICsx
LDIxIEBACitUaGlzIHRlc3QgY2hlY2tzIHRoYXQgYW4gaWZyYW1lIHRoYXQgbW92ZXMgYmV0d2Vl
biBwYWdlcyB3aXRoIGRpZmZlcmVudCB2aXNpYmlsaXR5IHdpbGwgaGF2ZSB0aGUgY29ycmVjdCB2
aXNpYmlsaXR5IHZhbHVlLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2Yg
IlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworV2luZG93
IDEgTG9hZGVkCitXaW5kb3cgMiBMb2FkZWQKK1BBU1Mgd2luZG93LmRvY3VtZW50LndlYmtpdElz
VmlzaWJsZSBpcyB0cnVlCitQQVNTIHdpbmRvdzIuZG9jdW1lbnQud2Via2l0SXNWaXNpYmxlIGlz
IHRydWUKK1BBU1MgaWZyYW1lLmNvbnRlbnREb2N1bWVudC53ZWJraXRJc1Zpc2libGUgaXMgdHJ1
ZQorUEFTUyB3aW5kb3cuZG9jdW1lbnQud2Via2l0SXNWaXNpYmxlIGlzIGZhbHNlCitQQVNTIHdp
bmRvdzIuZG9jdW1lbnQud2Via2l0SXNWaXNpYmxlIGlzIHRydWUKK1BBU1MgaWZyYW1lLmNvbnRl
bnREb2N1bWVudC53ZWJraXRJc1Zpc2libGUgaXMgdHJ1ZQorQWRvcHRlZCBpZnJhbWUgdG8gV2lu
ZG93IDEKK1BBU1Mgd2luZG93LmRvY3VtZW50LndlYmtpdElzVmlzaWJsZSBpcyBmYWxzZQorUEFT
UyB3aW5kb3cyLmRvY3VtZW50LndlYmtpdElzVmlzaWJsZSBpcyB0cnVlCitQQVNTIGlmcmFtZS5j
b250ZW50RG9jdW1lbnQud2Via2l0SXNWaXNpYmxlIGlzIGZhbHNlCitQQVNTIHN1Y2Nlc3NmdWxs
eVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZmFzdC9ldmVudHMvcGFnZS12aXNpYmlsaXR5LWlmcmFtZS1tb3ZlLXRlc3QuaHRtbCBiL0xh
eW91dFRlc3RzL2Zhc3QvZXZlbnRzL3BhZ2UtdmlzaWJpbGl0eS1pZnJhbWUtbW92ZS10ZXN0Lmh0
bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTE2Mzg5MgotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3BhZ2UtdmlzaWJpbGl0eS1pZnJhbWUt
bW92ZS10ZXN0Lmh0bWwKQEAgLTAsMCArMSw4MCBAQAorPGh0bWw+Cis8Ym9keSBvbmxvYWQ9InN0
YXJ0VGVzdCgpIj4KKworPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Cis8ZGl2IGlkPSJjb25zb2xl
Ij48L2Rpdj4KKworPHNjcmlwdCBzcmM9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+
PC9zY3JpcHQ+CisKKzxzY3JpcHQ+CisKK2Rlc2NyaXB0aW9uKCJUaGlzIHRlc3QgY2hlY2tzIHRo
YXQgYW4gaWZyYW1lIHRoYXQgbW92ZXMgYmV0d2VlbiBwYWdlcyB3aXRoIGRpZmZlcmVudCB2aXNp
YmlsaXR5IHdpbGwgaGF2ZSB0aGUgY29ycmVjdCB2aXNpYmlsaXR5IHZhbHVlLiIpOworCit2YXIg
anNUZXN0SXNBc3luYyA9IHRydWU7CisKK3ZhciB3aW5kb3cyLCBpZnJhbWU7Cit2YXIgbnVtVmlz
aWJpbGl0eUNoYW5nZXMgPSAwOworCitmdW5jdGlvbiB3aW5kb3cyTG9hZGVkKCkgeworICAgIGRl
YnVnKCJXaW5kb3cgMiBMb2FkZWQiKTsKKworICAgIGlmcmFtZSA9IHdpbmRvdzIuZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoImlmcmFtZSIpOworCisgICAgc2hvdWxkQmVUcnVlKCJ3aW5kb3cuZG9j
dW1lbnQud2Via2l0SXNWaXNpYmxlIik7CisgICAgc2hvdWxkQmVUcnVlKCJ3aW5kb3cyLmRvY3Vt
ZW50LndlYmtpdElzVmlzaWJsZSIpOworICAgIHNob3VsZEJlVHJ1ZSgiaWZyYW1lLmNvbnRlbnRE
b2N1bWVudC53ZWJraXRJc1Zpc2libGUiKTsKKworICAgIC8vIENoYW5nZSB0aGUgdmlzaWJpbGl0
eSBvZiB0aGUgY3VycmVudCBwYWdlIHRvIGludmlzaWJsZS4KKyAgICBpZiAod2luZG93LmxheW91
dFRlc3RDb250cm9sbGVyKSB7CisgICAgICAgIG51bVZpc2liaWxpdHlDaGFuZ2VzKys7CisgICAg
ICAgIHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlci5zZXRQYWdlVmlzaWJpbGl0eSgiaGlkZGVu
Iik7CisgICAgfQorfQorCitmdW5jdGlvbiBvblZpc2liaWxpdHlDaGFuZ2UoKSB7CisgICAgc2hv
dWxkQmVGYWxzZSgid2luZG93LmRvY3VtZW50LndlYmtpdElzVmlzaWJsZSIpOworICAgIHNob3Vs
ZEJlVHJ1ZSgid2luZG93Mi5kb2N1bWVudC53ZWJraXRJc1Zpc2libGUiKTsKKyAgICBzaG91bGRC
ZVRydWUoImlmcmFtZS5jb250ZW50RG9jdW1lbnQud2Via2l0SXNWaXNpYmxlIik7CisKKyAgICB3
aW5kb3cuZG9jdW1lbnQuYWRvcHROb2RlKGlmcmFtZSk7CisgICAgd2luZG93LmRvY3VtZW50LmJv
ZHkuYXBwZW5kQ2hpbGQoaWZyYW1lKTsKKyAgICBkZWJ1ZygiQWRvcHRlZCBpZnJhbWUgdG8gV2lu
ZG93IDEiKTsKKworICAgIHNob3VsZEJlRmFsc2UoIndpbmRvdy5kb2N1bWVudC53ZWJraXRJc1Zp
c2libGUiKTsKKyAgICBzaG91bGRCZVRydWUoIndpbmRvdzIuZG9jdW1lbnQud2Via2l0SXNWaXNp
YmxlIik7CisgICAgc2hvdWxkQmVGYWxzZSgiaWZyYW1lLmNvbnRlbnREb2N1bWVudC53ZWJraXRJ
c1Zpc2libGUiKTsKKworICAgIHdpbmRvdzIuY2xvc2UoKTsKKworICAgIGZpbmlzaFRlc3QoKTsK
K30KKworZnVuY3Rpb24gc3RhcnRUZXN0KCkgeworICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENv
bnRyb2xsZXIpIHsKKyAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgp
OworICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5zZXRDYW5PcGVuV2luZG93cygpOworICAg
IH0KKworICAgIGRlYnVnKCJXaW5kb3cgMSBMb2FkZWQiKTsKKyAgICBkb2N1bWVudC5hZGRFdmVu
dExpc3RlbmVyKCJ3ZWJraXR2aXNpYmlsaXR5c3RhdGVjaGFuZ2UiLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgb25WaXNpYmlsaXR5Q2hhbmdlLCBmYWxzZSk7CisKKyAgICB3aW5kb3cy
ID0gd2luZG93Lm9wZW4oInJlc291cmNlcy9wYWdlLXZpc2liaWxpdHktaWZyYW1lLW1vdmUtbmV3
LXBhZ2UuaHRtbCIpOworICAgIHdpbmRvdzIuYWRkRXZlbnRMaXN0ZW5lcigibG9hZCIsIHdpbmRv
dzJMb2FkZWQsIGZhbHNlKTsKK30KKworZnVuY3Rpb24gZmluaXNoVGVzdCgpIHsKKyAgICBpZiAo
d2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7CisgICAgICAgIGxheW91dFRlc3RDb250cm9s
bGVyLnJlc2V0UGFnZVZpc2liaWxpdHkoKTsKKyAgICB9CisgICAgZmluaXNoSlNUZXN0KCk7Cit9
CisKK3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOworCis8L3NjcmlwdD4KKworPHNjcmlw
dCBzcmM9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorCis8L2Jv
ZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9wYWdlLXZp
c2liaWxpdHktaWZyYW1lLXByb3BhZ2F0aW9uLXRlc3QtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvZmFzdC9ldmVudHMvcGFnZS12aXNpYmlsaXR5LWlmcmFtZS1wcm9wYWdhdGlvbi10ZXN0LWV4
cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45NWI3OWJhCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvcGFnZS12aXNpYmlsaXR5
LWlmcmFtZS1wcm9wYWdhdGlvbi10ZXN0LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDI3IEBACitU
aGlzIHRlc3QgY2hlY2tzIHRoYXQgUGFnZSBWaXNpYmlsaXR5IHN0YXRlIGV2ZW50cyBhcmUgcHJv
cGFnYXRlZCB0byBjaGlsZCBmcmFtZXMuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNl
cmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKwor
CitNYWluIFBhZ2U6CitQQVNTIGRvY3VtZW50LndlYmtpdFZpc2liaWxpdHlTdGF0ZSBpcyAidmlz
aWJsZSIKK1BBU1MgZG9jdW1lbnQud2Via2l0SXNWaXNpYmxlIGlzIHRydWUKK0NoaWxkIEZyYW1l
OgorUEFTUyBjaGlsZEZyYW1lLmNvbnRlbnREb2N1bWVudC53ZWJraXRWaXNpYmlsaXR5U3RhdGUg
aXMgInZpc2libGUiCitQQVNTIGNoaWxkRnJhbWUuY29udGVudERvY3VtZW50LndlYmtpdElzVmlz
aWJsZSBpcyB0cnVlCitNYWluIFBhZ2U6CitQQVNTIGRvY3VtZW50LndlYmtpdFZpc2liaWxpdHlT
dGF0ZSBpcyAiaGlkZGVuIgorUEFTUyBkb2N1bWVudC53ZWJraXRJc1Zpc2libGUgaXMgZmFsc2UK
K0NoaWxkIEZyYW1lOgorUEFTUyBjaGlsZEZyYW1lLmNvbnRlbnREb2N1bWVudC53ZWJraXRWaXNp
YmlsaXR5U3RhdGUgaXMgImhpZGRlbiIKK1BBU1MgY2hpbGRGcmFtZS5jb250ZW50RG9jdW1lbnQu
d2Via2l0SXNWaXNpYmxlIGlzIGZhbHNlCitNYWluIFBhZ2U6CitQQVNTIGRvY3VtZW50LndlYmtp
dFZpc2liaWxpdHlTdGF0ZSBpcyAidmlzaWJsZSIKK1BBU1MgZG9jdW1lbnQud2Via2l0SXNWaXNp
YmxlIGlzIHRydWUKK0NoaWxkIEZyYW1lOgorUEFTUyBjaGlsZEZyYW1lLmNvbnRlbnREb2N1bWVu
dC53ZWJraXRWaXNpYmlsaXR5U3RhdGUgaXMgInZpc2libGUiCitQQVNTIGNoaWxkRnJhbWUuY29u
dGVudERvY3VtZW50LndlYmtpdElzVmlzaWJsZSBpcyB0cnVlCitQQVNTIHN1Y2Nlc3NmdWxseVBh
cnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZmFzdC9ldmVudHMvcGFnZS12aXNpYmlsaXR5LWlmcmFtZS1wcm9wYWdhdGlvbi10ZXN0Lmh0bWwg
Yi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9wYWdlLXZpc2liaWxpdHktaWZyYW1lLXByb3BhZ2F0
aW9uLXRlc3QuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hMDE2NTY3
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvcGFnZS12aXNpYmls
aXR5LWlmcmFtZS1wcm9wYWdhdGlvbi10ZXN0Lmh0bWwKQEAgLTAsMCArMSwxMjUgQEAKKzxodG1s
PgorPGJvZHk+CisKKzxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgorPGRpdiBpZD0iY29uc29sZSI+
PC9kaXY+CisKKzxzY3JpcHQgc3JjPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwv
c2NyaXB0PgorCis8c2NyaXB0PgorCitkZXNjcmlwdGlvbigiVGhpcyB0ZXN0IGNoZWNrcyB0aGF0
IFBhZ2UgVmlzaWJpbGl0eSBzdGF0ZSBldmVudHMgYXJlIHByb3BhZ2F0ZWQgdG8gY2hpbGQgZnJh
bWVzLiIpOworCit2YXIganNUZXN0SXNBc3luYyA9IHRydWU7CisKK2Z1bmN0aW9uIG1ha2VQYWdl
VmlzaWJsZSgpIHsKKyAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgICAg
ICBsYXlvdXRUZXN0Q29udHJvbGxlci5zZXRQYWdlVmlzaWJpbGl0eSgidmlzaWJsZSIpOworfQor
CitmdW5jdGlvbiBtYWtlUGFnZUhpZGRlbigpIHsKKyAgICBpZiAod2luZG93LmxheW91dFRlc3RD
b250cm9sbGVyKQorICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5zZXRQYWdlVmlzaWJpbGl0
eSgiaGlkZGVuIik7Cit9CisKK2Z1bmN0aW9uIGNoZWNrSXNQYWdlVmlzaWJsZSgpIHsKKyAgICBk
ZWJ1ZygiTWFpbiBQYWdlOiIpOworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygiZG9jdW1lbnQu
d2Via2l0VmlzaWJpbGl0eVN0YXRlIiwgInZpc2libGUiKTsKKyAgICBzaG91bGRCZVRydWUoImRv
Y3VtZW50LndlYmtpdElzVmlzaWJsZSIpOworfQorCitmdW5jdGlvbiBjaGVja0lzUGFnZUhpZGRl
bigpIHsKKyAgICBkZWJ1ZygiTWFpbiBQYWdlOiIpOworICAgIHNob3VsZEJlRXF1YWxUb1N0cmlu
ZygiZG9jdW1lbnQud2Via2l0VmlzaWJpbGl0eVN0YXRlIiwgImhpZGRlbiIpOworICAgIHNob3Vs
ZEJlRmFsc2UoImRvY3VtZW50LndlYmtpdElzVmlzaWJsZSIpOworfQorCitmdW5jdGlvbiBjaGVj
a0lzQ2hpbGRGcmFtZVZpc2libGUoKSB7CisgICAgZGVidWcoIkNoaWxkIEZyYW1lOiIpOworICAg
IHNob3VsZEJlRXF1YWxUb1N0cmluZygiY2hpbGRGcmFtZS5jb250ZW50RG9jdW1lbnQud2Via2l0
VmlzaWJpbGl0eVN0YXRlIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgInZpc2libGUiKTsK
KyAgICBzaG91bGRCZVRydWUoImNoaWxkRnJhbWUuY29udGVudERvY3VtZW50LndlYmtpdElzVmlz
aWJsZSIpOworfQorCitmdW5jdGlvbiBjaGVja0lzQ2hpbGRGcmFtZUhpZGRlbigpIHsKKyAgICBk
ZWJ1ZygiQ2hpbGQgRnJhbWU6Iik7CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJjaGlsZEZy
YW1lLmNvbnRlbnREb2N1bWVudC53ZWJraXRWaXNpYmlsaXR5U3RhdGUiLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAiaGlkZGVuIik7CisgICAgc2hvdWxkQmVGYWxzZSgiY2hpbGRGcmFtZS5j
b250ZW50RG9jdW1lbnQud2Via2l0SXNWaXNpYmxlIik7Cit9CisKKy8vIFdlIHdpbGwgdHJ5IHRv
IGNoYW5nZSB0aGUgdmlzaWJpbGl0eSBzdGF0ZXMgYXM6CisvLyAgMCAtIHZpc2libGUuIChJbml0
aWFsIC0gaS5lLiBvbiBsb2FkKS4KKy8vICAxIC0gaGlkZGVuCisvLyAgMiAtIHZpc2libGUKK3Zh
ciBudW1WaXNpYmlsaXR5Q2hhbmdlcyA9IDA7CisKK3ZhciBjaGlsZEZyYW1lOworCitmdW5jdGlv
biBzdGFydFRlc3QoKSB7CisgICAgY2hpbGRGcmFtZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCJjaGlsZEZyYW1lIik7CisgICAgY2hpbGRGcmFtZS5jb250ZW50RG9jdW1lbnQuYWRkRXZlbnRM
aXN0ZW5lcigKKyAgICAgICAgIndlYmtpdHZpc2liaWxpdHlzdGF0ZWNoYW5nZSIsIG9uQ2hpbGRG
cmFtZVZpc2liaWxpdHlDaGFuZ2UsIGZhbHNlKTsKKyAgICBkb2N1bWVudC5hZGRFdmVudExpc3Rl
bmVyKCJ3ZWJraXR2aXNpYmlsaXR5c3RhdGVjaGFuZ2UiLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgb25WaXNpYmlsaXR5Q2hhbmdlLCBmYWxzZSk7CisKKyAgICBjaGVja0lzUGFnZVZp
c2libGUoKTsKKyAgICBjaGVja0lzQ2hpbGRGcmFtZVZpc2libGUoKTsKKworICAgIG51bVZpc2li
aWxpdHlDaGFuZ2VzKys7CisgICAgbWFrZVBhZ2VIaWRkZW4oKTsKK30KKwordmFyIG51bUZpbmlz
aGVzID0gMDsKK2Z1bmN0aW9uIGZpbmlzaFRlc3QoKSB7CisgICAgbnVtRmluaXNoZXMrKzsKKyAg
ICBpZiAobnVtRmluaXNoZXMgPCAyKSB7CisgICAgICByZXR1cm47CisgICAgfQorCisgICAgaWYg
KHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgeworICAgICAgICBsYXlvdXRUZXN0Q29udHJv
bGxlci5yZXNldFBhZ2VWaXNpYmlsaXR5KCk7CisgICAgfQorICAgIGZpbmlzaEpTVGVzdCgpOwor
fQorCitmdW5jdGlvbiBvblZpc2liaWxpdHlDaGFuZ2UoKSB7CisgICAgaWYgKG51bVZpc2liaWxp
dHlDaGFuZ2VzID09IDEpIHsKKyAgICAgICAgY2hlY2tJc1BhZ2VIaWRkZW4oKTsKKyAgICAgICAg
cmV0dXJuOworICAgIH0gZWxzZSBpZiAobnVtVmlzaWJpbGl0eUNoYW5nZXMgPT0gMikgeworICAg
ICAgICBjaGVja0lzUGFnZVZpc2libGUoKTsKKyAgICAgICAgZmluaXNoVGVzdCgpOworICAgICAg
ICByZXR1cm47CisgICAgfSBlbHNlIHsKKyAgICAgICAgdGVzdEZhaWxlZCgiVG9vIG1hbnkgdmlz
aWJpbGl0eSB0cmFuc2l0aW9ucyIpOworICAgICAgICBmaW5pc2hUZXN0KCk7CisgICAgICAgIHJl
dHVybjsKKyAgICB9Cit9CisKK2Z1bmN0aW9uIG9uQ2hpbGRGcmFtZVZpc2liaWxpdHlDaGFuZ2Uo
KSB7CisgICAgaWYgKG51bVZpc2liaWxpdHlDaGFuZ2VzID09IDEpIHsKKyAgICAgICAgY2hlY2tJ
c0NoaWxkRnJhbWVIaWRkZW4oKTsKKyAgICAgICAgbnVtVmlzaWJpbGl0eUNoYW5nZXMrKzsKKyAg
ICAgICAgbWFrZVBhZ2VWaXNpYmxlKCk7CisgICAgICAgIHJldHVybjsKKyAgICB9IGVsc2UgaWYg
KG51bVZpc2liaWxpdHlDaGFuZ2VzID09IDIpIHsKKyAgICAgICAgY2hlY2tJc0NoaWxkRnJhbWVW
aXNpYmxlKCk7CisgICAgICAgIGZpbmlzaFRlc3QoKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0g
ZWxzZSB7CisgICAgICAgIHRlc3RGYWlsZWQoIkNoaWxkIEZyYW1lOiBUb28gbWFueSB2aXNpYmls
aXR5IHRyYW5zaXRpb25zIik7CisgICAgICAgIGZpbmlzaFRlc3QoKTsKKyAgICB9Cit9CisKK3Zh
ciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOworCis8L3NjcmlwdD4KKworPHNjcmlwdCBzcmM9
Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorCis8aWZyYW1lIGlk
PSJjaGlsZEZyYW1lIiBvbmxvYWQ9InN0YXJ0VGVzdCgpIj48L2lmcmFtZT4KKzwvYm9keT4KKzwv
aHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3BhZ2UtdmlzaWJpbGl0
eS10cmFuc2l0aW9uLXRlc3QtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMv
cGFnZS12aXNpYmlsaXR5LXRyYW5zaXRpb24tdGVzdC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjVhOWI1ZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2Zhc3QvZXZlbnRzL3BhZ2UtdmlzaWJpbGl0eS10cmFuc2l0aW9uLXRlc3QtZXhwZWN0
ZWQudHh0CkBAIC0wLDAgKzEsMTcgQEAKK1RoaXMgdGVzdCBjaGVja3MgdGhhdCBQYWdlIFZpc2li
aWxpdHkgc3RhdGUgdmFsdWVzIGFyZSBjb3JyZWN0IGFuZCB0aGUgZXZlbnQgY2hhbmdlcyBhcmUg
ZmlyZWQgY29ycmVjdGx5LgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2Yg
IlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBk
b2N1bWVudC53ZWJraXRWaXNpYmlsaXR5U3RhdGUgaXMgInZpc2libGUiCitQQVNTIGRvY3VtZW50
LndlYmtpdElzVmlzaWJsZSBpcyB0cnVlCitQQVNTIGRvY3VtZW50LndlYmtpdFZpc2liaWxpdHlT
dGF0ZSBpcyAiaGlkZGVuIgorUEFTUyBkb2N1bWVudC53ZWJraXRJc1Zpc2libGUgaXMgZmFsc2UK
K1BBU1MgZG9jdW1lbnQud2Via2l0VmlzaWJpbGl0eVN0YXRlIGlzICJoaWRkZW4iCitQQVNTIGRv
Y3VtZW50LndlYmtpdElzVmlzaWJsZSBpcyBmYWxzZQorUEFTUyBkb2N1bWVudC53ZWJraXRWaXNp
YmlsaXR5U3RhdGUgaXMgInZpc2libGUiCitQQVNTIGRvY3VtZW50LndlYmtpdElzVmlzaWJsZSBp
cyB0cnVlCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUK
KwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvcGFnZS12aXNpYmlsaXR5LXRy
YW5zaXRpb24tdGVzdC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvcGFnZS12aXNpYmls
aXR5LXRyYW5zaXRpb24tdGVzdC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAuLjQyYWJjYjAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9w
YWdlLXZpc2liaWxpdHktdHJhbnNpdGlvbi10ZXN0Lmh0bWwKQEAgLTAsMCArMSw4OSBAQAorPGh0
bWw+Cis8Ym9keSBvbmxvYWQ9J3N0YXJ0VGVzdCgpJz4KKworPHAgaWQ9ImRlc2NyaXB0aW9uIj48
L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKworPHNjcmlwdCBzcmM9Ii4uL2pzL3Jlc291
cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+CisKKzxzY3JpcHQ+CisKK2Rlc2NyaXB0aW9u
KCJUaGlzIHRlc3QgY2hlY2tzIHRoYXQgUGFnZSBWaXNpYmlsaXR5IHN0YXRlIHZhbHVlcyBhcmUg
Y29ycmVjdCBhbmQgdGhlIGV2ZW50IGNoYW5nZXMgYXJlIGZpcmVkIGNvcnJlY3RseS4iKTsKKwor
dmFyIGpzVGVzdElzQXN5bmMgPSB0cnVlOworCitmdW5jdGlvbiBtYWtlUGFnZVZpc2libGUoKSB7
CisgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICAgICAgbGF5b3V0VGVz
dENvbnRyb2xsZXIuc2V0UGFnZVZpc2liaWxpdHkoInZpc2libGUiKTsKK30KKworZnVuY3Rpb24g
bWFrZVBhZ2VIaWRkZW4oKSB7CisgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikK
KyAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuc2V0UGFnZVZpc2liaWxpdHkoImhpZGRlbiIp
OworfQorCitmdW5jdGlvbiBjaGVja0lzUGFnZVZpc2libGUoKSB7CisgICAgc2hvdWxkQmVFcXVh
bFRvU3RyaW5nKCJkb2N1bWVudC53ZWJraXRWaXNpYmlsaXR5U3RhdGUiLCAidmlzaWJsZSIpOwor
ICAgIHNob3VsZEJlVHJ1ZSgiZG9jdW1lbnQud2Via2l0SXNWaXNpYmxlIik7Cit9CisKK2Z1bmN0
aW9uIGNoZWNrSXNQYWdlSGlkZGVuKCkgeworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygiZG9j
dW1lbnQud2Via2l0VmlzaWJpbGl0eVN0YXRlIiwgImhpZGRlbiIpOworICAgIHNob3VsZEJlRmFs
c2UoImRvY3VtZW50LndlYmtpdElzVmlzaWJsZSIpOworfQorCisvLyBXZSB3aWxsIHRyeSB0byBj
aGFuZ2UgdGhlIHZpc2liaWxpdHkgc3RhdGVzIGFzOgorLy8gIDAgLSB2aXNpYmxlLiAoSW5pdGlh
bCAtIGkuZS4gb24gbG9hZCkuCisvLyAgMSAtIGhpZGRlbiAoc2hvdWxkIGZpcmUgZXZlbnQpLgor
Ly8gIDIgLSBoaWRkZW4gKG5vIGV2ZW50KS4KKy8vICAzIC0gdmlzaWJsZSAoc2hvdWxkIGZpcmUg
ZXZlbnQpLgordmFyIG51bVZpc2liaWxpdHlDaGFuZ2VzID0gMDsKKworZnVuY3Rpb24gc3RhcnRU
ZXN0KCkgeworICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoCisgICAgICAgICJ3ZWJraXR2
aXNpYmlsaXR5c3RhdGVjaGFuZ2UiLCBvblZpc2liaWxpdHlDaGFuZ2UsIGZhbHNlKTsKKyAgICBj
aGVja0lzUGFnZVZpc2libGUoKTsKKyAgICBudW1WaXNpYmlsaXR5Q2hhbmdlcysrOworICAgIG1h
a2VQYWdlSGlkZGVuKCk7Cit9CisKK2Z1bmN0aW9uIGZpbmlzaFRlc3QoKSB7CisgICAgaWYgKHdp
bmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgeworICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxl
ci5yZXNldFBhZ2VWaXNpYmlsaXR5KCk7CisgICAgfQorICAgIGZpbmlzaEpTVGVzdCgpOworfQor
CitmdW5jdGlvbiBvblZpc2liaWxpdHlDaGFuZ2UoKSB7CisgICAgaWYgKG51bVZpc2liaWxpdHlD
aGFuZ2VzID09IDEpIHsKKyAgICAgICAgY2hlY2tJc1BhZ2VIaWRkZW4oKTsKKyAgICAgICAgbnVt
VmlzaWJpbGl0eUNoYW5nZXMrKzsKKyAgICAgICAgbWFrZVBhZ2VIaWRkZW4oKTsKKyAgICAgICAg
Y2hlY2tJc1BhZ2VIaWRkZW4oKTsKKyAgICAgICAgbnVtVmlzaWJpbGl0eUNoYW5nZXMrKzsKKyAg
ICAgICAgbWFrZVBhZ2VWaXNpYmxlKCk7CisgICAgICAgIHJldHVybjsKKyAgICB9IGVsc2UgaWYg
KG51bVZpc2liaWxpdHlDaGFuZ2VzID09IDIpIHsKKyAgICAgICAgdGVzdEZhaWxlZCgiSW52YWxp
ZCBldmVudCBmaXJlZCBvbiBzYW1lIHN0YXRlIGNoYW5nZS4iKTsKKyAgICAgICAgZmluaXNoVGVz
dCgpOworICAgICAgICByZXR1cm47CisgICAgfSBlbHNlIGlmIChudW1WaXNpYmlsaXR5Q2hhbmdl
cyA9PSAzKSB7CisgICAgICAgIGNoZWNrSXNQYWdlVmlzaWJsZSgpOworICAgICAgICBudW1WaXNp
YmlsaXR5Q2hhbmdlcysrOworICAgICAgICBmaW5pc2hUZXN0KCk7CisgICAgICAgIHJldHVybjsK
KyAgICB9IGVsc2UgeworICAgICAgICB0ZXN0RmFpbGVkKCJUb28gbWFueSB2aXNpYmlsaXR5IHRy
YW5zaXRpb25zIik7CisgICAgICAgIGZpbmlzaFRlc3QoKTsKKyAgICAgICAgcmV0dXJuOworICAg
IH0KK30KKyAgICAgICAgCit2YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKKworPC9zY3Jp
cHQ+CisKKzxzY3JpcHQgc3JjPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3Nj
cmlwdD4KKworPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9l
dmVudHMvcmVzb3VyY2VzL3BhZ2UtdmlzaWJpbGl0eS1pZnJhbWUtZGVsZXRlLXRlc3QtZnJhbWUu
aHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3Jlc291cmNlcy9wYWdlLXZpc2liaWxpdHkt
aWZyYW1lLWRlbGV0ZS10ZXN0LWZyYW1lLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMC4uZmViYjk1NAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZl
bnRzL3Jlc291cmNlcy9wYWdlLXZpc2liaWxpdHktaWZyYW1lLWRlbGV0ZS10ZXN0LWZyYW1lLmh0
bWwKQEAgLTAsMCArMSw2IEBACis8aHRtbD4KKzxib2R5IG9ubG9hZD0icGFyZW50LnN0YXJ0VGVz
dCgpIj4KKzxpZnJhbWUgaWQ9InN1YklmcmFtZTEiIG9ubG9hZD0icGFyZW50LnBhcmVudC5zdGFy
dFRlc3QoKSI+PC9pZnJhbWU+Cis8aWZyYW1lIGlkPSJzdWJJZnJhbWUyIiBvbmxvYWQ9InBhcmVu
dC5wYXJlbnQuc3RhcnRUZXN0KCkiPjwvaWZyYW1lPgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvcmVzb3VyY2VzL3BhZ2UtdmlzaWJpbGl0eS1p
ZnJhbWUtbW92ZS1uZXctcGFnZS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvcmVzb3Vy
Y2VzL3BhZ2UtdmlzaWJpbGl0eS1pZnJhbWUtbW92ZS1uZXctcGFnZS5odG1sCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjZkMjhjY2MKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9mYXN0L2V2ZW50cy9yZXNvdXJjZXMvcGFnZS12aXNpYmlsaXR5LWlmcmFtZS1tb3Zl
LW5ldy1wYWdlLmh0bWwKQEAgLTAsMCArMSw1IEBACis8aHRtbD4KKzxib2R5PgorPGlmcmFtZSBp
ZD0iaWZyYW1lIj48L2lmcmFtZT4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL3Rlc3RfZXhwZWN0YXRpb25zLnR4dCBiL0xheW91dFRl
c3RzL3BsYXRmb3JtL2Nocm9taXVtL3Rlc3RfZXhwZWN0YXRpb25zLnR4dAppbmRleCA3YjcwMGEw
Li42MDg3NTRlNiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vdGVz
dF9leHBlY3RhdGlvbnMudHh0CisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL3Rl
c3RfZXhwZWN0YXRpb25zLnR4dApAQCAtMzk5MCwzICszOTkwLDkgQEAgQlVHV0s2MDI0MyA6IGZ1
bGxzY3JlZW4vZnVsbC1zY3JlZW4tc3RhY2tpbmctY29udGV4dC5odG1sID0gUEFTUyBURVhUCiAK
IEJVR1dLNjAyNTIgTUFDIEdQVSA6IGFuaW1hdGlvbnMvM2QvbWF0cml4LXRyYW5zZm9ybS10eXBl
LWFuaW1hdGlvbi5odG1sID0gSU1BR0UKIEJVR1dLNjAyNTIgTUFDIEdQVSA6IGFuaW1hdGlvbnMv
M2Qvc3RhdGUtYXQtZW5kLWV2ZW50LXRyYW5zZm9ybS5odG1sID0gSU1BR0UKKworLy8gUGFnZSB2
aXNpYmlsaXR5IEFQSSBub3QgdHVybmVkIG9uLgorQlVHV0s1NDE4MSA6IGZhc3QvZXZlbnRzL3Bh
Z2UtdmlzaWJpbGl0eS1pZnJhbWUtZGVsZXRlLXRlc3QuaHRtbCA9IFRJTUVPVVQKK0JVR1dLNTQx
ODEgOiBmYXN0L2V2ZW50cy9wYWdlLXZpc2liaWxpdHktaWZyYW1lLW1vdmUtdGVzdC5odG1sID0g
VElNRU9VVAorQlVHV0s1NDE4MSA6IGZhc3QvZXZlbnRzL3BhZ2UtdmlzaWJpbGl0eS1pZnJhbWUt
cHJvcGFnYXRpb24tdGVzdC5odG1sID0gVElNRU9VVAorQlVHV0s1NDE4MSA6IGZhc3QvZXZlbnRz
L3BhZ2UtdmlzaWJpbGl0eS10cmFuc2l0aW9uLXRlc3QuaHRtbCA9IFRJTUVPVVQKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9Ta2lwcGVkIGIvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vZ3RrL1NraXBwZWQKaW5kZXggYWEyMWE3NC4uZTdiMTU4ZCAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vZ3RrL1NraXBwZWQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3Rr
L1NraXBwZWQKQEAgLTE0MTIsMyArMTQxMiw5IEBAIHRhYmxlcy9tb3ppbGxhX2V4cGVjdGVkX2Zh
aWx1cmVzL2J1Z3MvYnVnODUwMTYuaHRtbAogIyBIVFRQIDIwNCAoTm8gQ29udGVudCkgc2hvdWxk
IGJlIGlnbm9yZWQKICMgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTYw
MjA2CiBodHRwL3Rlc3RzL25hdmlnYXRpb24vcmVzcG9uc2UyMDQuaHRtbAorCisjIFRoaXMgcGxh
dGZvcm0gZG9lcyBub3Qgc3VwcG9ydCB0aGUgUGFnZSBWaXNpYmlsaXR5IEFQSS4KK2Zhc3QvZXZl
bnRzL3BhZ2UtdmlzaWJpbGl0eS1pZnJhbWUtZGVsZXRlLXRlc3QuaHRtbAorZmFzdC9ldmVudHMv
cGFnZS12aXNpYmlsaXR5LWlmcmFtZS1tb3ZlLXRlc3QuaHRtbAorZmFzdC9ldmVudHMvcGFnZS12
aXNpYmlsaXR5LWlmcmFtZS1wcm9wYWdhdGlvbi10ZXN0Lmh0bWwKK2Zhc3QvZXZlbnRzL3BhZ2Ut
dmlzaWJpbGl0eS10cmFuc2l0aW9uLXRlc3QuaHRtbApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vbWFjL1NraXBwZWQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvU2tpcHBlZApp
bmRleCBjMjhlYzc1Li4zNGY2ZmNkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9t
YWMvU2tpcHBlZAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvU2tpcHBlZApAQCAtMzU0
LDMgKzM1NCw5IEBAIGFuaW1hdGlvbnMvYW5pbWF0aW9uLWFwaS0xLmh0bWwKICMgSFRUUCAyMDQg
KE5vIENvbnRlbnQpIHNob3VsZCBiZSBpZ25vcmVkCiAjIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD02MDIwNgogaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL3Jlc3BvbnNlMjA0
Lmh0bWwKKworIyBUaGlzIHBsYXRmb3JtIGRvZXMgbm90IHN1cHBvcnQgdGhlIFBhZ2UgVmlzaWJp
bGl0eSBBUEkuCitmYXN0L2V2ZW50cy9wYWdlLXZpc2liaWxpdHktaWZyYW1lLWRlbGV0ZS10ZXN0
Lmh0bWwKK2Zhc3QvZXZlbnRzL3BhZ2UtdmlzaWJpbGl0eS1pZnJhbWUtbW92ZS10ZXN0Lmh0bWwK
K2Zhc3QvZXZlbnRzL3BhZ2UtdmlzaWJpbGl0eS1pZnJhbWUtcHJvcGFnYXRpb24tdGVzdC5odG1s
CitmYXN0L2V2ZW50cy9wYWdlLXZpc2liaWxpdHktdHJhbnNpdGlvbi10ZXN0Lmh0bWwKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0L1NraXBwZWQgYi9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9xdC9Ta2lwcGVkCmluZGV4IGU1ZDJjMjcuLjQ0ZDc5MGQgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL3BsYXRmb3JtL3F0L1NraXBwZWQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQv
U2tpcHBlZApAQCAtMjY5NiwzICsyNjk2LDkgQEAgaHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50
U2VjdXJpdHlQb2xpY3kvbWVkaWEtc3JjLWJsb2NrZWQuaHRtbAogCiAjIEFuaW1hdGlvbiBBUEkg
aXMgZGlzYWJsZWQgYnkgZGVmYXVsdAogYW5pbWF0aW9ucy9hbmltYXRpb24tYXBpLTEuaHRtbAor
CisjIFRoaXMgcGxhdGZvcm0gZG9lcyBub3Qgc3VwcG9ydCB0aGUgUGFnZSBWaXNpYmlsaXR5IEFQ
SS4KK2Zhc3QvZXZlbnRzL3BhZ2UtdmlzaWJpbGl0eS1pZnJhbWUtZGVsZXRlLXRlc3QuaHRtbAor
ZmFzdC9ldmVudHMvcGFnZS12aXNpYmlsaXR5LWlmcmFtZS1tb3ZlLXRlc3QuaHRtbAorZmFzdC9l
dmVudHMvcGFnZS12aXNpYmlsaXR5LWlmcmFtZS1wcm9wYWdhdGlvbi10ZXN0Lmh0bWwKK2Zhc3Qv
ZXZlbnRzL3BhZ2UtdmlzaWJpbGl0eS10cmFuc2l0aW9uLXRlc3QuaHRtbApkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1NraXBwZWQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93
aW4vU2tpcHBlZAppbmRleCA5MDc2ZjBhLi44NzZlMjQzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS93aW4vU2tpcHBlZAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vU2tp
cHBlZApAQCAtMTI4MiwzICsxMjgyLDkgQEAgYW5pbWF0aW9ucy9hbmltYXRpb24tYXBpLTEuaHRt
bAogIyBIVFRQIDIwNCAoTm8gQ29udGVudCkgc2hvdWxkIGJlIGlnbm9yZWQKICMgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTYwMjA2CiBodHRwL3Rlc3RzL25hdmlnYXRp
b24vcmVzcG9uc2UyMDQuaHRtbAorCisjIFRoaXMgcGxhdGZvcm0gZG9lcyBub3Qgc3VwcG9ydCB0
aGUgUGFnZSBWaXNpYmlsaXR5IEFQSS4KK2Zhc3QvZXZlbnRzL3BhZ2UtdmlzaWJpbGl0eS1pZnJh
bWUtZGVsZXRlLXRlc3QuaHRtbAorZmFzdC9ldmVudHMvcGFnZS12aXNpYmlsaXR5LWlmcmFtZS1t
b3ZlLXRlc3QuaHRtbAorZmFzdC9ldmVudHMvcGFnZS12aXNpYmlsaXR5LWlmcmFtZS1wcm9wYWdh
dGlvbi10ZXN0Lmh0bWwKK2Zhc3QvZXZlbnRzL3BhZ2UtdmlzaWJpbGl0eS10cmFuc2l0aW9uLXRl
c3QuaHRtbApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQgYi9Tb3Vy
Y2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAppbmRleCBjNTRiMmVlLi4wOWZiNzg1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9D
TWFrZUxpc3RzLnR4dApAQCAtMTAxMSw2ICsxMDExLDcgQEAgU0VUKFdlYkNvcmVfU09VUkNFUwog
ICAgIHBhZ2UvUGFnZUdyb3VwLmNwcAogICAgIHBhZ2UvUGFnZUdyb3VwTG9hZERlZmVycmVyLmNw
cAogICAgIHBhZ2UvUGFnZVNlcmlhbGl6ZXIuY3BwCisgICAgcGFnZS9QYWdlVmlzaWJpbGl0eVN0
YXRlLmNwcAogICAgIHBhZ2UvUGVyZm9ybWFuY2UuY3BwCiAgICAgcGFnZS9QZXJmb3JtYW5jZU5h
dmlnYXRpb24uY3BwCiAgICAgcGFnZS9QZXJmb3JtYW5jZVRpbWluZy5jcHAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0gYi9Tb3VyY2UvV2ViQ29yZS9HTlVt
YWtlZmlsZS5saXN0LmFtCmluZGV4IGIwNDBmOTUuLjFiMzJiNDIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KKysrIGIvU291cmNlL1dlYkNvcmUvR05VbWFr
ZWZpbGUubGlzdC5hbQpAQCAtMjIyMCw2ICsyMjIwLDggQEAgd2ViY29yZV9zb3VyY2VzICs9IFwK
IAlTb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VHcm91cExvYWREZWZlcnJlci5oIFwKIAlTb3VyY2Uv
V2ViQ29yZS9wYWdlL1BhZ2VTZXJpYWxpemVyLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvcGFnZS9Q
YWdlU2VyaWFsaXplci5oIFwKKwlTb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VWaXNpYmlsaXR5U3Rh
dGUuY3BwIFwKKwlTb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VWaXNpYmlsaXR5U3RhdGUuaCBcCiAJ
U291cmNlL1dlYkNvcmUvcGFnZS9QZXJmb3JtYW5jZS5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL3Bh
Z2UvUGVyZm9ybWFuY2UuaCBcCiAJU291cmNlL1dlYkNvcmUvcGFnZS9QZXJmb3JtYW5jZU5hdmln
YXRpb24uY3BwIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaSBiL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQppbmRleCA5ZjJmY2I2Li5iZTM5YzcxIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKKysrIGIvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS5neXBpCkBAIC03MTEsNiArNzExLDcgQEAKICAgICAgICAgICAgICdwYWdlL1BhZ2UuaCcs
CiAgICAgICAgICAgICAncGFnZS9QYWdlR3JvdXAuaCcsCiAgICAgICAgICAgICAncGFnZS9QYWdl
U2VyaWFsaXplci5oJywKKyAgICAgICAgICAgICdwYWdlL1BhZ2VWaXNpYmlsaXR5U3RhdGUuaCcs
CiAgICAgICAgICAgICAncGFnZS9QbHVnaW5IYWx0ZXJDbGllbnQuaCcsCiAgICAgICAgICAgICAn
cGFnZS9Qb3NpdGlvbkNhbGxiYWNrLmgnLAogICAgICAgICAgICAgJ3BhZ2UvUG9zaXRpb25FcnJv
ci5oJywKQEAgLTM0MzUsNiArMzQzNiw3IEBACiAgICAgICAgICAgICAncGFnZS9QYWdlR3JvdXBM
b2FkRGVmZXJyZXIuY3BwJywKICAgICAgICAgICAgICdwYWdlL1BhZ2VHcm91cExvYWREZWZlcnJl
ci5oJywKICAgICAgICAgICAgICdwYWdlL1BhZ2VTZXJpYWxpemVyLmNwcCcsCisgICAgICAgICAg
ICAncGFnZS9QYWdlVmlzaWJpbGl0eVN0YXRlLmNwcCcsCiAgICAgICAgICAgICAncGFnZS9QZXJm
b3JtYW5jZS5jcHAnLAogICAgICAgICAgICAgJ3BhZ2UvUGVyZm9ybWFuY2UuaCcsCiAgICAgICAg
ICAgICAncGFnZS9QZXJmb3JtYW5jZU5hdmlnYXRpb24uY3BwJywKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUucHJvIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5wcm8KaW5kZXgg
ODQ4MmMwMy4uNmExMmIzMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5wcm8K
KysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5wcm8KQEAgLTkyMSw2ICs5MjEsNyBAQCBTT1VS
Q0VTICs9IFwKICAgICBwYWdlL1BhZ2VHcm91cC5jcHAgXAogICAgIHBhZ2UvUGFnZUdyb3VwTG9h
ZERlZmVycmVyLmNwcCBcCiAgICAgcGFnZS9QYWdlU2VyaWFsaXplci5jcHAgXAorICAgIHBhZ2Uv
UGFnZVZpc2liaWxpdHlTdGF0ZS5jcHAgXAogICAgIHBhZ2UvUGVyZm9ybWFuY2UuY3BwIFwKICAg
ICBwYWdlL1BlcmZvcm1hbmNlTmF2aWdhdGlvbi5jcHAgXAogICAgIHBhZ2UvUGVyZm9ybWFuY2VU
aW1pbmcuY3BwIFwKQEAgLTE4NjIsNiArMTg2Myw3IEBAIEhFQURFUlMgKz0gXAogICAgIHBhZ2Uv
UGFnZUdyb3VwTG9hZERlZmVycmVyLmggXAogICAgIHBhZ2UvUGFnZS5oIFwKICAgICBwYWdlL1Bh
Z2VTZXJpYWxpemVyLmggXAorICAgIHBhZ2UvUGFnZVZpc2liaWxpdHlTdGF0ZS5oIFwKICAgICBw
YWdlL1BsdWdpbkhhbHRlci5oIFwKICAgICBwYWdlL1BsdWdpbkhhbHRlckNsaWVudC5oIFwKICAg
ICBwYWdlL1ByaW50Q29udGV4dC5oIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUudmNwcm9qL1dlYkNvcmUudmNwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ov
V2ViQ29yZS52Y3Byb2oKaW5kZXggZTJjOGY1NS4uZmUxYzRhYyAxMDA3NTUKLS0tIGEvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKKysrIGIvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKQEAgLTI0NzUwLDYgKzI0NzUwLDEyIEBA
CiAJCQkJPgogCQkJPC9GaWxlPgogCQkJPEZpbGUKKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHBhZ2Vc
UGFnZVZpc2liaWxpdHlTdGF0ZS5jcHAiCisJCQkJPgorCQkJPEZpbGUKKwkJCQlSZWxhdGl2ZVBh
dGg9Ii4uXHBhZ2VcUGFnZVZpc2liaWxpdHlTdGF0ZS5oIgorCQkJCT4KKwkJCTxGaWxlCiAJCQkJ
UmVsYXRpdmVQYXRoPSIuLlxwYWdlXFBlcmZvcm1hbmNlLmNwcCIKIAkJCQk+CiAJCQk8L0ZpbGU+
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oK
aW5kZXggNDM5ZTMxMy4uNzNhNjAzZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNTkyNiw2ICs1OTI2LDggQEAKIAkJRkU4MERB
NjYwRTlDNDcwMzAwMEQ2Rjc1IC8qIEpTR2VvcG9zaXRpb24uaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEZFODBEQTYyMEU5QzQ3MDMwMDBENkY3NSAvKiBK
U0dlb3Bvc2l0aW9uLmggKi87IH07CiAJCUZFODBEQTcxMEU5QzQ3MkYwMDBENkY3NSAvKiBKU1Bv
c2l0aW9uRXJyb3IuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gRkU4MERBNkQwRTlDNDcyRjAwMEQ2Rjc1IC8qIEpTUG9zaXRpb25FcnJvci5jcHAgKi87
IH07CiAJCUZFODBEQTcyMEU5QzQ3MkYwMDBENkY3NSAvKiBKU1Bvc2l0aW9uRXJyb3IuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEZFODBEQTZFMEU5QzQ3
MkYwMDBENkY3NSAvKiBKU1Bvc2l0aW9uRXJyb3IuaCAqLzsgfTsKKwkJRkZENUI5N0ExMzVDQzk3
ODAwRDVFOTJBIC8qIFBhZ2VWaXNpYmlsaXR5U3RhdGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRkZENUI5NzcxMzVDQzk3ODAwRDVFOTJBIC8qIFBh
Z2VWaXNpYmlsaXR5U3RhdGUuY3BwICovOyB9OworCQlGRkQ1Qjk3QjEzNUNDOTc4MDBENUU5MkEg
LyogUGFnZVZpc2liaWxpdHlTdGF0ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gRkZENUI5NzgxMzVDQzk3ODAwRDVFOTJBIC8qIFBhZ2VWaXNpYmlsaXR5
U3RhdGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owog
LyogRW5kIFBCWEJ1aWxkRmlsZSBzZWN0aW9uICovCiAKIC8qIEJlZ2luIFBCWENvbnRhaW5lckl0
ZW1Qcm94eSBzZWN0aW9uICovCkBAIC0xMjQ0Nyw2ICsxMjQ0OSw4IEBACiAJCUZFODBEQTYyMEU5
QzQ3MDMwMDBENkY3NSAvKiBKU0dlb3Bvc2l0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IEpTR2VvcG9zaXRpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
RkU4MERBNkQwRTlDNDcyRjAwMEQ2Rjc1IC8qIEpTUG9zaXRpb25FcnJvci5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1Bvc2l0aW9uRXJyb3IuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQlGRTgwREE2RTBFOUM0NzJGMDAwRDZGNzUgLyogSlNQb3Np
dGlvbkVycm9yLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTUG9zaXRpb25F
cnJvci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlGRkQ1Qjk3NzEzNUNDOTc4MDBE
NUU5MkEgLyogUGFnZVZpc2liaWxpdHlTdGF0ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBQYWdlVmlzaWJpbGl0eVN0YXRlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJRkZENUI5NzgxMzVDQzk3ODAwRDVFOTJBIC8qIFBhZ2VWaXNpYmlsaXR5U3Rh
dGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUGFnZVZpc2liaWxpdHlTdGF0
ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogLyogRW5kIFBCWEZpbGVSZWZlcmVuY2Ug
c2VjdGlvbiAqLwogCiAvKiBCZWdpbiBQQlhGcmFtZXdvcmtzQnVpbGRQaGFzZSBzZWN0aW9uICov
CkBAIC0xNDE3Miw2ICsxNDE3Niw4IEBACiAJCQkJN0E2NzRCREEwRjlFQkY0RTAwNkNGMDk5IC8q
IFBhZ2VHcm91cExvYWREZWZlcnJlci5oICovLAogCQkJCTM3MUU2NUNEMTM2NjFFRUQwMEJFRURC
MCAvKiBQYWdlU2VyaWFsaXplci5jcHAgKi8sCiAJCQkJMzcxRTY1Q0IxMzY2MUVEQzAwQkVFREIw
IC8qIFBhZ2VTZXJpYWxpemVyLmggKi8sCisJCQkJRkZENUI5NzcxMzVDQzk3ODAwRDVFOTJBIC8q
IFBhZ2VWaXNpYmlsaXR5U3RhdGUuY3BwICovLAorCQkJCUZGRDVCOTc4MTM1Q0M5NzgwMEQ1RTky
QSAvKiBQYWdlVmlzaWJpbGl0eVN0YXRlLmggKi8sCiAJCQkJOEE4NDREMDExMUQzQzE4RTAwMTQw
NjVDIC8qIFBlcmZvcm1hbmNlLmNwcCAqLywKIAkJCQk4QTg0NEQwMjExRDNDMThFMDAxNDA2NUMg
LyogUGVyZm9ybWFuY2UuaCAqLywKIAkJCQk4QTg0NEQwMzExRDNDMThFMDAxNDA2NUMgLyogUGVy
Zm9ybWFuY2UuaWRsICovLApAQCAtMjE4NzYsNiArMjE4ODIsNyBAQAogCQkJCUYzNDc0MkU1MTM0
MzYzM0MwMDUzMUJDMiAvKiBQYWdlU2NyaXB0RGVidWdTZXJ2ZXIuaCBpbiBIZWFkZXJzICovLAog
CQkJCTM3MUU2NUNDMTM2NjFFREMwMEJFRURCMCAvKiBQYWdlU2VyaWFsaXplci5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJRTEyODRBRTExMDQ0N0Q0NTAwRUFFQjUyIC8qIFBhZ2VUcmFuc2l0aW9uRXZl
bnQuaCBpbiBIZWFkZXJzICovLAorCQkJCUZGRDVCOTdCMTM1Q0M5NzgwMEQ1RTkyQSAvKiBQYWdl
VmlzaWJpbGl0eVN0YXRlLmggaW4gSGVhZGVycyAqLywKIAkJCQk1MUUxRUNDMzBDOTFDOTA0MDBE
QzI1NUIgLyogUGFnZVVSTFJlY29yZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDg4NTA2N0YxMURB
MDQ1QjAwMTgyQjk4IC8qIFBhaW50SW5mby5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDg4NTA2ODAx
MURBMDQ1QjAwMTgyQjk4IC8qIFBhaW50UGhhc2UuaCBpbiBIZWFkZXJzICovLApAQCAtMjQ3NDMs
NiArMjQ3NTAsNyBAQAogCQkJCTM3MUU2NUNFMTM2NjFFRUQwMEJFRURCMCAvKiBQYWdlU2VyaWFs
aXplci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlFMTI4NEFFQTEwNDQ3REVFMDBFQUVCNTIgLyog
UGFnZVRyYW5zaXRpb25FdmVudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1MUUxRUNDMjBDOTFD
OTA0MDBEQzI1NUIgLyogUGFnZVVSTFJlY29yZC5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlGRkQ1
Qjk3QTEzNUNDOTc4MDBENUU5MkEgLyogUGFnZVZpc2liaWxpdHlTdGF0ZS5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQlGRDMxNjBBMjEyQjAyNkY3MDBDMUEzNTkgLyogUGFubmVyLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCUY1NUIzREM5MTI1MUYxMkQwMDNFRjI2OSAvKiBQYXNzd29yZElucHV0VHlw
ZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk0QjI3MDk4MzBBRjJFNUUwMDA2NTEyN0YgLyogUGFz
dGVib2FyZE1hYy5tbSBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
ZG9tL0RvY3VtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKaW5kZXgg
YWM0NmJkNi4uYTVhNGQzMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCkBAIC0xMzU0LDYgKzEz
NTQsMzQgQEAgdm9pZCBEb2N1bWVudDo6cmVtb3ZlVGl0bGUoRWxlbWVudCogdGl0bGVFbGVtZW50
KQogICAgICAgICB1cGRhdGVUaXRsZShTdHJpbmdXaXRoRGlyZWN0aW9uKCkpOwogfQogCisjaWYg
RU5BQkxFKFBBR0VfVklTSUJJTElUWV9BUEkpCitQYWdlVmlzaWJpbGl0eVN0YXRlIERvY3VtZW50
Ojp2aXNpYmlsaXR5U3RhdGUoKSBjb25zdAoreworICAgIC8vIFRoZSB2aXNpYmlsaXR5IG9mIHRo
ZSBkb2N1bWVudCBpcyBpbmhlcml0ZWQgZnJvbSB0aGUgdmlzaWJpbGl0eSBvZiB0aGUKKyAgICAv
LyBwYWdlLiBJZiB0aGVyZSBpcyBubyBwYWdlIGFzc29jaWF0ZWQgd2l0aCB0aGUgZG9jdW1lbnQs
IHdlIHdpbGwgYXNzdW1lCisgICAgLy8gdGhhdCB0aGUgcGFnZSBpcyB2aXNpYmxlIGkuZS4gaW52
aXNpYmlsaXR5IGhhcyB0byBiZSBleHBsaWNpdGx5CisgICAgLy8gc3BlY2lmaWVkIGJ5IHRoZSBl
bWJlZGRlci4KKyAgICBpZiAoIW1fZnJhbWUgfHwgIW1fZnJhbWUtPnBhZ2UoKSkKKyAgICAgICAg
cmV0dXJuIFBhZ2VWaXNpYmlsaXR5U3RhdGVWaXNpYmxlOworICAgIHJldHVybiBtX2ZyYW1lLT5w
YWdlKCktPnZpc2liaWxpdHlTdGF0ZSgpOworfQorCitTdHJpbmcgRG9jdW1lbnQ6OndlYmtpdFZp
c2liaWxpdHlTdGF0ZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIEdldFBhZ2VWaXNpYmlsaXR5U3Rh
dGVTdHJpbmcodmlzaWJpbGl0eVN0YXRlKCkpOworfQorCitib29sIERvY3VtZW50Ojp3ZWJraXRJ
c1Zpc2libGUoKSBjb25zdAoreworICAgIHJldHVybiB2aXNpYmlsaXR5U3RhdGUoKSA9PSBQYWdl
VmlzaWJpbGl0eVN0YXRlVmlzaWJsZTsKK30KKwordm9pZCBEb2N1bWVudDo6ZGlzcGF0Y2hWaXNp
YmlsaXR5U3RhdGVDaGFuZ2VFdmVudCgpCit7CisgICAgZGlzcGF0Y2hFdmVudChFdmVudDo6Y3Jl
YXRlKGV2ZW50TmFtZXMoKS53ZWJraXR2aXNpYmlsaXR5c3RhdGVjaGFuZ2VFdmVudCwgZmFsc2Us
IGZhbHNlKSk7Cit9CisjZW5kaWYKKwogU3RyaW5nIERvY3VtZW50Ojpub2RlTmFtZSgpIGNvbnN0
CiB7CiAgICAgcmV0dXJuICIjZG9jdW1lbnQiOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
ZG9tL0RvY3VtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAppbmRleCAyMzE1
ZTc5Li43MWI3YWY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaApAQCAtMzQsNiArMzQsNyBAQAogI2lu
Y2x1ZGUgIkRPTVRpbWVTdGFtcC5oIgogI2luY2x1ZGUgIkRvY3VtZW50VGltaW5nLmgiCiAjaW5j
bHVkZSAiSWNvblVSTC5oIgorI2luY2x1ZGUgIlBhZ2VWaXNpYmlsaXR5U3RhdGUuaCIKICNpbmNs
dWRlICJRdWFsaWZpZWROYW1lLmgiCiAjaW5jbHVkZSAiU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5o
IgogI2luY2x1ZGUgIlN0cmluZ1dpdGhEaXJlY3Rpb24uaCIKQEAgLTMwNCw2ICszMDUsOSBAQCBw
dWJsaWM6CiAjaWYgRU5BQkxFKEZVTExTQ1JFRU5fQVBJKQogICAgIERFRklORV9BVFRSSUJVVEVf
RVZFTlRfTElTVEVORVIod2Via2l0ZnVsbHNjcmVlbmNoYW5nZSk7CiAjZW5kaWYKKyNpZiBFTkFC
TEUoUEFHRV9WSVNJQklMSVRZX0FQSSkKKyAgICBERUZJTkVfQVRUUklCVVRFX0VWRU5UX0xJU1RF
TkVSKHdlYmtpdHZpc2liaWxpdHlzdGF0ZWNoYW5nZSk7CisjZW5kaWYKIAogICAgIFZpZXdwb3J0
QXJndW1lbnRzIHZpZXdwb3J0QXJndW1lbnRzKCkgY29uc3QgeyByZXR1cm4gbV92aWV3cG9ydEFy
Z3VtZW50czsgfQogCkBAIC0zNzksNiArMzgzLDEyIEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwg
S1VSTCBiYXNlVVJJKCkgY29uc3Q7CiAKKyNpZiBFTkFCTEUoUEFHRV9WSVNJQklMSVRZX0FQSSkK
KyAgICBTdHJpbmcgd2Via2l0VmlzaWJpbGl0eVN0YXRlKCkgY29uc3Q7CisgICAgYm9vbCB3ZWJr
aXRJc1Zpc2libGUoKSBjb25zdDsKKyAgICB2b2lkIGRpc3BhdGNoVmlzaWJpbGl0eVN0YXRlQ2hh
bmdlRXZlbnQoKTsKKyNlbmRpZgorCiAgICAgUGFzc1JlZlB0cjxOb2RlPiBhZG9wdE5vZGUoUGFz
c1JlZlB0cjxOb2RlPiBzb3VyY2UsIEV4Y2VwdGlvbkNvZGUmKTsKIAogICAgIFBhc3NSZWZQdHI8
SFRNTENvbGxlY3Rpb24+IGltYWdlcygpOwpAQCAtMTEzMiw2ICsxMTQyLDEwIEBAIHByaXZhdGU6
CiAKICAgICB2b2lkIGxvYWRFdmVudERlbGF5VGltZXJGaXJlZChUaW1lcjxEb2N1bWVudD4qKTsK
IAorI2lmIEVOQUJMRShQQUdFX1ZJU0lCSUxJVFlfQVBJKQorICAgIFBhZ2VWaXNpYmlsaXR5U3Rh
dGUgdmlzaWJpbGl0eVN0YXRlKCkgY29uc3Q7CisjZW5kaWYKKwogICAgIGludCBtX2d1YXJkUmVm
Q291bnQ7CiAKICAgICBPd25QdHI8Q1NTU3R5bGVTZWxlY3Rvcj4gbV9zdHlsZVNlbGVjdG9yOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmlkbCBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9Eb2N1bWVudC5pZGwKaW5kZXggNWNmYWIyNC4uODlhZTY1ZSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20v
RG9jdW1lbnQuaWRsCkBAIC0zMzQsNiArMzM0LDEwIEBAIG1vZHVsZSBjb3JlIHsKICAgICAgICAg
Ym9vbGVhbiBpc0hUTUxEb2N1bWVudCgpOwogI2VuZGlmCiAKKyAgICAgICAgLy8gUGFnZSB2aXNp
YmlsaXR5IEFQSS4KKyAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFtDb25kaXRpb25hbD1QQUdF
X1ZJU0lCSUxJVFlfQVBJXSBET01TdHJpbmcgd2Via2l0VmlzaWJpbGl0eVN0YXRlOworICAgICAg
ICByZWFkb25seSBhdHRyaWJ1dGUgW0NvbmRpdGlvbmFsPVBBR0VfVklTSUJJTElUWV9BUEldIGJv
b2xlYW4gd2Via2l0SXNWaXNpYmxlOworCiAgICAgfTsKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvZG9tL0V2ZW50TmFtZXMuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudE5hbWVz
LmgKaW5kZXggZWNlMmEwOC4uOTZmMDM4MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9t
L0V2ZW50TmFtZXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnROYW1lcy5oCkBAIC0x
MDYsNiArMTA2LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIG1hY3JvKHVubG9hZCkgXAog
ICAgIG1hY3JvKHVwZGF0ZXJlYWR5KSBcCiAgICAgbWFjcm8odmVyc2lvbmNoYW5nZSkgXAorICAg
IG1hY3JvKHdlYmtpdHZpc2liaWxpdHlzdGF0ZWNoYW5nZSkgXAogICAgIG1hY3JvKHdyaXRlKSBc
CiAgICAgbWFjcm8od3JpdGVlbmQpIFwKICAgICBtYWNybyh3cml0ZXN0YXJ0KSBcCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
RnJhbWUuY3BwCmluZGV4IGFmNDQwZGMuLjNhOGQzYjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvRnJhbWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWUuY3BwCkBA
IC03MTgsNiArNzE4LDE2IEBAIHZvaWQgRnJhbWU6OnNldERPTVdpbmRvdyhET01XaW5kb3cqIGRv
bVdpbmRvdykKICAgICBtX2RvbVdpbmRvdyA9IGRvbVdpbmRvdzsKIH0KIAorI2lmIEVOQUJMRShQ
QUdFX1ZJU0lCSUxJVFlfQVBJKQordm9pZCBGcmFtZTo6ZGlzcGF0Y2hWaXNpYmlsaXR5U3RhdGVD
aGFuZ2VFdmVudCgpCit7CisgICAgaWYgKG1fZG9jKQorICAgICAgICBtX2RvYy0+ZGlzcGF0Y2hW
aXNpYmlsaXR5U3RhdGVDaGFuZ2VFdmVudCgpOworICAgIGZvciAoRnJhbWUqIGNoaWxkID0gdHJl
ZSgpLT5maXJzdENoaWxkKCk7IGNoaWxkOyBjaGlsZCA9IGNoaWxkLT50cmVlKCktPm5leHRTaWJs
aW5nKCkpCisgICAgICAgIGNoaWxkLT5kaXNwYXRjaFZpc2liaWxpdHlTdGF0ZUNoYW5nZUV2ZW50
KCk7Cit9CisjZW5kaWYKKwogRE9NV2luZG93KiBGcmFtZTo6ZG9tV2luZG93KCkgY29uc3QKIHsK
ICAgICBpZiAoIW1fZG9tV2luZG93KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9G
cmFtZS5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZS5oCmluZGV4IGJlZDM0MTEuLjdkYTlj
NDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWUuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL0ZyYW1lLmgKQEAgLTExOSw2ICsxMTksMTAgQEAgbmFtZXNwYWNlIFdlYkNv
cmUgewogCiAgICAgICAgIHZvaWQgdHJhbnNmZXJDaGlsZEZyYW1lVG9OZXdEb2N1bWVudCgpOwog
CisjaWYgRU5BQkxFKFBBR0VfVklTSUJJTElUWV9BUEkpCisgICAgICAgIHZvaWQgZGlzcGF0Y2hW
aXNpYmlsaXR5U3RhdGVDaGFuZ2VFdmVudCgpOworI2VuZGlmCisKICAgICAvLyA9PT09PT09PSBB
bGwgcHVibGljIGZ1bmN0aW9ucyBiZWxvdyB0aGlzIHBvaW50IGFyZSBjYW5kaWRhdGVzIHRvIG1v
dmUgb3V0IG9mIEZyYW1lIGludG8gYW5vdGhlciBjbGFzcy4gPT09PT09PT0KIAogICAgICAgICBi
b29sIGlzRGlzY29ubmVjdGVkKCkgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL1BhZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcAppbmRleCBmOGRkZWVj
Li45NWU4ZTIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAKQEAgLTE2Myw2ICsxNjMsOSBAQCBQYWdlOjpQ
YWdlKGNvbnN0IFBhZ2VDbGllbnRzJiBwYWdlQ2xpZW50cykKICAgICAsIG1fdmlld01vZGUoVmll
d01vZGVXaW5kb3dlZCkKICAgICAsIG1fbWluaW11bVRpbWVySW50ZXJ2YWwoU2V0dGluZ3M6OmRl
ZmF1bHRNaW5ET01UaW1lckludGVydmFsKCkpCiAgICAgLCBtX2lzRWRpdGFibGUoZmFsc2UpCisj
aWYgRU5BQkxFKFBBR0VfVklTSUJJTElUWV9BUEkpCisgICAgLCBtX3Zpc2liaWxpdHlTdGF0ZShQ
YWdlVmlzaWJpbGl0eVN0YXRlVmlzaWJsZSkKKyNlbmRpZgogewogICAgIGlmICghYWxsUGFnZXMp
IHsKICAgICAgICAgYWxsUGFnZXMgPSBuZXcgSGFzaFNldDxQYWdlKj47CkBAIC05MzQsNiArOTM3
LDIzIEBAIHZvaWQgUGFnZTo6Y2hlY2tGcmFtZUNvdW50Q29uc2lzdGVuY3koKSBjb25zdAogfQog
I2VuZGlmCiAKKyNpZiBFTkFCTEUoUEFHRV9WSVNJQklMSVRZX0FQSSkKK3ZvaWQgUGFnZTo6c2V0
VmlzaWJpbGl0eVN0YXRlKFBhZ2VWaXNpYmlsaXR5U3RhdGUgdmlzaWJpbGl0eVN0YXRlLCBib29s
IGlzSW5pdGlhbFN0YXRlKQoreworICAgIGlmIChtX3Zpc2liaWxpdHlTdGF0ZSA9PSB2aXNpYmls
aXR5U3RhdGUpCisgICAgICAgIHJldHVybjsKKyAgICBtX3Zpc2liaWxpdHlTdGF0ZSA9IHZpc2li
aWxpdHlTdGF0ZTsKKworICAgIGlmICghaXNJbml0aWFsU3RhdGUgJiYgbV9tYWluRnJhbWUpCisg
ICAgICAgIG1fbWFpbkZyYW1lLT5kaXNwYXRjaFZpc2liaWxpdHlTdGF0ZUNoYW5nZUV2ZW50KCk7
Cit9CisKK1BhZ2VWaXNpYmlsaXR5U3RhdGUgUGFnZTo6dmlzaWJpbGl0eVN0YXRlKCkgY29uc3QK
K3sKKyAgICByZXR1cm4gbV92aXNpYmlsaXR5U3RhdGU7Cit9CisjZW5kaWYKKwogUGFnZTo6UGFn
ZUNsaWVudHM6OlBhZ2VDbGllbnRzKCkKICAgICA6IGNocm9tZUNsaWVudCgwKQogICAgICwgY29u
dGV4dE1lbnVDbGllbnQoMCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5o
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmgKaW5kZXggNTg0Y2M3ZS4uOWY2MjQzMiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9QYWdlLmgKQEAgLTIzLDYgKzIzLDcgQEAKIAogI2luY2x1ZGUgIkZyYW1lTG9hZGVyVHlw
ZXMuaCIKICNpbmNsdWRlICJGaW5kT3B0aW9ucy5oIgorI2luY2x1ZGUgIlBhZ2VWaXNpYmlsaXR5
U3RhdGUuaCIKICNpbmNsdWRlICJQbGF0Zm9ybVN0cmluZy5oIgogI2luY2x1ZGUgIlZpZXdwb3J0
QXJndW1lbnRzLmgiCiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KQEAgLTMwMCw2ICszMDEsMTEg
QEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICB2b2lkIHNldEVkaXRhYmxlKGJvb2wgaXNF
ZGl0YWJsZSkgeyBtX2lzRWRpdGFibGUgPSBpc0VkaXRhYmxlOyB9CiAgICAgICAgIGJvb2wgaXNF
ZGl0YWJsZSgpIHsgcmV0dXJuIG1faXNFZGl0YWJsZTsgfQogCisjaWYgRU5BQkxFKFBBR0VfVklT
SUJJTElUWV9BUEkpCisgICAgICAgIFBhZ2VWaXNpYmlsaXR5U3RhdGUgdmlzaWJpbGl0eVN0YXRl
KCkgY29uc3Q7CisgICAgICAgIHZvaWQgc2V0VmlzaWJpbGl0eVN0YXRlKFBhZ2VWaXNpYmlsaXR5
U3RhdGUsIGJvb2wpOworI2VuZGlmCisKICAgICBwcml2YXRlOgogICAgICAgICB2b2lkIGluaXRH
cm91cCgpOwogCkBAIC00MDUsNiArNDExLDEwIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAg
ICAgT3duUHRyPFNjcm9sbGFibGVBcmVhU2V0PiBtX3Njcm9sbGFibGVBcmVhU2V0OwogCiAgICAg
ICAgIGJvb2wgbV9pc0VkaXRhYmxlOworCisjaWYgRU5BQkxFKFBBR0VfVklTSUJJTElUWV9BUEkp
CisgICAgICAgIFBhZ2VWaXNpYmlsaXR5U3RhdGUgbV92aXNpYmlsaXR5U3RhdGU7CisjZW5kaWYK
ICAgICB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL1BhZ2VWaXNpYmlsaXR5U3RhdGUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9Q
YWdlVmlzaWJpbGl0eVN0YXRlLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
Li5mZTE4ZGZhCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlVmlz
aWJpbGl0eVN0YXRlLmNwcApAQCAtMCwwICsxLDU2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
ICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAg
ICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMK
KyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVj
dHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Ig
d3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
VEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBM
SU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QK
KyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2lu
Y2x1ZGUgIlBhZ2VWaXNpYmlsaXR5U3RhdGUuaCIKKworI2lmIEVOQUJMRShQQUdFX1ZJU0lCSUxJ
VFlfQVBJKQorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1N0cmluZyBHZXRQYWdlVmlzaWJpbGl0
eVN0YXRlU3RyaW5nKFBhZ2VWaXNpYmlsaXR5U3RhdGUgc3RhdGUpCit7CisgICAgREVGSU5FX1NU
QVRJQ19MT0NBTChjb25zdCBTdHJpbmcsIHZpc2libGUsICgidmlzaWJsZSIpKTsKKyAgICBERUZJ
TkVfU1RBVElDX0xPQ0FMKGNvbnN0IFN0cmluZywgaGlkZGVuLCAoImhpZGRlbiIpKTsKKworICAg
IHN3aXRjaCAoc3RhdGUpIHsKKyAgICBjYXNlIFBhZ2VWaXNpYmlsaXR5U3RhdGVWaXNpYmxlOgor
ICAgICAgICByZXR1cm4gdmlzaWJsZTsKKyAgICBjYXNlIFBhZ2VWaXNpYmlsaXR5U3RhdGVIaWRk
ZW46CisgICAgICAgIHJldHVybiBoaWRkZW47CisgICAgfQorCisgICAgQVNTRVJUX05PVF9SRUFD
SEVEKCk7CisgICAgcmV0dXJuIFN0cmluZygpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CisKKyNlbmRpZiAvLyBpZiBFTkFCTEUoUEFHRV9WSVNJQklMSVRZX0FQSSkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZVZpc2liaWxpdHlTdGF0ZS5oIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9QYWdlVmlzaWJpbGl0eVN0YXRlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMC4uYTdkNzAyMQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
UGFnZVZpc2liaWxpdHlTdGF0ZS5oCkBAIC0wLDAgKzEsNTEgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgor
ICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9m
IGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBw
cm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBw
cmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QK
KyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9S
UyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAq
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFBhZ2VWaXNpYmls
aXR5U3RhdGVfaAorI2RlZmluZSBQYWdlVmlzaWJpbGl0eVN0YXRlX2gKKworI2luY2x1ZGUgPHd0
Zi90ZXh0L1dURlN0cmluZy5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKKy8vIFRoZSBlbnVt
IGlzIG5vdCBmbGFnIHByb3RlY3RlZCBhcyBpdCBpcyB1c2VkIGluIHRoZSBXZWJLaXQgY2hyb21p
dW0gQVBJCisvLyB3aXRob3V0IGZsYWcgcHJvdGVjdGlvbi4KK2VudW0gUGFnZVZpc2liaWxpdHlT
dGF0ZSB7CisgICAgUGFnZVZpc2liaWxpdHlTdGF0ZVZpc2libGUsCisgICAgUGFnZVZpc2liaWxp
dHlTdGF0ZUhpZGRlbgorfTsKKworI2lmIEVOQUJMRShQQUdFX1ZJU0lCSUxJVFlfQVBJKQorU3Ry
aW5nIEdldFBhZ2VWaXNpYmlsaXR5U3RhdGVTdHJpbmcoUGFnZVZpc2liaWxpdHlTdGF0ZSk7Cisj
ZW5kaWYKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gaWZuZGVmIFBhZ2VW
aXNpYmlsaXR5U3RhdGVfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9XZWJL
aXQuZ3lwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9XZWJLaXQuZ3lwCmluZGV4IDNlMGIwZDku
LmE2ZTliMjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vV2ViS2l0Lmd5cAor
KysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL1dlYktpdC5neXAKQEAgLTIyNyw2ICsyMjcsNyBA
QAogICAgICAgICAgICAgICAgICdwdWJsaWMvV2ViT3B0aW9uRWxlbWVudC5oJywKICAgICAgICAg
ICAgICAgICAncHVibGljL1dlYlBhZ2VTZXJpYWxpemVyLmgnLAogICAgICAgICAgICAgICAgICdw
dWJsaWMvV2ViUGFnZVNlcmlhbGl6ZXJDbGllbnQuaCcsCisgICAgICAgICAgICAgICAgJ3B1Ymxp
Yy9XZWJQYWdlVmlzaWJpbGl0eVN0YXRlLmgnLAogICAgICAgICAgICAgICAgICdwdWJsaWMvV2Vi
UGFzc3dvcmRBdXRvY29tcGxldGVMaXN0ZW5lci5oJywKICAgICAgICAgICAgICAgICAncHVibGlj
L1dlYlBhc3N3b3JkRm9ybURhdGEuaCcsCiAgICAgICAgICAgICAgICAgJ3B1YmxpYy9XZWJQZXJm
b3JtYW5jZS5oJywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dl
YlBhZ2VWaXNpYmlsaXR5U3RhdGUuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dl
YlBhZ2VWaXNpYmlsaXR5U3RhdGUuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
Li41NDc0YmU0Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJs
aWMvV2ViUGFnZVZpc2liaWxpdHlTdGF0ZS5oCkBAIC0wLDAgKzEsNDUgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
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
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFdlYlBh
Z2VWaXNpYmlsaXR5U3RhdGVfaAorI2RlZmluZSBXZWJQYWdlVmlzaWJpbGl0eVN0YXRlX2gKKwor
bmFtZXNwYWNlIFdlYktpdCB7CisKKy8vIFRoZSBmb2xsb3dpbmcgZW51bSBzaG91bGQgYmUgY29u
c2lzdGVudCB3aXRoIHRoZSBQYWdlVmlzaWJpbGl0eVN0YXRlIGVudW0KKy8vIGRlZmluZWQgaW4g
V2ViQ29yZS4KK2VudW0gV2ViUGFnZVZpc2liaWxpdHlTdGF0ZSB7CisgICAgV2ViUGFnZVZpc2li
aWxpdHlTdGF0ZVZpc2libGUsCisgICAgV2ViUGFnZVZpc2liaWxpdHlTdGF0ZUhpZGRlbgorfTsK
KworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViVmlldy5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9w
dWJsaWMvV2ViVmlldy5oCmluZGV4IDNlOWIzZDYuLjRhM2FiNTggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlZpZXcuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL3B1YmxpYy9XZWJWaWV3LmgKQEAgLTMyLDYgKzMyLDcgQEAKICNkZWZpbmUgV2ViVmll
d19oCiAKICNpbmNsdWRlICJXZWJEcmFnT3BlcmF0aW9uLmgiCisjaW5jbHVkZSAiV2ViUGFnZVZp
c2liaWxpdHlTdGF0ZS5oIgogI2luY2x1ZGUgIldlYlN0cmluZy5oIgogI2luY2x1ZGUgIldlYlZl
Y3Rvci5oIgogI2luY2x1ZGUgIldlYldpZGdldC5oIgpAQCAtMzU3LDYgKzM1OCwxMiBAQCBwdWJs
aWM6CiAgICAgLy8gQVBJcy4KICAgICB2aXJ0dWFsIFdlYkdyYXBoaWNzQ29udGV4dDNEKiBncmFw
aGljc0NvbnRleHQzRCgpID0gMDsKIAorICAgIC8vIFZpc2liaWxpdHkgLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIC8vIFNl
dHMgdGhlIHZpc2liaWxpdHkgb2YgdGhlIFdlYlZpZXcuCisgICAgdmlydHVhbCB2b2lkIHNldFZp
c2liaWxpdHlTdGF0ZShXZWJQYWdlVmlzaWJpbGl0eVN0YXRlIHZpc2liaWxpdHlTdGF0ZSwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2wgaXNJbml0aWFsU3RhdGUpIHsg
fQorCiBwcm90ZWN0ZWQ6CiAgICAgfldlYlZpZXcoKSB7fQogfTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlZpZXdDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vcHVibGljL1dlYlZpZXdDbGllbnQuaAppbmRleCA1MTc0MzUxLi5mM2JlM2NhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJWaWV3Q2xpZW50LmgK
KysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViVmlld0NsaWVudC5oCkBAIC0z
Niw2ICszNiw3IEBACiAjaW5jbHVkZSAiV2ViRWRpdGluZ0FjdGlvbi5oIgogI2luY2x1ZGUgIldl
YkZpbGVDaG9vc2VyQ29tcGxldGlvbi5oIgogI2luY2x1ZGUgIldlYkZpbGVDaG9vc2VyUGFyYW1z
LmgiCisjaW5jbHVkZSAiV2ViUGFnZVZpc2liaWxpdHlTdGF0ZS5oIgogI2luY2x1ZGUgIldlYlBv
cHVwVHlwZS5oIgogI2luY2x1ZGUgIldlYlN0cmluZy5oIgogI2luY2x1ZGUgIldlYlRleHRBZmZp
bml0eS5oIgpAQCAtMzE1LDYgKzMxNiwxNCBAQCBwdWJsaWM6CiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFdlYlN0cmluZyYgdXJsLAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBXZWJTdHJpbmcmIHRpdGxlKSB7IH0K
IAorICAgIC8vIFZpc2liaWxpdHkgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIC8vIFJldHVybnMgdGhlIGN1cnJlbnQgdmlz
aWJpbGl0eSBvZiB0aGUgV2ViVmlldy4KKyAgICB2aXJ0dWFsIFdlYlBhZ2VWaXNpYmlsaXR5U3Rh
dGUgdmlzaWJpbGl0eVN0YXRlKCkgY29uc3QKKyAgICB7CisgICAgICAgIHJldHVybiBXZWJQYWdl
VmlzaWJpbGl0eVN0YXRlVmlzaWJsZTsKKyAgICB9CisKIHByb3RlY3RlZDoKICAgICB+V2ViVmll
d0NsaWVudCgpIHsgfQogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3Jj
L0Fzc2VydE1hdGNoaW5nRW51bXMuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvQXNz
ZXJ0TWF0Y2hpbmdFbnVtcy5jcHAKaW5kZXggNTMzZThlYy4uMzgzMTBiNiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvQXNzZXJ0TWF0Y2hpbmdFbnVtcy5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvQXNzZXJ0TWF0Y2hpbmdFbnVtcy5jcHAKQEAgLTUw
LDYgKzUwLDcgQEAKICNpbmNsdWRlICJJREJLZXkuaCIKICNpbmNsdWRlICJNZWRpYVBsYXllci5o
IgogI2luY2x1ZGUgIk5vdGlmaWNhdGlvblByZXNlbnRlci5oIgorI2luY2x1ZGUgIlBhZ2VWaXNp
YmlsaXR5U3RhdGUuaCIKICNpbmNsdWRlICJQYXN0ZWJvYXJkUHJpdmF0ZS5oIgogI2luY2x1ZGUg
IlBsYXRmb3JtQ3Vyc29yLmgiCiAjaW5jbHVkZSAiU2V0dGluZ3MuaCIKQEAgLTc1LDYgKzc2LDcg
QEAKICNpbmNsdWRlICJXZWJJbnB1dEVsZW1lbnQuaCIKICNpbmNsdWRlICJXZWJNZWRpYVBsYXll
ci5oIgogI2luY2x1ZGUgIldlYk5vdGlmaWNhdGlvblByZXNlbnRlci5oIgorI2luY2x1ZGUgIldl
YlBhZ2VWaXNpYmlsaXR5U3RhdGUuaCIKICNpbmNsdWRlICJXZWJTY3JvbGxiYXIuaCIKICNpbmNs
dWRlICJXZWJTZXR0aW5ncy5oIgogI2luY2x1ZGUgIldlYlN0b3JhZ2VRdW90YUVycm9yLmgiCkBA
IC00NDUsMyArNDQ3LDYgQEAgQ09NUElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5VTShXZWJUaGVtZUVu
Z2luZTo6U2Nyb2xsYmFyT3JpZW50YXRpb25WZXJ0aWNhbCwgUGxhdGYKIENPTVBJTEVfQVNTRVJU
X01BVENISU5HX0VOVU0oV2ViVGhlbWVFbmdpbmU6OlNjcm9sbGJhclBhcmVudFNjcm9sbFZpZXcs
IFBsYXRmb3JtQnJpZGdlOjpTY3JvbGxiYXJQYXJlbnRTY3JvbGxWaWV3KTsKIENPTVBJTEVfQVNT
RVJUX01BVENISU5HX0VOVU0oV2ViVGhlbWVFbmdpbmU6OlNjcm9sbGJhclBhcmVudFJlbmRlckxh
eWVyLCBQbGF0Zm9ybUJyaWRnZTo6U2Nyb2xsYmFyUGFyZW50UmVuZGVyTGF5ZXIpOwogI2VuZGlm
CisKK0NPTVBJTEVfQVNTRVJUX01BVENISU5HX0VOVU0oV2ViUGFnZVZpc2liaWxpdHlTdGF0ZVZp
c2libGUsIFBhZ2VWaXNpYmlsaXR5U3RhdGVWaXNpYmxlKTsKK0NPTVBJTEVfQVNTRVJUX01BVENI
SU5HX0VOVU0oV2ViUGFnZVZpc2liaWxpdHlTdGF0ZUhpZGRlbiwgUGFnZVZpc2liaWxpdHlTdGF0
ZUhpZGRlbik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3
SW1wbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAKaW5k
ZXggNjZlOTIwOS4uOGM2MjNkNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9z
cmMvV2ViVmlld0ltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZp
ZXdJbXBsLmNwcApAQCAtMzY2LDYgKzM2NiwxMCBAQCBXZWJWaWV3SW1wbDo6V2ViVmlld0ltcGwo
V2ViVmlld0NsaWVudCogY2xpZW50KQogCiAgICAgbV9wYWdlLT5zZXRHcm91cE5hbWUocGFnZUdy
b3VwTmFtZSk7CiAKKyNpZiBFTkFCTEUoUEFHRV9WSVNJQklMSVRZX0FQSSkKKyAgICBzZXRWaXNp
YmlsaXR5U3RhdGUobV9jbGllbnQtPnZpc2liaWxpdHlTdGF0ZSgpLCB0cnVlKTsKKyNlbmRpZgor
CiAgICAgbV9pbnNwZWN0b3JTZXR0aW5nc01hcCA9IGFkb3B0UHRyKG5ldyBTZXR0aW5nc01hcCk7
CiB9CiAKQEAgLTI1NTksNCArMjU2MywxNiBAQCBXZWJHcmFwaGljc0NvbnRleHQzRCogV2ViVmll
d0ltcGw6OmdyYXBoaWNzQ29udGV4dDNEKCkKICAgICByZXR1cm4gMDsKIH0KIAorCit2b2lkIFdl
YlZpZXdJbXBsOjpzZXRWaXNpYmlsaXR5U3RhdGUoV2ViUGFnZVZpc2liaWxpdHlTdGF0ZSB2aXNp
YmlsaXR5U3RhdGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbCBp
c0luaXRpYWxTdGF0ZSkgeworI2lmIEVOQUJMRShQQUdFX1ZJU0lCSUxJVFlfQVBJKQorICAgIGlm
ICghcGFnZSgpKQorICAgICAgICByZXR1cm47CisKKyAgICBBU1NFUlQodmlzaWJpbGl0eVN0YXRl
ID09IFdlYlBhZ2VWaXNpYmlsaXR5U3RhdGVWaXNpYmxlIHx8IHZpc2liaWxpdHlTdGF0ZSA9PSBX
ZWJQYWdlVmlzaWJpbGl0eVN0YXRlSGlkZGVuKTsKKyAgICBtX3BhZ2UtPnNldFZpc2liaWxpdHlT
dGF0ZShzdGF0aWNfY2FzdDxQYWdlVmlzaWJpbGl0eVN0YXRlPihzdGF0aWNfY2FzdDxpbnQ+KHZp
c2liaWxpdHlTdGF0ZSkpLCBpc0luaXRpYWxTdGF0ZSk7CisjZW5kaWYKK30KKwogfSAvLyBuYW1l
c3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJW
aWV3SW1wbC5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuaAppbmRl
eCBkOGQ5MmE4Li5mMjkwODI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Ny
Yy9XZWJWaWV3SW1wbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJ
bXBsLmgKQEAgLTM1NSw2ICszNTUsOCBAQCBwdWJsaWM6CiAgICAgLy8gV2ViR0wuIFJldHVybnMg
MCBpZiBjb21wb3NpdGluZyBzdXBwb3J0IGlzIG5vdCBjb21waWxlZCBpbi4KICAgICB2aXJ0dWFs
IFdlYkdyYXBoaWNzQ29udGV4dDNEKiBncmFwaGljc0NvbnRleHQzRCgpOwogCisgICAgdmlydHVh
bCB2b2lkIHNldFZpc2liaWxpdHlTdGF0ZShXZWJQYWdlVmlzaWJpbGl0eVN0YXRlLCBib29sKTsK
KwogICAgIFdlYkNvcmU6OlBvcHVwQ29udGFpbmVyKiBzZWxlY3RQb3B1cCgpIGNvbnN0IHsgcmV0
dXJuIG1fc2VsZWN0UG9wdXAuZ2V0KCk7IH0KIAogICAgIC8vIFJldHVybnMgdHJ1ZSBpZiB0aGUg
ZXZlbnQgbGVhZHMgdG8gc2Nyb2xsaW5nLgpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRy
ZWUvTGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvTGF5b3V0
VGVzdENvbnRyb2xsZXIuY3BwCmluZGV4IDRjYTkwZDguLjQyZmU4MWQgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL0R1bXBSZW5kZXJUcmVlL0xheW91dFRlc3RDb250cm9sbGVyLmNwcAorKysgYi9Ub29scy9E
dW1wUmVuZGVyVHJlZS9MYXlvdXRUZXN0Q29udHJvbGxlci5jcHAKQEAgLTE2NzAsNiArMTY3MCwz
NyBAQCBzdGF0aWMgSlNWYWx1ZVJlZiBzZXRQbHVnaW5zRW5hYmxlZENhbGxiYWNrKEpTQ29udGV4
dFJlZiBjb250ZXh0LCBKU09iamVjdFJlZiBmdQogICAgIHJldHVybiBKU1ZhbHVlTWFrZVVuZGVm
aW5lZChjb250ZXh0KTsKIH0gICAgCiAKK3N0YXRpYyBKU1ZhbHVlUmVmIHNldFBhZ2VWaXNpYmls
aXR5Q2FsbGJhY2soSlNDb250ZXh0UmVmIGNvbnRleHQsIEpTT2JqZWN0UmVmIGZ1bmN0aW9uLCBK
U09iamVjdFJlZiB0aGlzT2JqZWN0LCBzaXplX3QgYXJndW1lbnRDb3VudCwgY29uc3QgSlNWYWx1
ZVJlZiBhcmd1bWVudHNbXSwgSlNWYWx1ZVJlZiogZXhjZXB0aW9uKQoreworICAgIC8vIEhhcyBt
YWMgJiB3aW5kb3dzIGltcGxlbWVudGF0aW9uCisgICAgaWYgKGFyZ3VtZW50Q291bnQgPCAxKQor
ICAgICAgICByZXR1cm4gSlNWYWx1ZU1ha2VVbmRlZmluZWQoY29udGV4dCk7CisKKyAgICBKU1Jl
dGFpblB0cjxKU1N0cmluZ1JlZj4gdmlzaWJpbGl0eShBZG9wdCwgSlNWYWx1ZVRvU3RyaW5nQ29w
eShjb250ZXh0LCBhcmd1bWVudHNbMF0sIGV4Y2VwdGlvbikpOworICAgIEFTU0VSVCghKmV4Y2Vw
dGlvbik7CisKKyAgICBzaXplX3QgbWF4TGVuZ3RoID0gSlNTdHJpbmdHZXRNYXhpbXVtVVRGOENT
dHJpbmdTaXplKHZpc2liaWxpdHkuZ2V0KCkpOworICAgIGNoYXIqIHZpc2liaWxpdHlCdWZmZXIg
PSBuZXcgY2hhclttYXhMZW5ndGggKyAxXTsKKyAgICBKU1N0cmluZ0dldFVURjhDU3RyaW5nKHZp
c2liaWxpdHkuZ2V0KCksIHZpc2liaWxpdHlCdWZmZXIsIG1heExlbmd0aCArIDEpOworICAgIAor
ICAgIExheW91dFRlc3RDb250cm9sbGVyKiBjb250cm9sbGVyID0gc3RhdGljX2Nhc3Q8TGF5b3V0
VGVzdENvbnRyb2xsZXIqPihKU09iamVjdEdldFByaXZhdGUodGhpc09iamVjdCkpOworICAgIGNv
bnRyb2xsZXItPnNldFBhZ2VWaXNpYmlsaXR5KHZpc2liaWxpdHlCdWZmZXIpOworICAgIGRlbGV0
ZVtdIHZpc2liaWxpdHlCdWZmZXI7CisgICAgCisgICAgcmV0dXJuIEpTVmFsdWVNYWtlVW5kZWZp
bmVkKGNvbnRleHQpOworfSAgICAKKworc3RhdGljIEpTVmFsdWVSZWYgcmVzZXRQYWdlVmlzaWJp
bGl0eUNhbGxiYWNrKEpTQ29udGV4dFJlZiBjb250ZXh0LCBKU09iamVjdFJlZiBmdW5jdGlvbiwg
SlNPYmplY3RSZWYgdGhpc09iamVjdCwgc2l6ZV90IGFyZ3VtZW50Q291bnQsIGNvbnN0IEpTVmFs
dWVSZWYgYXJndW1lbnRzW10sIEpTVmFsdWVSZWYqIGV4Y2VwdGlvbikKK3sKKyAgICAvLyBIYXMg
bWFjICYgd2luZG93cyBpbXBsZW1lbnRhdGlvbgorICAgIGlmIChhcmd1bWVudENvdW50IDwgMSkK
KyAgICAgICAgcmV0dXJuIEpTVmFsdWVNYWtlVW5kZWZpbmVkKGNvbnRleHQpOworCisgICAgTGF5
b3V0VGVzdENvbnRyb2xsZXIqIGNvbnRyb2xsZXIgPSBzdGF0aWNfY2FzdDxMYXlvdXRUZXN0Q29u
dHJvbGxlcio+KEpTT2JqZWN0R2V0UHJpdmF0ZSh0aGlzT2JqZWN0KSk7CisgICAgY29udHJvbGxl
ci0+cmVzZXRQYWdlVmlzaWJpbGl0eSgpOworICAgIHJldHVybiBKU1ZhbHVlTWFrZVVuZGVmaW5l
ZChjb250ZXh0KTsKK30gICAgCisKIHN0YXRpYyBKU1ZhbHVlUmVmIHNldFNtYXJ0SW5zZXJ0RGVs
ZXRlRW5hYmxlZENhbGxiYWNrKEpTQ29udGV4dFJlZiBjb250ZXh0LCBKU09iamVjdFJlZiBmdW5j
dGlvbiwgSlNPYmplY3RSZWYgdGhpc09iamVjdCwgc2l6ZV90IGFyZ3VtZW50Q291bnQsIGNvbnN0
IEpTVmFsdWVSZWYgYXJndW1lbnRzW10sIEpTVmFsdWVSZWYqIGV4Y2VwdGlvbikKIHsKICAgICBp
ZiAoYXJndW1lbnRDb3VudCA8IDEpCkBAIC0yMjU2LDYgKzIyODcsNyBAQCBKU1N0YXRpY0Z1bmN0
aW9uKiBMYXlvdXRUZXN0Q29udHJvbGxlcjo6c3RhdGljRnVuY3Rpb25zKCkKICAgICAgICAgeyAi
cmVtb3ZlQWxsVmlzaXRlZExpbmtzIiwgcmVtb3ZlQWxsVmlzaXRlZExpbmtzQ2FsbGJhY2ssIGtK
U1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxl
dGUgfSwKICAgICAgICAgeyAicmVtb3ZlT3JpZ2luQWNjZXNzV2hpdGVsaXN0RW50cnkiLCByZW1v
dmVPcmlnaW5BY2Nlc3NXaGl0ZWxpc3RFbnRyeUNhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0
ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCiAgICAgICAgIHsg
InJlcGFpbnRTd2VlcEhvcml6b250YWxseSIsIHJlcGFpbnRTd2VlcEhvcml6b250YWxseUNhbGxi
YWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVE
b250RGVsZXRlIH0sCisgICAgICAgIHsgInJlc2V0UGFnZVZpc2liaWxpdHkiLCByZXNldFBhZ2VW
aXNpYmlsaXR5Q2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9w
ZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKICAgICAgICAgeyAic2V0QWNjZXB0c0VkaXRpbmci
LCBzZXRBY2NlcHRzRWRpdGluZ0NhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5
IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCiAgICAgICAgIHsgInNldEFsbG93
VW5pdmVyc2FsQWNjZXNzRnJvbUZpbGVVUkxzIiwgc2V0QWxsb3dVbml2ZXJzYWxBY2Nlc3NGcm9t
RmlsZVVSTHNDYWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3Bl
cnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LAogICAgICAgICB7ICJzZXRBbGxvd0ZpbGVBY2Nlc3NG
cm9tRmlsZVVSTHMiLCBzZXRBbGxvd0ZpbGVBY2Nlc3NGcm9tRmlsZVVSTHNDYWxsYmFjaywga0pT
UHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0
ZSB9LApAQCAtMjI4OCw2ICsyMzIwLDcgQEAgSlNTdGF0aWNGdW5jdGlvbiogTGF5b3V0VGVzdENv
bnRyb2xsZXI6OnN0YXRpY0Z1bmN0aW9ucygpCiAgICAgICAgIHsgInNldE1vY2tHZW9sb2NhdGlv
blBvc2l0aW9uIiwgc2V0TW9ja0dlb2xvY2F0aW9uUG9zaXRpb25DYWxsYmFjaywga0pTUHJvcGVy
dHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LAog
ICAgICAgICB7ICJhZGRNb2NrU3BlZWNoSW5wdXRSZXN1bHQiLCBhZGRNb2NrU3BlZWNoSW5wdXRS
ZXN1bHRDYWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5
QXR0cmlidXRlRG9udERlbGV0ZSB9LAogICAgICAgICB7ICJzZXROZXdXaW5kb3dzQ29weUJhY2tG
b3J3YXJkTGlzdCIsIHNldE5ld1dpbmRvd3NDb3B5QmFja0ZvcndhcmRMaXN0Q2FsbGJhY2ssIGtK
U1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxl
dGUgfSwKKyAgICAgICAgeyAic2V0UGFnZVZpc2liaWxpdHkiLCBzZXRQYWdlVmlzaWJpbGl0eUNh
bGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1
dGVEb250RGVsZXRlIH0sCiAgICAgICAgIHsgInNldFBPU0lYTG9jYWxlIiwgc2V0UE9TSVhMb2Nh
bGVDYWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0
cmlidXRlRG9udERlbGV0ZSB9LAogICAgICAgICB7ICJzZXRQZXJzaXN0ZW50VXNlclN0eWxlU2hl
ZXRMb2NhdGlvbiIsIHNldFBlcnNpc3RlbnRVc2VyU3R5bGVTaGVldExvY2F0aW9uQ2FsbGJhY2ss
IGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnRE
ZWxldGUgfSwKICAgICAgICAgeyAic2V0UG9wdXBCbG9ja2luZ0VuYWJsZWQiLCBzZXRQb3B1cEJs
b2NraW5nRW5hYmxlZENhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pT
UHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVu
ZGVyVHJlZS9MYXlvdXRUZXN0Q29udHJvbGxlci5oIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvTGF5
b3V0VGVzdENvbnRyb2xsZXIuaAppbmRleCBhMzFlOTA4Li5kNGUzNzc1IDEwMDY0NAotLS0gYS9U
b29scy9EdW1wUmVuZGVyVHJlZS9MYXlvdXRUZXN0Q29udHJvbGxlci5oCisrKyBiL1Rvb2xzL0R1
bXBSZW5kZXJUcmVlL0xheW91dFRlc3RDb250cm9sbGVyLmgKQEAgLTEyMyw2ICsxMjMsOSBAQCBw
dWJsaWM6CiAgICAgdm9pZCBzZXRTY3JvbGxiYXJQb2xpY3koSlNTdHJpbmdSZWYgb3JpZW50YXRp
b24sIEpTU3RyaW5nUmVmIHBvbGljeSk7CiAgICAgdm9pZCBzZXRFZGl0aW5nQmVoYXZpb3IoY29u
c3QgY2hhciogZWRpdGluZ0JlaGF2aW9yKTsKIAorICAgIHZvaWQgc2V0UGFnZVZpc2liaWxpdHko
Y29uc3QgY2hhciogdmlzaWJpbGl0eSkgeyB9CisgICAgdm9pZCByZXNldFBhZ2VWaXNpYmlsaXR5
KCkgeyB9CisKICAgICBKU1ZhbHVlUmVmIHNoYWRvd1Jvb3QoSlNDb250ZXh0UmVmLCBKU1ZhbHVl
UmVmKTsKICAgICBKU1ZhbHVlUmVmIGVuc3VyZVNoYWRvd1Jvb3QoSlNDb250ZXh0UmVmLCBKU1Zh
bHVlUmVmKTsKICAgICB2b2lkIHJlbW92ZVNoYWRvd1Jvb3QoSlNDb250ZXh0UmVmLCBKU1ZhbHVl
UmVmKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0xheW91dFRl
c3RDb250cm9sbGVyLmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0xheW91dFRl
c3RDb250cm9sbGVyLmNwcAppbmRleCBlZThkNWFjLi42MjY5OGMxIDEwMDY0NAotLS0gYS9Ub29s
cy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9MYXlvdXRUZXN0Q29udHJvbGxlci5jcHAKKysrIGIv
VG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vTGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwCkBA
IC0xMzQsNiArMTM0LDcgQEAgTGF5b3V0VGVzdENvbnRyb2xsZXI6OkxheW91dFRlc3RDb250cm9s
bGVyKFRlc3RTaGVsbCogc2hlbGwpCiAgICAgYmluZE1ldGhvZCgicmVtb3ZlT3JpZ2luQWNjZXNz
V2hpdGVsaXN0RW50cnkiLCAmTGF5b3V0VGVzdENvbnRyb2xsZXI6OnJlbW92ZU9yaWdpbkFjY2Vz
c1doaXRlbGlzdEVudHJ5KTsKICAgICBiaW5kTWV0aG9kKCJyZW1vdmVTaGFkb3dSb290IiwgJkxh
eW91dFRlc3RDb250cm9sbGVyOjpyZW1vdmVTaGFkb3dSb290KTsKICAgICBiaW5kTWV0aG9kKCJy
ZXBhaW50U3dlZXBIb3Jpem9udGFsbHkiLCAmTGF5b3V0VGVzdENvbnRyb2xsZXI6OnJlcGFpbnRT
d2VlcEhvcml6b250YWxseSk7CisgICAgYmluZE1ldGhvZCgicmVzZXRQYWdlVmlzaWJpbGl0eSIs
ICZMYXlvdXRUZXN0Q29udHJvbGxlcjo6cmVzZXRQYWdlVmlzaWJpbGl0eSk7CiAgICAgYmluZE1l
dGhvZCgicmVzdW1lQW5pbWF0aW9ucyIsICZMYXlvdXRUZXN0Q29udHJvbGxlcjo6cmVzdW1lQW5p
bWF0aW9ucyk7CiAgICAgYmluZE1ldGhvZCgic2FtcGxlU1ZHQW5pbWF0aW9uRm9yRWxlbWVudEF0
VGltZSIsICZMYXlvdXRUZXN0Q29udHJvbGxlcjo6c2FtcGxlU1ZHQW5pbWF0aW9uRm9yRWxlbWVu
dEF0VGltZSk7CiAgICAgYmluZE1ldGhvZCgic2V0QWNjZXB0c0VkaXRpbmciLCAmTGF5b3V0VGVz
dENvbnRyb2xsZXI6OnNldEFjY2VwdHNFZGl0aW5nKTsKQEAgLTE1Nyw2ICsxNTgsNyBAQCBMYXlv
dXRUZXN0Q29udHJvbGxlcjo6TGF5b3V0VGVzdENvbnRyb2xsZXIoVGVzdFNoZWxsKiBzaGVsbCkK
ICAgICBiaW5kTWV0aG9kKCJzZXRNb2NrR2VvbG9jYXRpb25FcnJvciIsICZMYXlvdXRUZXN0Q29u
dHJvbGxlcjo6c2V0TW9ja0dlb2xvY2F0aW9uRXJyb3IpOwogICAgIGJpbmRNZXRob2QoInNldE1v
Y2tHZW9sb2NhdGlvblBvc2l0aW9uIiwgJkxheW91dFRlc3RDb250cm9sbGVyOjpzZXRNb2NrR2Vv
bG9jYXRpb25Qb3NpdGlvbik7CiAgICAgYmluZE1ldGhvZCgiYWRkTW9ja1NwZWVjaElucHV0UmVz
dWx0IiwgJkxheW91dFRlc3RDb250cm9sbGVyOjphZGRNb2NrU3BlZWNoSW5wdXRSZXN1bHQpOwor
ICAgIGJpbmRNZXRob2QoInNldFBhZ2VWaXNpYmlsaXR5IiwgJkxheW91dFRlc3RDb250cm9sbGVy
OjpzZXRQYWdlVmlzaWJpbGl0eSk7CiAgICAgYmluZE1ldGhvZCgic2V0UGx1Z2luc0VuYWJsZWQi
LCAmTGF5b3V0VGVzdENvbnRyb2xsZXI6OnNldFBsdWdpbnNFbmFibGVkKTsKICAgICBiaW5kTWV0
aG9kKCJzZXRQb3B1cEJsb2NraW5nRW5hYmxlZCIsICZMYXlvdXRUZXN0Q29udHJvbGxlcjo6c2V0
UG9wdXBCbG9ja2luZ0VuYWJsZWQpOwogICAgIGJpbmRNZXRob2QoInNldFBPU0lYTG9jYWxlIiwg
JkxheW91dFRlc3RDb250cm9sbGVyOjpzZXRQT1NJWExvY2FsZSk7CkBAIC0xNzY2LDMgKzE3Njgs
MTkgQEAgdm9pZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6c2V0UGx1Z2luc0VuYWJsZWQoY29uc3Qg
Q3BwQXJndW1lbnRMaXN0JiBhcmd1bWVudHMsIEMKICAgICB9CiAgICAgcmVzdWx0LT5zZXROdWxs
KCk7CiB9CisKK3ZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OnJlc2V0UGFnZVZpc2liaWxpdHko
Y29uc3QgQ3BwQXJndW1lbnRMaXN0JiBhcmd1bWVudHMsIENwcFZhcmlhbnQqIHJlc3VsdCkKK3sK
KyAgICBtX3NoZWxsLT53ZWJWaWV3KCktPnNldFZpc2liaWxpdHlTdGF0ZShXZWJQYWdlVmlzaWJp
bGl0eVN0YXRlVmlzaWJsZSwgdHJ1ZSk7Cit9CisKK3ZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6
OnNldFBhZ2VWaXNpYmlsaXR5KGNvbnN0IENwcEFyZ3VtZW50TGlzdCYgYXJndW1lbnRzLCBDcHBW
YXJpYW50KiByZXN1bHQpCit7CisgICAgaWYgKGFyZ3VtZW50cy5zaXplKCkgPiAwICYmIGFyZ3Vt
ZW50c1swXS5pc1N0cmluZygpKSB7CisgICAgICAgIHN0cmluZyBuZXdWaXNpYmlsaXR5ID0gYXJn
dW1lbnRzWzBdLnRvU3RyaW5nKCk7CisgICAgICAgIGlmIChuZXdWaXNpYmlsaXR5ID09ICJ2aXNp
YmxlIikKKyAgICAgICAgICAgIG1fc2hlbGwtPndlYlZpZXcoKS0+c2V0VmlzaWJpbGl0eVN0YXRl
KFdlYlBhZ2VWaXNpYmlsaXR5U3RhdGVWaXNpYmxlLCBmYWxzZSk7CisgICAgICAgIGVsc2UgaWYg
KG5ld1Zpc2liaWxpdHkgPT0gImhpZGRlbiIpCisgICAgICAgICAgICBtX3NoZWxsLT53ZWJWaWV3
KCktPnNldFZpc2liaWxpdHlTdGF0ZShXZWJQYWdlVmlzaWJpbGl0eVN0YXRlSGlkZGVuLCBmYWxz
ZSk7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0v
TGF5b3V0VGVzdENvbnRyb2xsZXIuaCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0xh
eW91dFRlc3RDb250cm9sbGVyLmgKaW5kZXggNDRhYzJjZC4uMTA3MWFjZCAxMDA2NDQKLS0tIGEv
VG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vTGF5b3V0VGVzdENvbnRyb2xsZXIuaAorKysg
Yi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9MYXlvdXRUZXN0Q29udHJvbGxlci5oCkBA
IC0zNjUsNiArMzY1LDEwIEBAIHB1YmxpYzoKICAgICAvLyBFbmFibGUgb3IgZGlzYWJsZSBwbHVn
aW5zLgogICAgIHZvaWQgc2V0UGx1Z2luc0VuYWJsZWQoY29uc3QgQ3BwQXJndW1lbnRMaXN0Jiwg
Q3BwVmFyaWFudCopOwogCisgICAgLy8gU3dpdGNoIHRoZSB2aXNpYmlsaXR5IG9mIHRoZSBwYWdl
LgorICAgIHZvaWQgc2V0UGFnZVZpc2liaWxpdHkoY29uc3QgQ3BwQXJndW1lbnRMaXN0JiwgQ3Bw
VmFyaWFudCopOworICAgIHZvaWQgcmVzZXRQYWdlVmlzaWJpbGl0eShjb25zdCBDcHBBcmd1bWVu
dExpc3QmLCBDcHBWYXJpYW50Kik7CisKIHB1YmxpYzoKICAgICAvLyBUaGUgZm9sbG93aW5nIG1l
dGhvZHMgYXJlIG5vdCBleHBvc2VkIHRvIEphdmFTY3JpcHQuCiAgICAgdm9pZCBzZXRXb3JrUXVl
dWVGcm96ZW4oYm9vbCBmcm96ZW4pIHsgbV93b3JrUXVldWUuc2V0RnJvemVuKGZyb3plbik7IH0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>92523</attachid>
            <date>2011-05-05 18:33:02 -0700</date>
            <delta_ts>2011-05-08 13:55:44 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>page_visibility_api.patch</filename>
            <type>text/plain</type>
            <size>59347</size>
            <attacher name="Shishir Agrawal">shishir</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA5ODVmODEzLi4yY2Q5YWM2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjYgQEAKKzIwMTEtMDUt
MDUgIFNoaXNoaXIgQWdyYXdhbCAgPHNoaXNoaXJAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEltcGxlbWVudCBQYWdlIFZpc2li
aWxpdHkgQVBJLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9NTQxODEKKworICAgICAgICAqIGZhc3QvZXZlbnRzL3BhZ2UtdmlzaWJpbGl0eS1pZnJhbWUt
ZGVsZXRlLXRlc3QtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2V2ZW50cy9w
YWdlLXZpc2liaWxpdHktaWZyYW1lLWRlbGV0ZS10ZXN0Lmh0bWw6IEFkZGVkLgorICAgICAgICAq
IGZhc3QvZXZlbnRzL3BhZ2UtdmlzaWJpbGl0eS1pZnJhbWUtbW92ZS10ZXN0LWV4cGVjdGVkLnR4
dDogQWRkZWQuCisgICAgICAgICogZmFzdC9ldmVudHMvcGFnZS12aXNpYmlsaXR5LWlmcmFtZS1t
b3ZlLXRlc3QuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9ldmVudHMvcGFnZS12aXNpYmls
aXR5LWlmcmFtZS1wcm9wYWdhdGlvbi10ZXN0LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAg
ICogZmFzdC9ldmVudHMvcGFnZS12aXNpYmlsaXR5LWlmcmFtZS1wcm9wYWdhdGlvbi10ZXN0Lmh0
bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZXZlbnRzL3BhZ2UtdmlzaWJpbGl0eS10cmFuc2l0
aW9uLXRlc3QtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2V2ZW50cy9wYWdl
LXZpc2liaWxpdHktdHJhbnNpdGlvbi10ZXN0Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3Qv
ZXZlbnRzL3Jlc291cmNlcy9wYWdlLXZpc2liaWxpdHktaWZyYW1lLWRlbGV0ZS10ZXN0LWZyYW1l
Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZXZlbnRzL3Jlc291cmNlcy9wYWdlLXZpc2li
aWxpdHktaWZyYW1lLW1vdmUtbmV3LXBhZ2UuaHRtbDogQWRkZWQuCisgICAgICAgICogcGxhdGZv
cm0vY2hyb21pdW0vdGVzdF9leHBlY3RhdGlvbnMudHh0OgorICAgICAgICAqIHBsYXRmb3JtL2d0
ay9Ta2lwcGVkOgorICAgICAgICAqIHBsYXRmb3JtL21hYy9Ta2lwcGVkOgorICAgICAgICAqIHBs
YXRmb3JtL3F0L1NraXBwZWQ6CisgICAgICAgICogcGxhdGZvcm0vd2luL1NraXBwZWQ6CisKIDIw
MTEtMDUtMDUgIEFuZHJleSBLb3N5YWtvdiAgPGNhc2VxQGNocm9taXVtLm9yZz4KIAogICAgICAg
ICBVbnJldmlld2VkLiBTa2lwIGluc3BlY3Rvci9jb25zb2xlL2NvbnNvbGUtc2hhZG93LWRvbS1h
Y2Nlc3MuaHRtbCAoY3Jhc2hlcyBpbiBkZWJ1ZykKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zh
c3QvZXZlbnRzL3BhZ2UtdmlzaWJpbGl0eS1pZnJhbWUtZGVsZXRlLXRlc3QtZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvcGFnZS12aXNpYmlsaXR5LWlmcmFtZS1kZWxldGUt
dGVzdC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMWQy
MGEzOQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3BhZ2Utdmlz
aWJpbGl0eS1pZnJhbWUtZGVsZXRlLXRlc3QtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTIgQEAK
K1RoaXMgdGVzdCBjaGVja3MgdGhhdCB0aGUgcGFnZSB2aXNpYmlsaXR5IGV2ZW50IHByb2FnYXRp
b24gZG9lcyBub3QgY3Jhc2ggdGhlIGJyb3dzZXIgd2hlbiBmcmFtZXMgYXJlIGFkZGVkIC8gZGVs
ZXRlZC4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNz
YWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK0xvYWRlZCBhbGwgZnJhbWVz
LgorVmlzaWJpbGl0eSBvZiBtYWluIGRvY3VtZW50IGNoYW5nZWQuCitWaXNpYmlsaXR5IG9mIHN1
YiBmcmFtZSAyIGNoYW5nZWQuCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RF
U1QgQ09NUExFVEUKKyAgIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvcGFn
ZS12aXNpYmlsaXR5LWlmcmFtZS1kZWxldGUtdGVzdC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9l
dmVudHMvcGFnZS12aXNpYmlsaXR5LWlmcmFtZS1kZWxldGUtdGVzdC5odG1sCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjg4Y2NiNjIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9mYXN0L2V2ZW50cy9wYWdlLXZpc2liaWxpdHktaWZyYW1lLWRlbGV0ZS10ZXN0Lmh0
bWwKQEAgLTAsMCArMSwxMTEgQEAKKzxodG1sPgorPGJvZHkgb25sb2FkPSJzdGFydFRlc3QoKSI+
CisKKzxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+CisK
KzxzY3JpcHQgc3JjPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0Pgor
Cis8c2NyaXB0PgorCitkZXNjcmlwdGlvbigiVGhpcyB0ZXN0IGNoZWNrcyB0aGF0IHRoZSBwYWdl
IHZpc2liaWxpdHkgZXZlbnQgcHJvYWdhdGlvbiBkb2VzIG5vdCBjcmFzaCB0aGUgYnJvd3NlciB3
aGVuIGZyYW1lcyBhcmUgYWRkZWQgLyBkZWxldGVkLiIpOworCit2YXIganNUZXN0SXNBc3luYyA9
IHRydWU7CisKK3ZhciBudW1WaXNpYmlsaXR5Q2hhbmdlcyA9IDA7Cit2YXIgZnJhbWUxLCBmcmFt
ZTIsIGZyYW1lMywgZnJhbWU0LCBmcmFtZTUsIHN1YmZyYW1lMSwgc3ViRnJhbWUyLCBzdWJGcmFt
ZTM7CisKK3ZhciBkb2NzTG9hZGVkID0gMDsKK3ZhciBtYWluUGFnZVZpc2liaWxpdHlDaGFuZ2VE
b25lID0gZmFsc2U7Cit2YXIgZnJhbWUyVmlzaWJsaXR5Q2hhbmdlRG9uZSA9IGZhbHNlOworCitm
dW5jdGlvbiBzdGFydFRlc3QoKSB7CisgICAgKytkb2NzTG9hZGVkOworICAgIGlmIChkb2NzTG9h
ZGVkIDwgOCkgeworICAgICAgcmV0dXJuOworICAgfQorCisgICAgZGVidWcoIkxvYWRlZCBhbGwg
ZnJhbWVzLiIpOworCisgICAgZnJhbWUxID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRvcEZy
YW1lMSIpOworICAgIGZyYW1lMiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0b3BGcmFtZTIi
KTsKKyAgICBmcmFtZTMgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidG9wRnJhbWUzIik7Cisg
ICAgZnJhbWU0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRvcEZyYW1lNCIpOworICAgIHN1
YkZyYW1lMSA9IGZyYW1lMy5jb250ZW50RG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInN1YklmcmFt
ZTEiKTsKKyAgICBzdWJGcmFtZTIgPSBmcmFtZTMuY29udGVudERvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCJzdWJJZnJhbWUyIik7CisKKyAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKAorICAg
ICAgICAid2Via2l0dmlzaWJpbGl0eXN0YXRlY2hhbmdlIiwgb25NYWluUGFnZVZpc2liaWxpdHlD
aGFuZ2UsIGZhbHNlKTsKKyAgICBmcmFtZTIuY29udGVudERvY3VtZW50LmFkZEV2ZW50TGlzdGVu
ZXIoCisgICAgICAgICJ3ZWJraXR2aXNpYmlsaXR5c3RhdGVjaGFuZ2UiLCBvbkZyYW1lMlZpc2li
aWxpdHlDaGFuZ2UsIGZhbHNlKTsKKyAgICAvLyBDaGFuZ2UgdGhlIHZpc2liaWxpdHkgb2YgdGhl
IGN1cnJlbnQgcGFnZSB0byBpbnZpc2libGUuCisgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29u
dHJvbGxlcikgeworICAgICAgICBudW1WaXNpYmlsaXR5Q2hhbmdlcysrOworICAgICAgICBsYXlv
dXRUZXN0Q29udHJvbGxlci5zZXRQYWdlVmlzaWJpbGl0eSgiaGlkZGVuIik7CisgICAgfQorfQor
CitmdW5jdGlvbiBmaW5pc2hUZXN0KCkgeworICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRy
b2xsZXIpCisgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLnJlc2V0UGFnZVZpc2liaWxpdHko
KTsKKyAgICBmaW5pc2hKU1Rlc3QoKTsKK30KKworZnVuY3Rpb24gb25NYWluUGFnZVZpc2liaWxp
dHlDaGFuZ2UoKSB7CisgICAgaWYgKG1haW5QYWdlVmlzaWJpbGl0eUNoYW5nZURvbmUgJiYgZnJh
bWUyVmlzaWJsaXR5Q2hhbmdlRG9uZSkgeworICAgICAgICBmaW5pc2hUZXN0KCk7CisgICAgfSBl
bHNlIGlmICghbWFpblBhZ2VWaXNpYmlsaXR5Q2hhbmdlRG9uZSkgeworICAgICAgICBkZWJ1Zygi
VmlzaWJpbGl0eSBvZiBtYWluIGRvY3VtZW50IGNoYW5nZWQuIik7CisgICAgICAgIC8vIERlbGV0
ZSBmcmFtZSA0LgorICAgICAgICBkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKGZyYW1lNCk7CisK
KyAgICAgICAgLy8gRGVsZXRlIHN1YmZyYW1lIDIuCisgICAgICAgIGZyYW1lMy5jb250ZW50RG9j
dW1lbnQuYm9keS5yZW1vdmVDaGlsZChzdWJGcmFtZTIpOworCisgICAgICAgIC8vIEFkZCBhIG5l
dyBmcmFtZSB0byB0b3AgbGV2ZWwuCisgICAgICAgIGZyYW1lNSA9IGRvY3VtZW50LmNyZWF0ZUVs
ZW1lbnQoImlmcmFtZSIpOworICAgICAgICBmcmFtZTUuc3JjID0gJyc7CisgICAgICAgIGRvY3Vt
ZW50LmJvZHkuYXBwZW5kQ2hpbGQoZnJhbWU1KTsKKworICAgICAgICAvLyBBZGQgYSBuZXcgZnJh
bWUgdG8gZnJhbWUyLgorICAgICAgICBzdWJGcmFtZTMgPSBmcmFtZTIuY29udGVudERvY3VtZW50
LmNyZWF0ZUVsZW1lbnQoImlmcmFtZSIpOworICAgICAgICBzdWJGcmFtZTMuc3JjID0gJyc7Cisg
ICAgICAgIGZyYW1lMi5jb250ZW50RG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChzdWJGcmFtZTMp
OworCisgICAgICAgIG1haW5QYWdlVmlzaWJpbGl0eUNoYW5nZURvbmUgPSB0cnVlOworICAgIH0K
KworICAgIGlmIChtYWluUGFnZVZpc2liaWxpdHlDaGFuZ2VEb25lICYmIGZyYW1lMlZpc2libGl0
eUNoYW5nZURvbmUpIHsKKyAgICAgICAgZmluaXNoVGVzdCgpOworICAgIH0KK30KKworZnVuY3Rp
b24gb25GcmFtZTJWaXNpYmlsaXR5Q2hhbmdlKCkgeworICAgIGlmIChtYWluUGFnZVZpc2liaWxp
dHlDaGFuZ2VEb25lICYmIGZyYW1lMlZpc2libGl0eUNoYW5nZURvbmUpIHsKKyAgICAgICAgZmlu
aXNoVGVzdCgpOworICAgIH0gZWxzZSBpZiAoIWZyYW1lMlZpc2libGl0eUNoYW5nZURvbmUpIHsK
KyAgICAgICAgZGVidWcoIlZpc2liaWxpdHkgb2Ygc3ViIGZyYW1lIDIgY2hhbmdlZC4iKTsKKwor
ICAgICAgICAvLyBEZWxldGUgZnJhbWUgMS4KKyAgICAgICAgZG9jdW1lbnQuYm9keS5yZW1vdmVD
aGlsZChmcmFtZTEpOworCisgICAgICAgIGZyYW1lMlZpc2libGl0eUNoYW5nZURvbmUgPSB0cnVl
OworICAgIH0KKworICAgIGlmIChtYWluUGFnZVZpc2liaWxpdHlDaGFuZ2VEb25lICYmIGZyYW1l
MlZpc2libGl0eUNoYW5nZURvbmUpIHsKKyAgICAgICAgZmluaXNoVGVzdCgpOworICAgIH0KK30K
KyAgICAKK3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOworCis8L3NjcmlwdD4KKworPHNj
cmlwdCBzcmM9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorCis8
aWZyYW1lIGlkPSJ0b3BGcmFtZTEiIG9ubG9hZD0ic3RhcnRUZXN0KCkiID48L2lmcmFtZT4KKzxp
ZnJhbWUgaWQ9InRvcEZyYW1lMiIgb25sb2FkPSJzdGFydFRlc3QoKSIgPjwvaWZyYW1lPgorPGlm
cmFtZSBpZD0idG9wRnJhbWUzIiBvbmxvYWQ9InN0YXJ0VGVzdCgpIiBzcmM9InJlc291cmNlcy9w
YWdlLXZpc2liaWxpdHktaWZyYW1lLWRlbGV0ZS10ZXN0LWZyYW1lLmh0bWwiPjwvaWZyYW1lPgor
PGlmcmFtZSBpZD0idG9wRnJhbWU0IiBvbmxvYWQ9InN0YXJ0VGVzdCgpIiA+PC9pZnJhbWU+Cis8
L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9wYWdl
LXZpc2liaWxpdHktaWZyYW1lLW1vdmUtdGVzdC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9m
YXN0L2V2ZW50cy9wYWdlLXZpc2liaWxpdHktaWZyYW1lLW1vdmUtdGVzdC1leHBlY3RlZC50eHQK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzk0NDBjZgotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3BhZ2UtdmlzaWJpbGl0eS1pZnJhbWUtbW92
ZS10ZXN0LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDIxIEBACitUaGlzIHRlc3QgY2hlY2tzIHRo
YXQgYW4gaWZyYW1lIHRoYXQgbW92ZXMgYmV0d2VlbiBwYWdlcyB3aXRoIGRpZmZlcmVudCB2aXNp
YmlsaXR5IHdpbGwgaGF2ZSB0aGUgY29ycmVjdCB2aXNpYmlsaXR5IHZhbHVlLgorCitPbiBzdWNj
ZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBi
eSAiVEVTVCBDT01QTEVURSIuCisKKworV2luZG93IDEgTG9hZGVkCitXaW5kb3cgMiBMb2FkZWQK
K1BBU1Mgd2luZG93LmRvY3VtZW50LndlYmtpdElzVmlzaWJsZSBpcyB0cnVlCitQQVNTIHdpbmRv
dzIuZG9jdW1lbnQud2Via2l0SXNWaXNpYmxlIGlzIHRydWUKK1BBU1MgaWZyYW1lLmNvbnRlbnRE
b2N1bWVudC53ZWJraXRJc1Zpc2libGUgaXMgdHJ1ZQorUEFTUyB3aW5kb3cuZG9jdW1lbnQud2Vi
a2l0SXNWaXNpYmxlIGlzIGZhbHNlCitQQVNTIHdpbmRvdzIuZG9jdW1lbnQud2Via2l0SXNWaXNp
YmxlIGlzIHRydWUKK1BBU1MgaWZyYW1lLmNvbnRlbnREb2N1bWVudC53ZWJraXRJc1Zpc2libGUg
aXMgdHJ1ZQorQWRvcHRlZCBpZnJhbWUgdG8gV2luZG93IDEKK1BBU1Mgd2luZG93LmRvY3VtZW50
LndlYmtpdElzVmlzaWJsZSBpcyBmYWxzZQorUEFTUyB3aW5kb3cyLmRvY3VtZW50LndlYmtpdElz
VmlzaWJsZSBpcyB0cnVlCitQQVNTIGlmcmFtZS5jb250ZW50RG9jdW1lbnQud2Via2l0SXNWaXNp
YmxlIGlzIGZhbHNlCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09N
UExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvcGFnZS12aXNpYmls
aXR5LWlmcmFtZS1tb3ZlLXRlc3QuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3BhZ2Ut
dmlzaWJpbGl0eS1pZnJhbWUtbW92ZS10ZXN0Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMC4uNTE2Mzg5MgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qv
ZXZlbnRzL3BhZ2UtdmlzaWJpbGl0eS1pZnJhbWUtbW92ZS10ZXN0Lmh0bWwKQEAgLTAsMCArMSw4
MCBAQAorPGh0bWw+Cis8Ym9keSBvbmxvYWQ9InN0YXJ0VGVzdCgpIj4KKworPHAgaWQ9ImRlc2Ny
aXB0aW9uIj48L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKworPHNjcmlwdCBzcmM9Ii4u
L2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+CisKKzxzY3JpcHQ+CisKK2Rl
c2NyaXB0aW9uKCJUaGlzIHRlc3QgY2hlY2tzIHRoYXQgYW4gaWZyYW1lIHRoYXQgbW92ZXMgYmV0
d2VlbiBwYWdlcyB3aXRoIGRpZmZlcmVudCB2aXNpYmlsaXR5IHdpbGwgaGF2ZSB0aGUgY29ycmVj
dCB2aXNpYmlsaXR5IHZhbHVlLiIpOworCit2YXIganNUZXN0SXNBc3luYyA9IHRydWU7CisKK3Zh
ciB3aW5kb3cyLCBpZnJhbWU7Cit2YXIgbnVtVmlzaWJpbGl0eUNoYW5nZXMgPSAwOworCitmdW5j
dGlvbiB3aW5kb3cyTG9hZGVkKCkgeworICAgIGRlYnVnKCJXaW5kb3cgMiBMb2FkZWQiKTsKKwor
ICAgIGlmcmFtZSA9IHdpbmRvdzIuZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImlmcmFtZSIpOwor
CisgICAgc2hvdWxkQmVUcnVlKCJ3aW5kb3cuZG9jdW1lbnQud2Via2l0SXNWaXNpYmxlIik7Cisg
ICAgc2hvdWxkQmVUcnVlKCJ3aW5kb3cyLmRvY3VtZW50LndlYmtpdElzVmlzaWJsZSIpOworICAg
IHNob3VsZEJlVHJ1ZSgiaWZyYW1lLmNvbnRlbnREb2N1bWVudC53ZWJraXRJc1Zpc2libGUiKTsK
KworICAgIC8vIENoYW5nZSB0aGUgdmlzaWJpbGl0eSBvZiB0aGUgY3VycmVudCBwYWdlIHRvIGlu
dmlzaWJsZS4KKyAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7CisgICAgICAg
IG51bVZpc2liaWxpdHlDaGFuZ2VzKys7CisgICAgICAgIHdpbmRvdy5sYXlvdXRUZXN0Q29udHJv
bGxlci5zZXRQYWdlVmlzaWJpbGl0eSgiaGlkZGVuIik7CisgICAgfQorfQorCitmdW5jdGlvbiBv
blZpc2liaWxpdHlDaGFuZ2UoKSB7CisgICAgc2hvdWxkQmVGYWxzZSgid2luZG93LmRvY3VtZW50
LndlYmtpdElzVmlzaWJsZSIpOworICAgIHNob3VsZEJlVHJ1ZSgid2luZG93Mi5kb2N1bWVudC53
ZWJraXRJc1Zpc2libGUiKTsKKyAgICBzaG91bGRCZVRydWUoImlmcmFtZS5jb250ZW50RG9jdW1l
bnQud2Via2l0SXNWaXNpYmxlIik7CisKKyAgICB3aW5kb3cuZG9jdW1lbnQuYWRvcHROb2RlKGlm
cmFtZSk7CisgICAgd2luZG93LmRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoaWZyYW1lKTsKKyAg
ICBkZWJ1ZygiQWRvcHRlZCBpZnJhbWUgdG8gV2luZG93IDEiKTsKKworICAgIHNob3VsZEJlRmFs
c2UoIndpbmRvdy5kb2N1bWVudC53ZWJraXRJc1Zpc2libGUiKTsKKyAgICBzaG91bGRCZVRydWUo
IndpbmRvdzIuZG9jdW1lbnQud2Via2l0SXNWaXNpYmxlIik7CisgICAgc2hvdWxkQmVGYWxzZSgi
aWZyYW1lLmNvbnRlbnREb2N1bWVudC53ZWJraXRJc1Zpc2libGUiKTsKKworICAgIHdpbmRvdzIu
Y2xvc2UoKTsKKworICAgIGZpbmlzaFRlc3QoKTsKK30KKworZnVuY3Rpb24gc3RhcnRUZXN0KCkg
eworICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKKyAgICAgICAgbGF5b3V0
VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOworICAgICAgICBsYXlvdXRUZXN0Q29udHJv
bGxlci5zZXRDYW5PcGVuV2luZG93cygpOworICAgIH0KKworICAgIGRlYnVnKCJXaW5kb3cgMSBM
b2FkZWQiKTsKKyAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJ3ZWJraXR2aXNpYmlsaXR5
c3RhdGVjaGFuZ2UiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25WaXNpYmlsaXR5
Q2hhbmdlLCBmYWxzZSk7CisKKyAgICB3aW5kb3cyID0gd2luZG93Lm9wZW4oInJlc291cmNlcy9w
YWdlLXZpc2liaWxpdHktaWZyYW1lLW1vdmUtbmV3LXBhZ2UuaHRtbCIpOworICAgIHdpbmRvdzIu
YWRkRXZlbnRMaXN0ZW5lcigibG9hZCIsIHdpbmRvdzJMb2FkZWQsIGZhbHNlKTsKK30KKworZnVu
Y3Rpb24gZmluaXNoVGVzdCgpIHsKKyAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVy
KSB7CisgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLnJlc2V0UGFnZVZpc2liaWxpdHkoKTsK
KyAgICB9CisgICAgZmluaXNoSlNUZXN0KCk7Cit9CisKK3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQg
PSB0cnVlOworCis8L3NjcmlwdD4KKworPHNjcmlwdCBzcmM9Ii4uL2pzL3Jlc291cmNlcy9qcy10
ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorCis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9wYWdlLXZpc2liaWxpdHktaWZyYW1lLXByb3BhZ2F0aW9u
LXRlc3QtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvcGFnZS12aXNpYmls
aXR5LWlmcmFtZS1wcm9wYWdhdGlvbi10ZXN0LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwLi45NWI3OWJhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvZmFzdC9ldmVudHMvcGFnZS12aXNpYmlsaXR5LWlmcmFtZS1wcm9wYWdhdGlvbi10ZXN0LWV4
cGVjdGVkLnR4dApAQCAtMCwwICsxLDI3IEBACitUaGlzIHRlc3QgY2hlY2tzIHRoYXQgUGFnZSBW
aXNpYmlsaXR5IHN0YXRlIGV2ZW50cyBhcmUgcHJvcGFnYXRlZCB0byBjaGlsZCBmcmFtZXMuCisK
K09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZv
bGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitNYWluIFBhZ2U6CitQQVNTIGRvY3VtZW50
LndlYmtpdFZpc2liaWxpdHlTdGF0ZSBpcyAidmlzaWJsZSIKK1BBU1MgZG9jdW1lbnQud2Via2l0
SXNWaXNpYmxlIGlzIHRydWUKK0NoaWxkIEZyYW1lOgorUEFTUyBjaGlsZEZyYW1lLmNvbnRlbnRE
b2N1bWVudC53ZWJraXRWaXNpYmlsaXR5U3RhdGUgaXMgInZpc2libGUiCitQQVNTIGNoaWxkRnJh
bWUuY29udGVudERvY3VtZW50LndlYmtpdElzVmlzaWJsZSBpcyB0cnVlCitNYWluIFBhZ2U6CitQ
QVNTIGRvY3VtZW50LndlYmtpdFZpc2liaWxpdHlTdGF0ZSBpcyAiaGlkZGVuIgorUEFTUyBkb2N1
bWVudC53ZWJraXRJc1Zpc2libGUgaXMgZmFsc2UKK0NoaWxkIEZyYW1lOgorUEFTUyBjaGlsZEZy
YW1lLmNvbnRlbnREb2N1bWVudC53ZWJraXRWaXNpYmlsaXR5U3RhdGUgaXMgImhpZGRlbiIKK1BB
U1MgY2hpbGRGcmFtZS5jb250ZW50RG9jdW1lbnQud2Via2l0SXNWaXNpYmxlIGlzIGZhbHNlCitN
YWluIFBhZ2U6CitQQVNTIGRvY3VtZW50LndlYmtpdFZpc2liaWxpdHlTdGF0ZSBpcyAidmlzaWJs
ZSIKK1BBU1MgZG9jdW1lbnQud2Via2l0SXNWaXNpYmxlIGlzIHRydWUKK0NoaWxkIEZyYW1lOgor
UEFTUyBjaGlsZEZyYW1lLmNvbnRlbnREb2N1bWVudC53ZWJraXRWaXNpYmlsaXR5U3RhdGUgaXMg
InZpc2libGUiCitQQVNTIGNoaWxkRnJhbWUuY29udGVudERvY3VtZW50LndlYmtpdElzVmlzaWJs
ZSBpcyB0cnVlCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExF
VEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvcGFnZS12aXNpYmlsaXR5
LWlmcmFtZS1wcm9wYWdhdGlvbi10ZXN0Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9w
YWdlLXZpc2liaWxpdHktaWZyYW1lLXByb3BhZ2F0aW9uLXRlc3QuaHRtbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwLi5hMDE2NTY3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvZmFzdC9ldmVudHMvcGFnZS12aXNpYmlsaXR5LWlmcmFtZS1wcm9wYWdhdGlvbi10ZXN0
Lmh0bWwKQEAgLTAsMCArMSwxMjUgQEAKKzxodG1sPgorPGJvZHk+CisKKzxwIGlkPSJkZXNjcmlw
dGlvbiI+PC9wPgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+CisKKzxzY3JpcHQgc3JjPSIuLi9q
cy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorCis8c2NyaXB0PgorCitkZXNj
cmlwdGlvbigiVGhpcyB0ZXN0IGNoZWNrcyB0aGF0IFBhZ2UgVmlzaWJpbGl0eSBzdGF0ZSBldmVu
dHMgYXJlIHByb3BhZ2F0ZWQgdG8gY2hpbGQgZnJhbWVzLiIpOworCit2YXIganNUZXN0SXNBc3lu
YyA9IHRydWU7CisKK2Z1bmN0aW9uIG1ha2VQYWdlVmlzaWJsZSgpIHsKKyAgICBpZiAod2luZG93
LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5zZXRQ
YWdlVmlzaWJpbGl0eSgidmlzaWJsZSIpOworfQorCitmdW5jdGlvbiBtYWtlUGFnZUhpZGRlbigp
IHsKKyAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgICAgICBsYXlvdXRU
ZXN0Q29udHJvbGxlci5zZXRQYWdlVmlzaWJpbGl0eSgiaGlkZGVuIik7Cit9CisKK2Z1bmN0aW9u
IGNoZWNrSXNQYWdlVmlzaWJsZSgpIHsKKyAgICBkZWJ1ZygiTWFpbiBQYWdlOiIpOworICAgIHNo
b3VsZEJlRXF1YWxUb1N0cmluZygiZG9jdW1lbnQud2Via2l0VmlzaWJpbGl0eVN0YXRlIiwgInZp
c2libGUiKTsKKyAgICBzaG91bGRCZVRydWUoImRvY3VtZW50LndlYmtpdElzVmlzaWJsZSIpOwor
fQorCitmdW5jdGlvbiBjaGVja0lzUGFnZUhpZGRlbigpIHsKKyAgICBkZWJ1ZygiTWFpbiBQYWdl
OiIpOworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygiZG9jdW1lbnQud2Via2l0VmlzaWJpbGl0
eVN0YXRlIiwgImhpZGRlbiIpOworICAgIHNob3VsZEJlRmFsc2UoImRvY3VtZW50LndlYmtpdElz
VmlzaWJsZSIpOworfQorCitmdW5jdGlvbiBjaGVja0lzQ2hpbGRGcmFtZVZpc2libGUoKSB7Cisg
ICAgZGVidWcoIkNoaWxkIEZyYW1lOiIpOworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygiY2hp
bGRGcmFtZS5jb250ZW50RG9jdW1lbnQud2Via2l0VmlzaWJpbGl0eVN0YXRlIiwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgInZpc2libGUiKTsKKyAgICBzaG91bGRCZVRydWUoImNoaWxkRnJh
bWUuY29udGVudERvY3VtZW50LndlYmtpdElzVmlzaWJsZSIpOworfQorCitmdW5jdGlvbiBjaGVj
a0lzQ2hpbGRGcmFtZUhpZGRlbigpIHsKKyAgICBkZWJ1ZygiQ2hpbGQgRnJhbWU6Iik7CisgICAg
c2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJjaGlsZEZyYW1lLmNvbnRlbnREb2N1bWVudC53ZWJraXRW
aXNpYmlsaXR5U3RhdGUiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAiaGlkZGVuIik7Cisg
ICAgc2hvdWxkQmVGYWxzZSgiY2hpbGRGcmFtZS5jb250ZW50RG9jdW1lbnQud2Via2l0SXNWaXNp
YmxlIik7Cit9CisKKy8vIFdlIHdpbGwgdHJ5IHRvIGNoYW5nZSB0aGUgdmlzaWJpbGl0eSBzdGF0
ZXMgYXM6CisvLyAgMCAtIHZpc2libGUuIChJbml0aWFsIC0gaS5lLiBvbiBsb2FkKS4KKy8vICAx
IC0gaGlkZGVuCisvLyAgMiAtIHZpc2libGUKK3ZhciBudW1WaXNpYmlsaXR5Q2hhbmdlcyA9IDA7
CisKK3ZhciBjaGlsZEZyYW1lOworCitmdW5jdGlvbiBzdGFydFRlc3QoKSB7CisgICAgY2hpbGRG
cmFtZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjaGlsZEZyYW1lIik7CisgICAgY2hpbGRG
cmFtZS5jb250ZW50RG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigKKyAgICAgICAgIndlYmtpdHZp
c2liaWxpdHlzdGF0ZWNoYW5nZSIsIG9uQ2hpbGRGcmFtZVZpc2liaWxpdHlDaGFuZ2UsIGZhbHNl
KTsKKyAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJ3ZWJraXR2aXNpYmlsaXR5c3RhdGVj
aGFuZ2UiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25WaXNpYmlsaXR5Q2hhbmdl
LCBmYWxzZSk7CisKKyAgICBjaGVja0lzUGFnZVZpc2libGUoKTsKKyAgICBjaGVja0lzQ2hpbGRG
cmFtZVZpc2libGUoKTsKKworICAgIG51bVZpc2liaWxpdHlDaGFuZ2VzKys7CisgICAgbWFrZVBh
Z2VIaWRkZW4oKTsKK30KKwordmFyIG51bUZpbmlzaGVzID0gMDsKK2Z1bmN0aW9uIGZpbmlzaFRl
c3QoKSB7CisgICAgbnVtRmluaXNoZXMrKzsKKyAgICBpZiAobnVtRmluaXNoZXMgPCAyKSB7Cisg
ICAgICByZXR1cm47CisgICAgfQorCisgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxl
cikgeworICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5yZXNldFBhZ2VWaXNpYmlsaXR5KCk7
CisgICAgfQorICAgIGZpbmlzaEpTVGVzdCgpOworfQorCitmdW5jdGlvbiBvblZpc2liaWxpdHlD
aGFuZ2UoKSB7CisgICAgaWYgKG51bVZpc2liaWxpdHlDaGFuZ2VzID09IDEpIHsKKyAgICAgICAg
Y2hlY2tJc1BhZ2VIaWRkZW4oKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0gZWxzZSBpZiAobnVt
VmlzaWJpbGl0eUNoYW5nZXMgPT0gMikgeworICAgICAgICBjaGVja0lzUGFnZVZpc2libGUoKTsK
KyAgICAgICAgZmluaXNoVGVzdCgpOworICAgICAgICByZXR1cm47CisgICAgfSBlbHNlIHsKKyAg
ICAgICAgdGVzdEZhaWxlZCgiVG9vIG1hbnkgdmlzaWJpbGl0eSB0cmFuc2l0aW9ucyIpOworICAg
ICAgICBmaW5pc2hUZXN0KCk7CisgICAgICAgIHJldHVybjsKKyAgICB9Cit9CisKK2Z1bmN0aW9u
IG9uQ2hpbGRGcmFtZVZpc2liaWxpdHlDaGFuZ2UoKSB7CisgICAgaWYgKG51bVZpc2liaWxpdHlD
aGFuZ2VzID09IDEpIHsKKyAgICAgICAgY2hlY2tJc0NoaWxkRnJhbWVIaWRkZW4oKTsKKyAgICAg
ICAgbnVtVmlzaWJpbGl0eUNoYW5nZXMrKzsKKyAgICAgICAgbWFrZVBhZ2VWaXNpYmxlKCk7Cisg
ICAgICAgIHJldHVybjsKKyAgICB9IGVsc2UgaWYgKG51bVZpc2liaWxpdHlDaGFuZ2VzID09IDIp
IHsKKyAgICAgICAgY2hlY2tJc0NoaWxkRnJhbWVWaXNpYmxlKCk7CisgICAgICAgIGZpbmlzaFRl
c3QoKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0gZWxzZSB7CisgICAgICAgIHRlc3RGYWlsZWQo
IkNoaWxkIEZyYW1lOiBUb28gbWFueSB2aXNpYmlsaXR5IHRyYW5zaXRpb25zIik7CisgICAgICAg
IGZpbmlzaFRlc3QoKTsKKyAgICB9Cit9CisKK3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVl
OworCis8L3NjcmlwdD4KKworPHNjcmlwdCBzcmM9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXBv
c3QuanMiPjwvc2NyaXB0PgorCis8aWZyYW1lIGlkPSJjaGlsZEZyYW1lIiBvbmxvYWQ9InN0YXJ0
VGVzdCgpIj48L2lmcmFtZT4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2Zhc3QvZXZlbnRzL3BhZ2UtdmlzaWJpbGl0eS10cmFuc2l0aW9uLXRlc3QtZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvcGFnZS12aXNpYmlsaXR5LXRyYW5zaXRpb24t
dGVzdC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjVh
OWI1ZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3BhZ2Utdmlz
aWJpbGl0eS10cmFuc2l0aW9uLXRlc3QtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTcgQEAKK1Ro
aXMgdGVzdCBjaGVja3MgdGhhdCBQYWdlIFZpc2liaWxpdHkgc3RhdGUgdmFsdWVzIGFyZSBjb3Jy
ZWN0IGFuZCB0aGUgZXZlbnQgY2hhbmdlcyBhcmUgZmlyZWQgY29ycmVjdGx5LgorCitPbiBzdWNj
ZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBi
eSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBkb2N1bWVudC53ZWJraXRWaXNpYmlsaXR5U3Rh
dGUgaXMgInZpc2libGUiCitQQVNTIGRvY3VtZW50LndlYmtpdElzVmlzaWJsZSBpcyB0cnVlCitQ
QVNTIGRvY3VtZW50LndlYmtpdFZpc2liaWxpdHlTdGF0ZSBpcyAiaGlkZGVuIgorUEFTUyBkb2N1
bWVudC53ZWJraXRJc1Zpc2libGUgaXMgZmFsc2UKK1BBU1MgZG9jdW1lbnQud2Via2l0VmlzaWJp
bGl0eVN0YXRlIGlzICJoaWRkZW4iCitQQVNTIGRvY3VtZW50LndlYmtpdElzVmlzaWJsZSBpcyBm
YWxzZQorUEFTUyBkb2N1bWVudC53ZWJraXRWaXNpYmlsaXR5U3RhdGUgaXMgInZpc2libGUiCitQ
QVNTIGRvY3VtZW50LndlYmtpdElzVmlzaWJsZSBpcyB0cnVlCitQQVNTIHN1Y2Nlc3NmdWxseVBh
cnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZmFzdC9ldmVudHMvcGFnZS12aXNpYmlsaXR5LXRyYW5zaXRpb24tdGVzdC5odG1sIGIvTGF5b3V0
VGVzdHMvZmFzdC9ldmVudHMvcGFnZS12aXNpYmlsaXR5LXRyYW5zaXRpb24tdGVzdC5odG1sCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQyYWJjYjAKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9wYWdlLXZpc2liaWxpdHktdHJhbnNpdGlvbi10
ZXN0Lmh0bWwKQEAgLTAsMCArMSw4OSBAQAorPGh0bWw+Cis8Ym9keSBvbmxvYWQ9J3N0YXJ0VGVz
dCgpJz4KKworPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rp
dj4KKworPHNjcmlwdCBzcmM9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3Jp
cHQ+CisKKzxzY3JpcHQ+CisKK2Rlc2NyaXB0aW9uKCJUaGlzIHRlc3QgY2hlY2tzIHRoYXQgUGFn
ZSBWaXNpYmlsaXR5IHN0YXRlIHZhbHVlcyBhcmUgY29ycmVjdCBhbmQgdGhlIGV2ZW50IGNoYW5n
ZXMgYXJlIGZpcmVkIGNvcnJlY3RseS4iKTsKKwordmFyIGpzVGVzdElzQXN5bmMgPSB0cnVlOwor
CitmdW5jdGlvbiBtYWtlUGFnZVZpc2libGUoKSB7CisgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0
Q29udHJvbGxlcikKKyAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuc2V0UGFnZVZpc2liaWxp
dHkoInZpc2libGUiKTsKK30KKworZnVuY3Rpb24gbWFrZVBhZ2VIaWRkZW4oKSB7CisgICAgaWYg
KHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xs
ZXIuc2V0UGFnZVZpc2liaWxpdHkoImhpZGRlbiIpOworfQorCitmdW5jdGlvbiBjaGVja0lzUGFn
ZVZpc2libGUoKSB7CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJkb2N1bWVudC53ZWJraXRW
aXNpYmlsaXR5U3RhdGUiLCAidmlzaWJsZSIpOworICAgIHNob3VsZEJlVHJ1ZSgiZG9jdW1lbnQu
d2Via2l0SXNWaXNpYmxlIik7Cit9CisKK2Z1bmN0aW9uIGNoZWNrSXNQYWdlSGlkZGVuKCkgewor
ICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygiZG9jdW1lbnQud2Via2l0VmlzaWJpbGl0eVN0YXRl
IiwgImhpZGRlbiIpOworICAgIHNob3VsZEJlRmFsc2UoImRvY3VtZW50LndlYmtpdElzVmlzaWJs
ZSIpOworfQorCisvLyBXZSB3aWxsIHRyeSB0byBjaGFuZ2UgdGhlIHZpc2liaWxpdHkgc3RhdGVz
IGFzOgorLy8gIDAgLSB2aXNpYmxlLiAoSW5pdGlhbCAtIGkuZS4gb24gbG9hZCkuCisvLyAgMSAt
IGhpZGRlbiAoc2hvdWxkIGZpcmUgZXZlbnQpLgorLy8gIDIgLSBoaWRkZW4gKG5vIGV2ZW50KS4K
Ky8vICAzIC0gdmlzaWJsZSAoc2hvdWxkIGZpcmUgZXZlbnQpLgordmFyIG51bVZpc2liaWxpdHlD
aGFuZ2VzID0gMDsKKworZnVuY3Rpb24gc3RhcnRUZXN0KCkgeworICAgIGRvY3VtZW50LmFkZEV2
ZW50TGlzdGVuZXIoCisgICAgICAgICJ3ZWJraXR2aXNpYmlsaXR5c3RhdGVjaGFuZ2UiLCBvblZp
c2liaWxpdHlDaGFuZ2UsIGZhbHNlKTsKKyAgICBjaGVja0lzUGFnZVZpc2libGUoKTsKKyAgICBu
dW1WaXNpYmlsaXR5Q2hhbmdlcysrOworICAgIG1ha2VQYWdlSGlkZGVuKCk7Cit9CisKK2Z1bmN0
aW9uIGZpbmlzaFRlc3QoKSB7CisgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikg
eworICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5yZXNldFBhZ2VWaXNpYmlsaXR5KCk7Cisg
ICAgfQorICAgIGZpbmlzaEpTVGVzdCgpOworfQorCitmdW5jdGlvbiBvblZpc2liaWxpdHlDaGFu
Z2UoKSB7CisgICAgaWYgKG51bVZpc2liaWxpdHlDaGFuZ2VzID09IDEpIHsKKyAgICAgICAgY2hl
Y2tJc1BhZ2VIaWRkZW4oKTsKKyAgICAgICAgbnVtVmlzaWJpbGl0eUNoYW5nZXMrKzsKKyAgICAg
ICAgbWFrZVBhZ2VIaWRkZW4oKTsKKyAgICAgICAgY2hlY2tJc1BhZ2VIaWRkZW4oKTsKKyAgICAg
ICAgbnVtVmlzaWJpbGl0eUNoYW5nZXMrKzsKKyAgICAgICAgbWFrZVBhZ2VWaXNpYmxlKCk7Cisg
ICAgICAgIHJldHVybjsKKyAgICB9IGVsc2UgaWYgKG51bVZpc2liaWxpdHlDaGFuZ2VzID09IDIp
IHsKKyAgICAgICAgdGVzdEZhaWxlZCgiSW52YWxpZCBldmVudCBmaXJlZCBvbiBzYW1lIHN0YXRl
IGNoYW5nZS4iKTsKKyAgICAgICAgZmluaXNoVGVzdCgpOworICAgICAgICByZXR1cm47CisgICAg
fSBlbHNlIGlmIChudW1WaXNpYmlsaXR5Q2hhbmdlcyA9PSAzKSB7CisgICAgICAgIGNoZWNrSXNQ
YWdlVmlzaWJsZSgpOworICAgICAgICBudW1WaXNpYmlsaXR5Q2hhbmdlcysrOworICAgICAgICBm
aW5pc2hUZXN0KCk7CisgICAgICAgIHJldHVybjsKKyAgICB9IGVsc2UgeworICAgICAgICB0ZXN0
RmFpbGVkKCJUb28gbWFueSB2aXNpYmlsaXR5IHRyYW5zaXRpb25zIik7CisgICAgICAgIGZpbmlz
aFRlc3QoKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KK30KKyAgICAgICAgCit2YXIgc3VjY2Vz
c2Z1bGx5UGFyc2VkID0gdHJ1ZTsKKworPC9zY3JpcHQ+CisKKzxzY3JpcHQgc3JjPSIuLi9qcy9y
ZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKworPC9ib2R5PgorPC9odG1sPgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvcmVzb3VyY2VzL3BhZ2UtdmlzaWJp
bGl0eS1pZnJhbWUtZGVsZXRlLXRlc3QtZnJhbWUuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZXZl
bnRzL3Jlc291cmNlcy9wYWdlLXZpc2liaWxpdHktaWZyYW1lLWRlbGV0ZS10ZXN0LWZyYW1lLmh0
bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZmViYjk1NAotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3Jlc291cmNlcy9wYWdlLXZpc2liaWxp
dHktaWZyYW1lLWRlbGV0ZS10ZXN0LWZyYW1lLmh0bWwKQEAgLTAsMCArMSw2IEBACis8aHRtbD4K
Kzxib2R5IG9ubG9hZD0icGFyZW50LnN0YXJ0VGVzdCgpIj4KKzxpZnJhbWUgaWQ9InN1YklmcmFt
ZTEiIG9ubG9hZD0icGFyZW50LnBhcmVudC5zdGFydFRlc3QoKSI+PC9pZnJhbWU+Cis8aWZyYW1l
IGlkPSJzdWJJZnJhbWUyIiBvbmxvYWQ9InBhcmVudC5wYXJlbnQuc3RhcnRUZXN0KCkiPjwvaWZy
YW1lPgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVu
dHMvcmVzb3VyY2VzL3BhZ2UtdmlzaWJpbGl0eS1pZnJhbWUtbW92ZS1uZXctcGFnZS5odG1sIGIv
TGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvcmVzb3VyY2VzL3BhZ2UtdmlzaWJpbGl0eS1pZnJhbWUt
bW92ZS1uZXctcGFnZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjZk
MjhjY2MKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9yZXNvdXJj
ZXMvcGFnZS12aXNpYmlsaXR5LWlmcmFtZS1tb3ZlLW5ldy1wYWdlLmh0bWwKQEAgLTAsMCArMSw1
IEBACis8aHRtbD4KKzxib2R5PgorPGlmcmFtZSBpZD0iaWZyYW1lIj48L2lmcmFtZT4KKzwvYm9k
eT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL3Rl
c3RfZXhwZWN0YXRpb25zLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL3Rlc3Rf
ZXhwZWN0YXRpb25zLnR4dAppbmRleCA3YjcwMGEwLi42MDg3NTRlNiAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vdGVzdF9leHBlY3RhdGlvbnMudHh0CisrKyBiL0xh
eW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL3Rlc3RfZXhwZWN0YXRpb25zLnR4dApAQCAtMzk5
MCwzICszOTkwLDkgQEAgQlVHV0s2MDI0MyA6IGZ1bGxzY3JlZW4vZnVsbC1zY3JlZW4tc3RhY2tp
bmctY29udGV4dC5odG1sID0gUEFTUyBURVhUCiAKIEJVR1dLNjAyNTIgTUFDIEdQVSA6IGFuaW1h
dGlvbnMvM2QvbWF0cml4LXRyYW5zZm9ybS10eXBlLWFuaW1hdGlvbi5odG1sID0gSU1BR0UKIEJV
R1dLNjAyNTIgTUFDIEdQVSA6IGFuaW1hdGlvbnMvM2Qvc3RhdGUtYXQtZW5kLWV2ZW50LXRyYW5z
Zm9ybS5odG1sID0gSU1BR0UKKworLy8gUGFnZSB2aXNpYmlsaXR5IEFQSSBub3QgdHVybmVkIG9u
LgorQlVHV0s1NDE4MSA6IGZhc3QvZXZlbnRzL3BhZ2UtdmlzaWJpbGl0eS1pZnJhbWUtZGVsZXRl
LXRlc3QuaHRtbCA9IFRJTUVPVVQKK0JVR1dLNTQxODEgOiBmYXN0L2V2ZW50cy9wYWdlLXZpc2li
aWxpdHktaWZyYW1lLW1vdmUtdGVzdC5odG1sID0gVElNRU9VVAorQlVHV0s1NDE4MSA6IGZhc3Qv
ZXZlbnRzL3BhZ2UtdmlzaWJpbGl0eS1pZnJhbWUtcHJvcGFnYXRpb24tdGVzdC5odG1sID0gVElN
RU9VVAorQlVHV0s1NDE4MSA6IGZhc3QvZXZlbnRzL3BhZ2UtdmlzaWJpbGl0eS10cmFuc2l0aW9u
LXRlc3QuaHRtbCA9IFRJTUVPVVQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0
ay9Ta2lwcGVkIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1NraXBwZWQKaW5kZXggYWEyMWE3
NC4uZTdiMTU4ZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1NraXBwZWQK
KysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1NraXBwZWQKQEAgLTE0MTIsMyArMTQxMiw5
IEBAIHRhYmxlcy9tb3ppbGxhX2V4cGVjdGVkX2ZhaWx1cmVzL2J1Z3MvYnVnODUwMTYuaHRtbAog
IyBIVFRQIDIwNCAoTm8gQ29udGVudCkgc2hvdWxkIGJlIGlnbm9yZWQKICMgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTYwMjA2CiBodHRwL3Rlc3RzL25hdmlnYXRpb24v
cmVzcG9uc2UyMDQuaHRtbAorCisjIFRoaXMgcGxhdGZvcm0gZG9lcyBub3Qgc3VwcG9ydCB0aGUg
UGFnZSBWaXNpYmlsaXR5IEFQSS4KK2Zhc3QvZXZlbnRzL3BhZ2UtdmlzaWJpbGl0eS1pZnJhbWUt
ZGVsZXRlLXRlc3QuaHRtbAorZmFzdC9ldmVudHMvcGFnZS12aXNpYmlsaXR5LWlmcmFtZS1tb3Zl
LXRlc3QuaHRtbAorZmFzdC9ldmVudHMvcGFnZS12aXNpYmlsaXR5LWlmcmFtZS1wcm9wYWdhdGlv
bi10ZXN0Lmh0bWwKK2Zhc3QvZXZlbnRzL3BhZ2UtdmlzaWJpbGl0eS10cmFuc2l0aW9uLXRlc3Qu
aHRtbApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1NraXBwZWQgYi9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9tYWMvU2tpcHBlZAppbmRleCBjMjhlYzc1Li4zNGY2ZmNkIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvU2tpcHBlZAorKysgYi9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9tYWMvU2tpcHBlZApAQCAtMzU0LDMgKzM1NCw5IEBAIGFuaW1hdGlvbnMvYW5p
bWF0aW9uLWFwaS0xLmh0bWwKICMgSFRUUCAyMDQgKE5vIENvbnRlbnQpIHNob3VsZCBiZSBpZ25v
cmVkCiAjIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02MDIwNgogaHR0
cC90ZXN0cy9uYXZpZ2F0aW9uL3Jlc3BvbnNlMjA0Lmh0bWwKKworIyBUaGlzIHBsYXRmb3JtIGRv
ZXMgbm90IHN1cHBvcnQgdGhlIFBhZ2UgVmlzaWJpbGl0eSBBUEkuCitmYXN0L2V2ZW50cy9wYWdl
LXZpc2liaWxpdHktaWZyYW1lLWRlbGV0ZS10ZXN0Lmh0bWwKK2Zhc3QvZXZlbnRzL3BhZ2Utdmlz
aWJpbGl0eS1pZnJhbWUtbW92ZS10ZXN0Lmh0bWwKK2Zhc3QvZXZlbnRzL3BhZ2UtdmlzaWJpbGl0
eS1pZnJhbWUtcHJvcGFnYXRpb24tdGVzdC5odG1sCitmYXN0L2V2ZW50cy9wYWdlLXZpc2liaWxp
dHktdHJhbnNpdGlvbi10ZXN0Lmh0bWwKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3Jt
L3F0L1NraXBwZWQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9Ta2lwcGVkCmluZGV4IGU1ZDJj
MjcuLjQ0ZDc5MGQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0L1NraXBwZWQK
KysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvU2tpcHBlZApAQCAtMjY5NiwzICsyNjk2LDkg
QEAgaHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvbWVkaWEtc3JjLWJs
b2NrZWQuaHRtbAogCiAjIEFuaW1hdGlvbiBBUEkgaXMgZGlzYWJsZWQgYnkgZGVmYXVsdAogYW5p
bWF0aW9ucy9hbmltYXRpb24tYXBpLTEuaHRtbAorCisjIFRoaXMgcGxhdGZvcm0gZG9lcyBub3Qg
c3VwcG9ydCB0aGUgUGFnZSBWaXNpYmlsaXR5IEFQSS4KK2Zhc3QvZXZlbnRzL3BhZ2UtdmlzaWJp
bGl0eS1pZnJhbWUtZGVsZXRlLXRlc3QuaHRtbAorZmFzdC9ldmVudHMvcGFnZS12aXNpYmlsaXR5
LWlmcmFtZS1tb3ZlLXRlc3QuaHRtbAorZmFzdC9ldmVudHMvcGFnZS12aXNpYmlsaXR5LWlmcmFt
ZS1wcm9wYWdhdGlvbi10ZXN0Lmh0bWwKK2Zhc3QvZXZlbnRzL3BhZ2UtdmlzaWJpbGl0eS10cmFu
c2l0aW9uLXRlc3QuaHRtbApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1Nr
aXBwZWQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vU2tpcHBlZAppbmRleCA5MDc2ZjBhLi44
NzZlMjQzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vU2tpcHBlZAorKysg
Yi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vU2tpcHBlZApAQCAtMTI4MiwzICsxMjgyLDkgQEAg
YW5pbWF0aW9ucy9hbmltYXRpb24tYXBpLTEuaHRtbAogIyBIVFRQIDIwNCAoTm8gQ29udGVudCkg
c2hvdWxkIGJlIGlnbm9yZWQKICMgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTYwMjA2CiBodHRwL3Rlc3RzL25hdmlnYXRpb24vcmVzcG9uc2UyMDQuaHRtbAorCisjIFRo
aXMgcGxhdGZvcm0gZG9lcyBub3Qgc3VwcG9ydCB0aGUgUGFnZSBWaXNpYmlsaXR5IEFQSS4KK2Zh
c3QvZXZlbnRzL3BhZ2UtdmlzaWJpbGl0eS1pZnJhbWUtZGVsZXRlLXRlc3QuaHRtbAorZmFzdC9l
dmVudHMvcGFnZS12aXNpYmlsaXR5LWlmcmFtZS1tb3ZlLXRlc3QuaHRtbAorZmFzdC9ldmVudHMv
cGFnZS12aXNpYmlsaXR5LWlmcmFtZS1wcm9wYWdhdGlvbi10ZXN0Lmh0bWwKK2Zhc3QvZXZlbnRz
L3BhZ2UtdmlzaWJpbGl0eS10cmFuc2l0aW9uLXRlc3QuaHRtbApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dApp
bmRleCBjNTRiMmVlLi4wOWZiNzg1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxp
c3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dApAQCAtMTAxMSw2ICsx
MDExLDcgQEAgU0VUKFdlYkNvcmVfU09VUkNFUwogICAgIHBhZ2UvUGFnZUdyb3VwLmNwcAogICAg
IHBhZ2UvUGFnZUdyb3VwTG9hZERlZmVycmVyLmNwcAogICAgIHBhZ2UvUGFnZVNlcmlhbGl6ZXIu
Y3BwCisgICAgcGFnZS9QYWdlVmlzaWJpbGl0eVN0YXRlLmNwcAogICAgIHBhZ2UvUGVyZm9ybWFu
Y2UuY3BwCiAgICAgcGFnZS9QZXJmb3JtYW5jZU5hdmlnYXRpb24uY3BwCiAgICAgcGFnZS9QZXJm
b3JtYW5jZVRpbWluZy5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBi
L1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBjNTIwM2NjLi5lZDY1Zjk3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsNDEgQEAKKzIwMTEtMDUtMDUgIFNoaXNoaXIgQWdyYXdhbCAgPHNoaXNo
aXJAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIEltcGxlbWVudCBQYWdlIFZpc2liaWxpdHkgQVBJLgorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTQxODEKKworICAgICAgICBUZXN0czog
ZmFzdC9ldmVudHMvcGFnZS12aXNpYmlsaXR5LWlmcmFtZS1kZWxldGUtdGVzdC5odG1sCisgICAg
ICAgICAgICAgICBmYXN0L2V2ZW50cy9wYWdlLXZpc2liaWxpdHktaWZyYW1lLW1vdmUtdGVzdC5o
dG1sCisgICAgICAgICAgICAgICBmYXN0L2V2ZW50cy9wYWdlLXZpc2liaWxpdHktaWZyYW1lLXBy
b3BhZ2F0aW9uLXRlc3QuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9ldmVudHMvcGFnZS12aXNp
YmlsaXR5LXRyYW5zaXRpb24tdGVzdC5odG1sCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoK
KyAgICAgICAgKiBHTlVtYWtlZmlsZS5saXN0LmFtOgorICAgICAgICAqIFdlYkNvcmUuZ3lwaToK
KyAgICAgICAgKiBXZWJDb3JlLnBybzoKKyAgICAgICAgKiBXZWJDb3JlLnZjcHJvai9XZWJDb3Jl
LnZjcHJvajoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6Cisg
ICAgICAgICogZG9tL0RvY3VtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50Ojp2
aXNpYmlsaXR5U3RhdGUpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OndlYmtpdFZpc2li
aWxpdHlTdGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6d2Via2l0SXNWaXNpYmxl
KToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjpkaXNwYXRjaFZpc2liaWxpdHlTdGF0ZUNo
YW5nZUV2ZW50KToKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuaDoKKyAgICAgICAgKiBkb20vRG9j
dW1lbnQuaWRsOgorICAgICAgICAqIGRvbS9FdmVudE5hbWVzLmg6CisgICAgICAgICogcGFnZS9G
cmFtZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZTo6ZGlzcGF0Y2hWaXNpYmlsaXR5U3Rh
dGVDaGFuZ2VFdmVudCk6CisgICAgICAgICogcGFnZS9GcmFtZS5oOgorICAgICAgICAqIHBhZ2Uv
UGFnZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQYWdlOjpQYWdlKToKKyAgICAgICAgKFdlYkNv
cmU6OlBhZ2U6OnNldFZpc2liaWxpdHlTdGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpQYWdlOjp2
aXNpYmlsaXR5U3RhdGUpOgorICAgICAgICAqIHBhZ2UvUGFnZS5oOgorICAgICAgICAqIHBhZ2Uv
UGFnZVZpc2liaWxpdHlTdGF0ZS5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6R2V0UGFn
ZVZpc2liaWxpdHlTdGF0ZVN0cmluZyk6CisgICAgICAgICogcGFnZS9QYWdlVmlzaWJpbGl0eVN0
YXRlLmg6IEFkZGVkLgorCiAyMDExLTA1LTA1ICBFcmljIENhcmxzb24gIDxlcmljLmNhcmxzb25A
YXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEFkYW0gUm9iZW4uCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtIGIvU291cmNlL1dlYkNvcmUvR05V
bWFrZWZpbGUubGlzdC5hbQppbmRleCBiMDQwZjk1Li4xYjMyYjQyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCisrKyBiL1NvdXJjZS9XZWJDb3JlL0dOVW1h
a2VmaWxlLmxpc3QuYW0KQEAgLTIyMjAsNiArMjIyMCw4IEBAIHdlYmNvcmVfc291cmNlcyArPSBc
CiAJU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlR3JvdXBMb2FkRGVmZXJyZXIuaCBcCiAJU291cmNl
L1dlYkNvcmUvcGFnZS9QYWdlU2VyaWFsaXplci5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL3BhZ2Uv
UGFnZVNlcmlhbGl6ZXIuaCBcCisJU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlVmlzaWJpbGl0eVN0
YXRlLmNwcCBcCisJU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlVmlzaWJpbGl0eVN0YXRlLmggXAog
CVNvdXJjZS9XZWJDb3JlL3BhZ2UvUGVyZm9ybWFuY2UuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9w
YWdlL1BlcmZvcm1hbmNlLmggXAogCVNvdXJjZS9XZWJDb3JlL3BhZ2UvUGVyZm9ybWFuY2VOYXZp
Z2F0aW9uLmNwcCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkgYi9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKaW5kZXggOWYyZmNiNi4uYmUzOWM3MSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUuZ3lwaQpAQCAtNzExLDYgKzcxMSw3IEBACiAgICAgICAgICAgICAncGFnZS9QYWdlLmgn
LAogICAgICAgICAgICAgJ3BhZ2UvUGFnZUdyb3VwLmgnLAogICAgICAgICAgICAgJ3BhZ2UvUGFn
ZVNlcmlhbGl6ZXIuaCcsCisgICAgICAgICAgICAncGFnZS9QYWdlVmlzaWJpbGl0eVN0YXRlLmgn
LAogICAgICAgICAgICAgJ3BhZ2UvUGx1Z2luSGFsdGVyQ2xpZW50LmgnLAogICAgICAgICAgICAg
J3BhZ2UvUG9zaXRpb25DYWxsYmFjay5oJywKICAgICAgICAgICAgICdwYWdlL1Bvc2l0aW9uRXJy
b3IuaCcsCkBAIC0zNDM1LDYgKzM0MzYsNyBAQAogICAgICAgICAgICAgJ3BhZ2UvUGFnZUdyb3Vw
TG9hZERlZmVycmVyLmNwcCcsCiAgICAgICAgICAgICAncGFnZS9QYWdlR3JvdXBMb2FkRGVmZXJy
ZXIuaCcsCiAgICAgICAgICAgICAncGFnZS9QYWdlU2VyaWFsaXplci5jcHAnLAorICAgICAgICAg
ICAgJ3BhZ2UvUGFnZVZpc2liaWxpdHlTdGF0ZS5jcHAnLAogICAgICAgICAgICAgJ3BhZ2UvUGVy
Zm9ybWFuY2UuY3BwJywKICAgICAgICAgICAgICdwYWdlL1BlcmZvcm1hbmNlLmgnLAogICAgICAg
ICAgICAgJ3BhZ2UvUGVyZm9ybWFuY2VOYXZpZ2F0aW9uLmNwcCcsCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnBybyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUucHJvCmluZGV4
IDg0ODJjMDMuLjZhMTJiMzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUucHJv
CisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUucHJvCkBAIC05MjEsNiArOTIxLDcgQEAgU09V
UkNFUyArPSBcCiAgICAgcGFnZS9QYWdlR3JvdXAuY3BwIFwKICAgICBwYWdlL1BhZ2VHcm91cExv
YWREZWZlcnJlci5jcHAgXAogICAgIHBhZ2UvUGFnZVNlcmlhbGl6ZXIuY3BwIFwKKyAgICBwYWdl
L1BhZ2VWaXNpYmlsaXR5U3RhdGUuY3BwIFwKICAgICBwYWdlL1BlcmZvcm1hbmNlLmNwcCBcCiAg
ICAgcGFnZS9QZXJmb3JtYW5jZU5hdmlnYXRpb24uY3BwIFwKICAgICBwYWdlL1BlcmZvcm1hbmNl
VGltaW5nLmNwcCBcCkBAIC0xODYyLDYgKzE4NjMsNyBAQCBIRUFERVJTICs9IFwKICAgICBwYWdl
L1BhZ2VHcm91cExvYWREZWZlcnJlci5oIFwKICAgICBwYWdlL1BhZ2UuaCBcCiAgICAgcGFnZS9Q
YWdlU2VyaWFsaXplci5oIFwKKyAgICBwYWdlL1BhZ2VWaXNpYmlsaXR5U3RhdGUuaCBcCiAgICAg
cGFnZS9QbHVnaW5IYWx0ZXIuaCBcCiAgICAgcGFnZS9QbHVnaW5IYWx0ZXJDbGllbnQuaCBcCiAg
ICAgcGFnZS9QcmludENvbnRleHQuaCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9q
L1dlYkNvcmUudmNwcm9qCmluZGV4IGUyYzhmNTUuLmZlMWM0YWMgMTAwNzU1Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCisrKyBiL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCkBAIC0yNDc1MCw2ICsyNDc1MCwxMiBA
QAogCQkJCT4KIAkJCTwvRmlsZT4KIAkJCTxGaWxlCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxwYWdl
XFBhZ2VWaXNpYmlsaXR5U3RhdGUuY3BwIgorCQkJCT4KKwkJCTxGaWxlCisJCQkJUmVsYXRpdmVQ
YXRoPSIuLlxwYWdlXFBhZ2VWaXNpYmlsaXR5U3RhdGUuaCIKKwkJCQk+CisJCQk8RmlsZQogCQkJ
CVJlbGF0aXZlUGF0aD0iLi5ccGFnZVxQZXJmb3JtYW5jZS5jcHAiCiAJCQkJPgogCQkJPC9GaWxl
PgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CmluZGV4IDQzOWUzMTMuLjczYTYwM2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTU5MjYsNiArNTkyNiw4IEBACiAJCUZFODBE
QTY2MEU5QzQ3MDMwMDBENkY3NSAvKiBKU0dlb3Bvc2l0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGRTgwREE2MjBFOUM0NzAzMDAwRDZGNzUgLyog
SlNHZW9wb3NpdGlvbi5oICovOyB9OwogCQlGRTgwREE3MTBFOUM0NzJGMDAwRDZGNzUgLyogSlNQ
b3NpdGlvbkVycm9yLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEZFODBEQTZEMEU5QzQ3MkYwMDBENkY3NSAvKiBKU1Bvc2l0aW9uRXJyb3IuY3BwICov
OyB9OwogCQlGRTgwREE3MjBFOUM0NzJGMDAwRDZGNzUgLyogSlNQb3NpdGlvbkVycm9yLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGRTgwREE2RTBFOUM0
NzJGMDAwRDZGNzUgLyogSlNQb3NpdGlvbkVycm9yLmggKi87IH07CisJCUZGRDVCOTdBMTM1Q0M5
NzgwMEQ1RTkyQSAvKiBQYWdlVmlzaWJpbGl0eVN0YXRlLmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEZGRDVCOTc3MTM1Q0M5NzgwMEQ1RTkyQSAvKiBQ
YWdlVmlzaWJpbGl0eVN0YXRlLmNwcCAqLzsgfTsKKwkJRkZENUI5N0IxMzVDQzk3ODAwRDVFOTJB
IC8qIFBhZ2VWaXNpYmlsaXR5U3RhdGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEZGRDVCOTc4MTM1Q0M5NzgwMEQ1RTkyQSAvKiBQYWdlVmlzaWJpbGl0
eVN0YXRlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
IC8qIEVuZCBQQlhCdWlsZEZpbGUgc2VjdGlvbiAqLwogCiAvKiBCZWdpbiBQQlhDb250YWluZXJJ
dGVtUHJveHkgc2VjdGlvbiAqLwpAQCAtMTI0NDcsNiArMTI0NDksOCBAQAogCQlGRTgwREE2MjBF
OUM0NzAzMDAwRDZGNzUgLyogSlNHZW9wb3NpdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBKU0dlb3Bvc2l0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CUZFODBEQTZEMEU5QzQ3MkYwMDBENkY3NSAvKiBKU1Bvc2l0aW9uRXJyb3IuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNQb3NpdGlvbkVycm9yLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRkU4MERBNkUwRTlDNDcyRjAwMEQ2Rjc1IC8qIEpTUG9z
aXRpb25FcnJvci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU1Bvc2l0aW9u
RXJyb3IuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRkZENUI5NzcxMzVDQzk3ODAw
RDVFOTJBIC8qIFBhZ2VWaXNpYmlsaXR5U3RhdGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gUGFnZVZpc2liaWxpdHlTdGF0ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCUZGRDVCOTc4MTM1Q0M5NzgwMEQ1RTkyQSAvKiBQYWdlVmlzaWJpbGl0eVN0
YXRlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBhZ2VWaXNpYmlsaXR5U3Rh
dGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIC8qIEVuZCBQQlhGaWxlUmVmZXJlbmNl
IHNlY3Rpb24gKi8KIAogLyogQmVnaW4gUEJYRnJhbWV3b3Jrc0J1aWxkUGhhc2Ugc2VjdGlvbiAq
LwpAQCAtMTQxNzIsNiArMTQxNzYsOCBAQAogCQkJCTdBNjc0QkRBMEY5RUJGNEUwMDZDRjA5OSAv
KiBQYWdlR3JvdXBMb2FkRGVmZXJyZXIuaCAqLywKIAkJCQkzNzFFNjVDRDEzNjYxRUVEMDBCRUVE
QjAgLyogUGFnZVNlcmlhbGl6ZXIuY3BwICovLAogCQkJCTM3MUU2NUNCMTM2NjFFREMwMEJFRURC
MCAvKiBQYWdlU2VyaWFsaXplci5oICovLAorCQkJCUZGRDVCOTc3MTM1Q0M5NzgwMEQ1RTkyQSAv
KiBQYWdlVmlzaWJpbGl0eVN0YXRlLmNwcCAqLywKKwkJCQlGRkQ1Qjk3ODEzNUNDOTc4MDBENUU5
MkEgLyogUGFnZVZpc2liaWxpdHlTdGF0ZS5oICovLAogCQkJCThBODQ0RDAxMTFEM0MxOEUwMDE0
MDY1QyAvKiBQZXJmb3JtYW5jZS5jcHAgKi8sCiAJCQkJOEE4NDREMDIxMUQzQzE4RTAwMTQwNjVD
IC8qIFBlcmZvcm1hbmNlLmggKi8sCiAJCQkJOEE4NDREMDMxMUQzQzE4RTAwMTQwNjVDIC8qIFBl
cmZvcm1hbmNlLmlkbCAqLywKQEAgLTIxODc2LDYgKzIxODgyLDcgQEAKIAkJCQlGMzQ3NDJFNTEz
NDM2MzNDMDA1MzFCQzIgLyogUGFnZVNjcmlwdERlYnVnU2VydmVyLmggaW4gSGVhZGVycyAqLywK
IAkJCQkzNzFFNjVDQzEzNjYxRURDMDBCRUVEQjAgLyogUGFnZVNlcmlhbGl6ZXIuaCBpbiBIZWFk
ZXJzICovLAogCQkJCUUxMjg0QUUxMTA0NDdENDUwMEVBRUI1MiAvKiBQYWdlVHJhbnNpdGlvbkV2
ZW50LmggaW4gSGVhZGVycyAqLywKKwkJCQlGRkQ1Qjk3QjEzNUNDOTc4MDBENUU5MkEgLyogUGFn
ZVZpc2liaWxpdHlTdGF0ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTFFMUVDQzMwQzkxQzkwNDAw
REMyNTVCIC8qIFBhZ2VVUkxSZWNvcmQuaCBpbiBIZWFkZXJzICovLAogCQkJCTA4ODUwNjdGMTFE
QTA0NUIwMDE4MkI5OCAvKiBQYWludEluZm8uaCBpbiBIZWFkZXJzICovLAogCQkJCTA4ODUwNjgw
MTFEQTA0NUIwMDE4MkI5OCAvKiBQYWludFBoYXNlLmggaW4gSGVhZGVycyAqLywKQEAgLTI0NzQz
LDYgKzI0NzUwLDcgQEAKIAkJCQkzNzFFNjVDRTEzNjYxRUVEMDBCRUVEQjAgLyogUGFnZVNlcmlh
bGl6ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRTEyODRBRUExMDQ0N0RFRTAwRUFFQjUyIC8q
IFBhZ2VUcmFuc2l0aW9uRXZlbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNTFFMUVDQzIwQzkx
QzkwNDAwREMyNTVCIC8qIFBhZ2VVUkxSZWNvcmQuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJRkZE
NUI5N0ExMzVDQzk3ODAwRDVFOTJBIC8qIFBhZ2VWaXNpYmlsaXR5U3RhdGUuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJRkQzMTYwQTIxMkIwMjZGNzAwQzFBMzU5IC8qIFBhbm5lci5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQlGNTVCM0RDOTEyNTFGMTJEMDAzRUYyNjkgLyogUGFzc3dvcmRJbnB1dFR5
cGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNEIyNzA5ODMwQUYyRTVFMDAwNjUxMjdGIC8qIFBh
c3RlYm9hcmRNYWMubW0gaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9Eb2N1bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCmluZGV4
IGFjNDZiZDYuLmE1YTRkMzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVu
dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcApAQCAtMTM1NCw2ICsx
MzU0LDM0IEBAIHZvaWQgRG9jdW1lbnQ6OnJlbW92ZVRpdGxlKEVsZW1lbnQqIHRpdGxlRWxlbWVu
dCkKICAgICAgICAgdXBkYXRlVGl0bGUoU3RyaW5nV2l0aERpcmVjdGlvbigpKTsKIH0KIAorI2lm
IEVOQUJMRShQQUdFX1ZJU0lCSUxJVFlfQVBJKQorUGFnZVZpc2liaWxpdHlTdGF0ZSBEb2N1bWVu
dDo6dmlzaWJpbGl0eVN0YXRlKCkgY29uc3QKK3sKKyAgICAvLyBUaGUgdmlzaWJpbGl0eSBvZiB0
aGUgZG9jdW1lbnQgaXMgaW5oZXJpdGVkIGZyb20gdGhlIHZpc2liaWxpdHkgb2YgdGhlCisgICAg
Ly8gcGFnZS4gSWYgdGhlcmUgaXMgbm8gcGFnZSBhc3NvY2lhdGVkIHdpdGggdGhlIGRvY3VtZW50
LCB3ZSB3aWxsIGFzc3VtZQorICAgIC8vIHRoYXQgdGhlIHBhZ2UgaXMgdmlzaWJsZSBpLmUuIGlu
dmlzaWJpbGl0eSBoYXMgdG8gYmUgZXhwbGljaXRseQorICAgIC8vIHNwZWNpZmllZCBieSB0aGUg
ZW1iZWRkZXIuCisgICAgaWYgKCFtX2ZyYW1lIHx8ICFtX2ZyYW1lLT5wYWdlKCkpCisgICAgICAg
IHJldHVybiBQYWdlVmlzaWJpbGl0eVN0YXRlVmlzaWJsZTsKKyAgICByZXR1cm4gbV9mcmFtZS0+
cGFnZSgpLT52aXNpYmlsaXR5U3RhdGUoKTsKK30KKworU3RyaW5nIERvY3VtZW50Ojp3ZWJraXRW
aXNpYmlsaXR5U3RhdGUoKSBjb25zdAoreworICAgIHJldHVybiBHZXRQYWdlVmlzaWJpbGl0eVN0
YXRlU3RyaW5nKHZpc2liaWxpdHlTdGF0ZSgpKTsKK30KKworYm9vbCBEb2N1bWVudDo6d2Via2l0
SXNWaXNpYmxlKCkgY29uc3QKK3sKKyAgICByZXR1cm4gdmlzaWJpbGl0eVN0YXRlKCkgPT0gUGFn
ZVZpc2liaWxpdHlTdGF0ZVZpc2libGU7Cit9CisKK3ZvaWQgRG9jdW1lbnQ6OmRpc3BhdGNoVmlz
aWJpbGl0eVN0YXRlQ2hhbmdlRXZlbnQoKQoreworICAgIGRpc3BhdGNoRXZlbnQoRXZlbnQ6OmNy
ZWF0ZShldmVudE5hbWVzKCkud2Via2l0dmlzaWJpbGl0eXN0YXRlY2hhbmdlRXZlbnQsIGZhbHNl
LCBmYWxzZSkpOworfQorI2VuZGlmCisKIFN0cmluZyBEb2N1bWVudDo6bm9kZU5hbWUoKSBjb25z
dAogewogICAgIHJldHVybiAiI2RvY3VtZW50IjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9Eb2N1bWVudC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKaW5kZXggMjMx
NWU3OS4uNzFiN2FmNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgK
KysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKQEAgLTM0LDYgKzM0LDcgQEAKICNp
bmNsdWRlICJET01UaW1lU3RhbXAuaCIKICNpbmNsdWRlICJEb2N1bWVudFRpbWluZy5oIgogI2lu
Y2x1ZGUgIkljb25VUkwuaCIKKyNpbmNsdWRlICJQYWdlVmlzaWJpbGl0eVN0YXRlLmgiCiAjaW5j
bHVkZSAiUXVhbGlmaWVkTmFtZS5oIgogI2luY2x1ZGUgIlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQu
aCIKICNpbmNsdWRlICJTdHJpbmdXaXRoRGlyZWN0aW9uLmgiCkBAIC0zMDQsNiArMzA1LDkgQEAg
cHVibGljOgogI2lmIEVOQUJMRShGVUxMU0NSRUVOX0FQSSkKICAgICBERUZJTkVfQVRUUklCVVRF
X0VWRU5UX0xJU1RFTkVSKHdlYmtpdGZ1bGxzY3JlZW5jaGFuZ2UpOwogI2VuZGlmCisjaWYgRU5B
QkxFKFBBR0VfVklTSUJJTElUWV9BUEkpCisgICAgREVGSU5FX0FUVFJJQlVURV9FVkVOVF9MSVNU
RU5FUih3ZWJraXR2aXNpYmlsaXR5c3RhdGVjaGFuZ2UpOworI2VuZGlmCiAKICAgICBWaWV3cG9y
dEFyZ3VtZW50cyB2aWV3cG9ydEFyZ3VtZW50cygpIGNvbnN0IHsgcmV0dXJuIG1fdmlld3BvcnRB
cmd1bWVudHM7IH0KIApAQCAtMzc5LDYgKzM4MywxMiBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFs
IEtVUkwgYmFzZVVSSSgpIGNvbnN0OwogCisjaWYgRU5BQkxFKFBBR0VfVklTSUJJTElUWV9BUEkp
CisgICAgU3RyaW5nIHdlYmtpdFZpc2liaWxpdHlTdGF0ZSgpIGNvbnN0OworICAgIGJvb2wgd2Vi
a2l0SXNWaXNpYmxlKCkgY29uc3Q7CisgICAgdm9pZCBkaXNwYXRjaFZpc2liaWxpdHlTdGF0ZUNo
YW5nZUV2ZW50KCk7CisjZW5kaWYKKwogICAgIFBhc3NSZWZQdHI8Tm9kZT4gYWRvcHROb2RlKFBh
c3NSZWZQdHI8Tm9kZT4gc291cmNlLCBFeGNlcHRpb25Db2RlJik7CiAKICAgICBQYXNzUmVmUHRy
PEhUTUxDb2xsZWN0aW9uPiBpbWFnZXMoKTsKQEAgLTExMzIsNiArMTE0MiwxMCBAQCBwcml2YXRl
OgogCiAgICAgdm9pZCBsb2FkRXZlbnREZWxheVRpbWVyRmlyZWQoVGltZXI8RG9jdW1lbnQ+Kik7
CiAKKyNpZiBFTkFCTEUoUEFHRV9WSVNJQklMSVRZX0FQSSkKKyAgICBQYWdlVmlzaWJpbGl0eVN0
YXRlIHZpc2liaWxpdHlTdGF0ZSgpIGNvbnN0OworI2VuZGlmCisKICAgICBpbnQgbV9ndWFyZFJl
ZkNvdW50OwogCiAgICAgT3duUHRyPENTU1N0eWxlU2VsZWN0b3I+IG1fc3R5bGVTZWxlY3RvcjsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5pZGwgYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vRG9jdW1lbnQuaWRsCmluZGV4IDVjZmFiMjQuLjg5YWU2NWUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvZG9t
L0RvY3VtZW50LmlkbApAQCAtMzM0LDYgKzMzNCwxMCBAQCBtb2R1bGUgY29yZSB7CiAgICAgICAg
IGJvb2xlYW4gaXNIVE1MRG9jdW1lbnQoKTsKICNlbmRpZgogCisgICAgICAgIC8vIFBhZ2Ugdmlz
aWJpbGl0eSBBUEkuCisgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBbQ29uZGl0aW9uYWw9UEFH
RV9WSVNJQklMSVRZX0FQSV0gRE9NU3RyaW5nIHdlYmtpdFZpc2liaWxpdHlTdGF0ZTsKKyAgICAg
ICAgcmVhZG9ubHkgYXR0cmlidXRlIFtDb25kaXRpb25hbD1QQUdFX1ZJU0lCSUxJVFlfQVBJXSBi
b29sZWFuIHdlYmtpdElzVmlzaWJsZTsKKwogICAgIH07CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9FdmVudE5hbWVzLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnROYW1l
cy5oCmluZGV4IGVjZTJhMDguLjk2ZjAzODMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9FdmVudE5hbWVzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50TmFtZXMuaApAQCAt
MTA2LDYgKzEwNiw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICBtYWNybyh1bmxvYWQpIFwK
ICAgICBtYWNybyh1cGRhdGVyZWFkeSkgXAogICAgIG1hY3JvKHZlcnNpb25jaGFuZ2UpIFwKKyAg
ICBtYWNybyh3ZWJraXR2aXNpYmlsaXR5c3RhdGVjaGFuZ2UpIFwKICAgICBtYWNybyh3cml0ZSkg
XAogICAgIG1hY3JvKHdyaXRlZW5kKSBcCiAgICAgbWFjcm8od3JpdGVzdGFydCkgXApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0ZyYW1lLmNwcAppbmRleCBhZjQ0MGRjLi4zYThkM2I1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0ZyYW1lLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lLmNwcApA
QCAtNzE4LDYgKzcxOCwxNiBAQCB2b2lkIEZyYW1lOjpzZXRET01XaW5kb3coRE9NV2luZG93KiBk
b21XaW5kb3cpCiAgICAgbV9kb21XaW5kb3cgPSBkb21XaW5kb3c7CiB9CiAKKyNpZiBFTkFCTEUo
UEFHRV9WSVNJQklMSVRZX0FQSSkKK3ZvaWQgRnJhbWU6OmRpc3BhdGNoVmlzaWJpbGl0eVN0YXRl
Q2hhbmdlRXZlbnQoKQoreworICAgIGlmIChtX2RvYykKKyAgICAgICAgbV9kb2MtPmRpc3BhdGNo
VmlzaWJpbGl0eVN0YXRlQ2hhbmdlRXZlbnQoKTsKKyAgICBmb3IgKEZyYW1lKiBjaGlsZCA9IHRy
ZWUoKS0+Zmlyc3RDaGlsZCgpOyBjaGlsZDsgY2hpbGQgPSBjaGlsZC0+dHJlZSgpLT5uZXh0U2li
bGluZygpKQorICAgICAgICBjaGlsZC0+ZGlzcGF0Y2hWaXNpYmlsaXR5U3RhdGVDaGFuZ2VFdmVu
dCgpOworfQorI2VuZGlmCisKIERPTVdpbmRvdyogRnJhbWU6OmRvbVdpbmRvdygpIGNvbnN0CiB7
CiAgICAgaWYgKCFtX2RvbVdpbmRvdykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
RnJhbWUuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWUuaAppbmRleCBiZWQzNDExLi43ZGE5
YzQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9GcmFtZS5oCkBAIC0xMTksNiArMTE5LDEwIEBAIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAogICAgICAgICB2b2lkIHRyYW5zZmVyQ2hpbGRGcmFtZVRvTmV3RG9jdW1lbnQoKTsK
IAorI2lmIEVOQUJMRShQQUdFX1ZJU0lCSUxJVFlfQVBJKQorICAgICAgICB2b2lkIGRpc3BhdGNo
VmlzaWJpbGl0eVN0YXRlQ2hhbmdlRXZlbnQoKTsKKyNlbmRpZgorCiAgICAgLy8gPT09PT09PT0g
QWxsIHB1YmxpYyBmdW5jdGlvbnMgYmVsb3cgdGhpcyBwb2ludCBhcmUgY2FuZGlkYXRlcyB0byBt
b3ZlIG91dCBvZiBGcmFtZSBpbnRvIGFub3RoZXIgY2xhc3MuID09PT09PT09CiAKICAgICAgICAg
Ym9vbCBpc0Rpc2Nvbm5lY3RlZCgpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGFnZS9QYWdlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAKaW5kZXggZjhkZGVl
Yy4uOTVlOGUyMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCkBAIC0xNjMsNiArMTYzLDkgQEAgUGFnZTo6
UGFnZShjb25zdCBQYWdlQ2xpZW50cyYgcGFnZUNsaWVudHMpCiAgICAgLCBtX3ZpZXdNb2RlKFZp
ZXdNb2RlV2luZG93ZWQpCiAgICAgLCBtX21pbmltdW1UaW1lckludGVydmFsKFNldHRpbmdzOjpk
ZWZhdWx0TWluRE9NVGltZXJJbnRlcnZhbCgpKQogICAgICwgbV9pc0VkaXRhYmxlKGZhbHNlKQor
I2lmIEVOQUJMRShQQUdFX1ZJU0lCSUxJVFlfQVBJKQorICAgICwgbV92aXNpYmlsaXR5U3RhdGUo
UGFnZVZpc2liaWxpdHlTdGF0ZVZpc2libGUpCisjZW5kaWYKIHsKICAgICBpZiAoIWFsbFBhZ2Vz
KSB7CiAgICAgICAgIGFsbFBhZ2VzID0gbmV3IEhhc2hTZXQ8UGFnZSo+OwpAQCAtOTM0LDYgKzkz
NywyMyBAQCB2b2lkIFBhZ2U6OmNoZWNrRnJhbWVDb3VudENvbnNpc3RlbmN5KCkgY29uc3QKIH0K
ICNlbmRpZgogCisjaWYgRU5BQkxFKFBBR0VfVklTSUJJTElUWV9BUEkpCit2b2lkIFBhZ2U6OnNl
dFZpc2liaWxpdHlTdGF0ZShQYWdlVmlzaWJpbGl0eVN0YXRlIHZpc2liaWxpdHlTdGF0ZSwgYm9v
bCBpc0luaXRpYWxTdGF0ZSkKK3sKKyAgICBpZiAobV92aXNpYmlsaXR5U3RhdGUgPT0gdmlzaWJp
bGl0eVN0YXRlKQorICAgICAgICByZXR1cm47CisgICAgbV92aXNpYmlsaXR5U3RhdGUgPSB2aXNp
YmlsaXR5U3RhdGU7CisKKyAgICBpZiAoIWlzSW5pdGlhbFN0YXRlICYmIG1fbWFpbkZyYW1lKQor
ICAgICAgICBtX21haW5GcmFtZS0+ZGlzcGF0Y2hWaXNpYmlsaXR5U3RhdGVDaGFuZ2VFdmVudCgp
OworfQorCitQYWdlVmlzaWJpbGl0eVN0YXRlIFBhZ2U6OnZpc2liaWxpdHlTdGF0ZSgpIGNvbnN0
Cit7CisgICAgcmV0dXJuIG1fdmlzaWJpbGl0eVN0YXRlOworfQorI2VuZGlmCisKIFBhZ2U6OlBh
Z2VDbGllbnRzOjpQYWdlQ2xpZW50cygpCiAgICAgOiBjaHJvbWVDbGllbnQoMCkKICAgICAsIGNv
bnRleHRNZW51Q2xpZW50KDApCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2Uu
aCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oCmluZGV4IDU4NGNjN2UuLjlmNjI0MzIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvUGFnZS5oCkBAIC0yMyw2ICsyMyw3IEBACiAKICNpbmNsdWRlICJGcmFtZUxvYWRlclR5
cGVzLmgiCiAjaW5jbHVkZSAiRmluZE9wdGlvbnMuaCIKKyNpbmNsdWRlICJQYWdlVmlzaWJpbGl0
eVN0YXRlLmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1TdHJpbmcuaCIKICNpbmNsdWRlICJWaWV3cG9y
dEFyZ3VtZW50cy5oIgogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CkBAIC0zMDAsNiArMzAxLDEx
IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgdm9pZCBzZXRFZGl0YWJsZShib29sIGlz
RWRpdGFibGUpIHsgbV9pc0VkaXRhYmxlID0gaXNFZGl0YWJsZTsgfQogICAgICAgICBib29sIGlz
RWRpdGFibGUoKSB7IHJldHVybiBtX2lzRWRpdGFibGU7IH0KIAorI2lmIEVOQUJMRShQQUdFX1ZJ
U0lCSUxJVFlfQVBJKQorICAgICAgICBQYWdlVmlzaWJpbGl0eVN0YXRlIHZpc2liaWxpdHlTdGF0
ZSgpIGNvbnN0OworICAgICAgICB2b2lkIHNldFZpc2liaWxpdHlTdGF0ZShQYWdlVmlzaWJpbGl0
eVN0YXRlLCBib29sKTsKKyNlbmRpZgorCiAgICAgcHJpdmF0ZToKICAgICAgICAgdm9pZCBpbml0
R3JvdXAoKTsKIApAQCAtNDA1LDYgKzQxMSwxMCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAg
ICAgIE93blB0cjxTY3JvbGxhYmxlQXJlYVNldD4gbV9zY3JvbGxhYmxlQXJlYVNldDsKIAogICAg
ICAgICBib29sIG1faXNFZGl0YWJsZTsKKworI2lmIEVOQUJMRShQQUdFX1ZJU0lCSUxJVFlfQVBJ
KQorICAgICAgICBQYWdlVmlzaWJpbGl0eVN0YXRlIG1fdmlzaWJpbGl0eVN0YXRlOworI2VuZGlm
CiAgICAgfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGFnZS9QYWdlVmlzaWJpbGl0eVN0YXRlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
UGFnZVZpc2liaWxpdHlTdGF0ZS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MC4uZmUxOGRmYQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZVZp
c2liaWxpdHlTdGF0ZS5jcHAKQEAgLTAsMCArMSw1NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
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
bmNsdWRlICJQYWdlVmlzaWJpbGl0eVN0YXRlLmgiCisKKyNpZiBFTkFCTEUoUEFHRV9WSVNJQklM
SVRZX0FQSSkKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitTdHJpbmcgR2V0UGFnZVZpc2liaWxp
dHlTdGF0ZVN0cmluZyhQYWdlVmlzaWJpbGl0eVN0YXRlIHN0YXRlKQoreworICAgIERFRklORV9T
VEFUSUNfTE9DQUwoY29uc3QgU3RyaW5nLCB2aXNpYmxlLCAoInZpc2libGUiKSk7CisgICAgREVG
SU5FX1NUQVRJQ19MT0NBTChjb25zdCBTdHJpbmcsIGhpZGRlbiwgKCJoaWRkZW4iKSk7CisKKyAg
ICBzd2l0Y2ggKHN0YXRlKSB7CisgICAgY2FzZSBQYWdlVmlzaWJpbGl0eVN0YXRlVmlzaWJsZToK
KyAgICAgICAgcmV0dXJuIHZpc2libGU7CisgICAgY2FzZSBQYWdlVmlzaWJpbGl0eVN0YXRlSGlk
ZGVuOgorICAgICAgICByZXR1cm4gaGlkZGVuOworICAgIH0KKworICAgIEFTU0VSVF9OT1RfUkVB
Q0hFRCgpOworICAgIHJldHVybiBTdHJpbmcoKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQorCisjZW5kaWYgLy8gaWYgRU5BQkxFKFBBR0VfVklTSUJJTElUWV9BUEkpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VWaXNpYmlsaXR5U3RhdGUuaCBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvUGFnZVZpc2liaWxpdHlTdGF0ZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAuLmE3ZDcwMjEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L1BhZ2VWaXNpYmlsaXR5U3RhdGUuaApAQCAtMCwwICsxLDUxIEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4K
KyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBv
ZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUg
cHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMg
cHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIg
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
CisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRP
UlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1Mg
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisg
KiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBQYWdlVmlzaWJp
bGl0eVN0YXRlX2gKKyNkZWZpbmUgUGFnZVZpc2liaWxpdHlTdGF0ZV9oCisKKyNpbmNsdWRlIDx3
dGYvdGV4dC9XVEZTdHJpbmcuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCisvLyBUaGUgZW51
bSBpcyBub3QgZmxhZyBwcm90ZWN0ZWQgYXMgaXQgaXMgdXNlZCBpbiB0aGUgV2ViS2l0IGNocm9t
aXVtIEFQSQorLy8gd2l0aG91dCBmbGFnIHByb3RlY3Rpb24uCitlbnVtIFBhZ2VWaXNpYmlsaXR5
U3RhdGUgeworICAgIFBhZ2VWaXNpYmlsaXR5U3RhdGVWaXNpYmxlLAorICAgIFBhZ2VWaXNpYmls
aXR5U3RhdGVIaWRkZW4KK307CisKKyNpZiBFTkFCTEUoUEFHRV9WSVNJQklMSVRZX0FQSSkKK1N0
cmluZyBHZXRQYWdlVmlzaWJpbGl0eVN0YXRlU3RyaW5nKFBhZ2VWaXNpYmlsaXR5U3RhdGUpOwor
I2VuZGlmCisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIGlmbmRlZiBQYWdl
VmlzaWJpbGl0eVN0YXRlX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hh
bmdlTG9nIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXggMGZkODNhZC4u
MGY5OTU3ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKKysr
IGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMiBAQAorMjAx
MS0wNS0wNSAgU2hpc2hpciBBZ3Jhd2FsICA8c2hpc2hpckBjaHJvbWl1bS5vcmc+CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSW1wbGVtZW50IFBhZ2Ug
VmlzaWJpbGl0eSBBUEkuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD01NDE4MQorCisgICAgICAgICogV2ViS2l0Lmd5cDoKKyAgICAgICAgKiBwdWJsaWMv
V2ViUGFnZVZpc2liaWxpdHlTdGF0ZS5oOiBBZGRlZC4KKyAgICAgICAgKiBwdWJsaWMvV2ViVmll
dy5oOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3OjpzZXRWaXNpYmlsaXR5U3RhdGUpOgorICAg
ICAgICAqIHB1YmxpYy9XZWJWaWV3Q2xpZW50Lmg6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdD
bGllbnQ6OnZpc2liaWxpdHlTdGF0ZSk6CisgICAgICAgICogc3JjL0Fzc2VydE1hdGNoaW5nRW51
bXMuY3BwOgorICAgICAgICAqIHNyYy9XZWJWaWV3SW1wbC5jcHA6CisgICAgICAgIChXZWJLaXQ6
OldlYlZpZXdJbXBsOjpXZWJWaWV3SW1wbCk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBs
OjpzZXRWaXNpYmlsaXR5U3RhdGUpOgorICAgICAgICAqIHNyYy9XZWJWaWV3SW1wbC5oOgorCiAy
MDExLTA1LTA1ICBBZGFtIEJhcnRoICA8YWJhcnRoQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUm9s
bCBDaHJvbWl1bSBERVBTLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9XZWJL
aXQuZ3lwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9XZWJLaXQuZ3lwCmluZGV4IDNlMGIwZDku
LmE2ZTliMjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vV2ViS2l0Lmd5cAor
KysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL1dlYktpdC5neXAKQEAgLTIyNyw2ICsyMjcsNyBA
QAogICAgICAgICAgICAgICAgICdwdWJsaWMvV2ViT3B0aW9uRWxlbWVudC5oJywKICAgICAgICAg
ICAgICAgICAncHVibGljL1dlYlBhZ2VTZXJpYWxpemVyLmgnLAogICAgICAgICAgICAgICAgICdw
dWJsaWMvV2ViUGFnZVNlcmlhbGl6ZXJDbGllbnQuaCcsCisgICAgICAgICAgICAgICAgJ3B1Ymxp
Yy9XZWJQYWdlVmlzaWJpbGl0eVN0YXRlLmgnLAogICAgICAgICAgICAgICAgICdwdWJsaWMvV2Vi
UGFzc3dvcmRBdXRvY29tcGxldGVMaXN0ZW5lci5oJywKICAgICAgICAgICAgICAgICAncHVibGlj
L1dlYlBhc3N3b3JkRm9ybURhdGEuaCcsCiAgICAgICAgICAgICAgICAgJ3B1YmxpYy9XZWJQZXJm
b3JtYW5jZS5oJywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dl
YlBhZ2VWaXNpYmlsaXR5U3RhdGUuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dl
YlBhZ2VWaXNpYmlsaXR5U3RhdGUuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
Li41NDc0YmU0Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJs
aWMvV2ViUGFnZVZpc2liaWxpdHlTdGF0ZS5oCkBAIC0wLDAgKzEsNDUgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
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
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFdlYlBh
Z2VWaXNpYmlsaXR5U3RhdGVfaAorI2RlZmluZSBXZWJQYWdlVmlzaWJpbGl0eVN0YXRlX2gKKwor
bmFtZXNwYWNlIFdlYktpdCB7CisKKy8vIFRoZSBmb2xsb3dpbmcgZW51bSBzaG91bGQgYmUgY29u
c2lzdGVudCB3aXRoIHRoZSBQYWdlVmlzaWJpbGl0eVN0YXRlIGVudW0KKy8vIGRlZmluZWQgaW4g
V2ViQ29yZS4KK2VudW0gV2ViUGFnZVZpc2liaWxpdHlTdGF0ZSB7CisgICAgV2ViUGFnZVZpc2li
aWxpdHlTdGF0ZVZpc2libGUsCisgICAgV2ViUGFnZVZpc2liaWxpdHlTdGF0ZUhpZGRlbgorfTsK
KworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViVmlldy5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9w
dWJsaWMvV2ViVmlldy5oCmluZGV4IDNlOWIzZDYuLjRhM2FiNTggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlZpZXcuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL3B1YmxpYy9XZWJWaWV3LmgKQEAgLTMyLDYgKzMyLDcgQEAKICNkZWZpbmUgV2ViVmll
d19oCiAKICNpbmNsdWRlICJXZWJEcmFnT3BlcmF0aW9uLmgiCisjaW5jbHVkZSAiV2ViUGFnZVZp
c2liaWxpdHlTdGF0ZS5oIgogI2luY2x1ZGUgIldlYlN0cmluZy5oIgogI2luY2x1ZGUgIldlYlZl
Y3Rvci5oIgogI2luY2x1ZGUgIldlYldpZGdldC5oIgpAQCAtMzU3LDYgKzM1OCwxMiBAQCBwdWJs
aWM6CiAgICAgLy8gQVBJcy4KICAgICB2aXJ0dWFsIFdlYkdyYXBoaWNzQ29udGV4dDNEKiBncmFw
aGljc0NvbnRleHQzRCgpID0gMDsKIAorICAgIC8vIFZpc2liaWxpdHkgLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIC8vIFNl
dHMgdGhlIHZpc2liaWxpdHkgb2YgdGhlIFdlYlZpZXcuCisgICAgdmlydHVhbCB2b2lkIHNldFZp
c2liaWxpdHlTdGF0ZShXZWJQYWdlVmlzaWJpbGl0eVN0YXRlIHZpc2liaWxpdHlTdGF0ZSwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2wgaXNJbml0aWFsU3RhdGUpIHsg
fQorCiBwcm90ZWN0ZWQ6CiAgICAgfldlYlZpZXcoKSB7fQogfTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlZpZXdDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vcHVibGljL1dlYlZpZXdDbGllbnQuaAppbmRleCA1MTc0MzUxLi5mM2JlM2NhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJWaWV3Q2xpZW50LmgK
KysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViVmlld0NsaWVudC5oCkBAIC0z
Niw2ICszNiw3IEBACiAjaW5jbHVkZSAiV2ViRWRpdGluZ0FjdGlvbi5oIgogI2luY2x1ZGUgIldl
YkZpbGVDaG9vc2VyQ29tcGxldGlvbi5oIgogI2luY2x1ZGUgIldlYkZpbGVDaG9vc2VyUGFyYW1z
LmgiCisjaW5jbHVkZSAiV2ViUGFnZVZpc2liaWxpdHlTdGF0ZS5oIgogI2luY2x1ZGUgIldlYlBv
cHVwVHlwZS5oIgogI2luY2x1ZGUgIldlYlN0cmluZy5oIgogI2luY2x1ZGUgIldlYlRleHRBZmZp
bml0eS5oIgpAQCAtMzE1LDYgKzMxNiwxNCBAQCBwdWJsaWM6CiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFdlYlN0cmluZyYgdXJsLAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBXZWJTdHJpbmcmIHRpdGxlKSB7IH0K
IAorICAgIC8vIFZpc2liaWxpdHkgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIC8vIFJldHVybnMgdGhlIGN1cnJlbnQgdmlz
aWJpbGl0eSBvZiB0aGUgV2ViVmlldy4KKyAgICB2aXJ0dWFsIFdlYlBhZ2VWaXNpYmlsaXR5U3Rh
dGUgdmlzaWJpbGl0eVN0YXRlKCkgY29uc3QKKyAgICB7CisgICAgICAgIHJldHVybiBXZWJQYWdl
VmlzaWJpbGl0eVN0YXRlVmlzaWJsZTsKKyAgICB9CisKIHByb3RlY3RlZDoKICAgICB+V2ViVmll
d0NsaWVudCgpIHsgfQogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3Jj
L0Fzc2VydE1hdGNoaW5nRW51bXMuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvQXNz
ZXJ0TWF0Y2hpbmdFbnVtcy5jcHAKaW5kZXggNTMzZThlYy4uMzgzMTBiNiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvQXNzZXJ0TWF0Y2hpbmdFbnVtcy5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvQXNzZXJ0TWF0Y2hpbmdFbnVtcy5jcHAKQEAgLTUw
LDYgKzUwLDcgQEAKICNpbmNsdWRlICJJREJLZXkuaCIKICNpbmNsdWRlICJNZWRpYVBsYXllci5o
IgogI2luY2x1ZGUgIk5vdGlmaWNhdGlvblByZXNlbnRlci5oIgorI2luY2x1ZGUgIlBhZ2VWaXNp
YmlsaXR5U3RhdGUuaCIKICNpbmNsdWRlICJQYXN0ZWJvYXJkUHJpdmF0ZS5oIgogI2luY2x1ZGUg
IlBsYXRmb3JtQ3Vyc29yLmgiCiAjaW5jbHVkZSAiU2V0dGluZ3MuaCIKQEAgLTc1LDYgKzc2LDcg
QEAKICNpbmNsdWRlICJXZWJJbnB1dEVsZW1lbnQuaCIKICNpbmNsdWRlICJXZWJNZWRpYVBsYXll
ci5oIgogI2luY2x1ZGUgIldlYk5vdGlmaWNhdGlvblByZXNlbnRlci5oIgorI2luY2x1ZGUgIldl
YlBhZ2VWaXNpYmlsaXR5U3RhdGUuaCIKICNpbmNsdWRlICJXZWJTY3JvbGxiYXIuaCIKICNpbmNs
dWRlICJXZWJTZXR0aW5ncy5oIgogI2luY2x1ZGUgIldlYlN0b3JhZ2VRdW90YUVycm9yLmgiCkBA
IC00NDUsMyArNDQ3LDYgQEAgQ09NUElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5VTShXZWJUaGVtZUVu
Z2luZTo6U2Nyb2xsYmFyT3JpZW50YXRpb25WZXJ0aWNhbCwgUGxhdGYKIENPTVBJTEVfQVNTRVJU
X01BVENISU5HX0VOVU0oV2ViVGhlbWVFbmdpbmU6OlNjcm9sbGJhclBhcmVudFNjcm9sbFZpZXcs
IFBsYXRmb3JtQnJpZGdlOjpTY3JvbGxiYXJQYXJlbnRTY3JvbGxWaWV3KTsKIENPTVBJTEVfQVNT
RVJUX01BVENISU5HX0VOVU0oV2ViVGhlbWVFbmdpbmU6OlNjcm9sbGJhclBhcmVudFJlbmRlckxh
eWVyLCBQbGF0Zm9ybUJyaWRnZTo6U2Nyb2xsYmFyUGFyZW50UmVuZGVyTGF5ZXIpOwogI2VuZGlm
CisKK0NPTVBJTEVfQVNTRVJUX01BVENISU5HX0VOVU0oV2ViUGFnZVZpc2liaWxpdHlTdGF0ZVZp
c2libGUsIFBhZ2VWaXNpYmlsaXR5U3RhdGVWaXNpYmxlKTsKK0NPTVBJTEVfQVNTRVJUX01BVENI
SU5HX0VOVU0oV2ViUGFnZVZpc2liaWxpdHlTdGF0ZUhpZGRlbiwgUGFnZVZpc2liaWxpdHlTdGF0
ZUhpZGRlbik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3
SW1wbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAKaW5k
ZXggNjZlOTIwOS4uOGM2MjNkNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9z
cmMvV2ViVmlld0ltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZp
ZXdJbXBsLmNwcApAQCAtMzY2LDYgKzM2NiwxMCBAQCBXZWJWaWV3SW1wbDo6V2ViVmlld0ltcGwo
V2ViVmlld0NsaWVudCogY2xpZW50KQogCiAgICAgbV9wYWdlLT5zZXRHcm91cE5hbWUocGFnZUdy
b3VwTmFtZSk7CiAKKyNpZiBFTkFCTEUoUEFHRV9WSVNJQklMSVRZX0FQSSkKKyAgICBzZXRWaXNp
YmlsaXR5U3RhdGUobV9jbGllbnQtPnZpc2liaWxpdHlTdGF0ZSgpLCB0cnVlKTsKKyNlbmRpZgor
CiAgICAgbV9pbnNwZWN0b3JTZXR0aW5nc01hcCA9IGFkb3B0UHRyKG5ldyBTZXR0aW5nc01hcCk7
CiB9CiAKQEAgLTI1NTksNCArMjU2MywxNiBAQCBXZWJHcmFwaGljc0NvbnRleHQzRCogV2ViVmll
d0ltcGw6OmdyYXBoaWNzQ29udGV4dDNEKCkKICAgICByZXR1cm4gMDsKIH0KIAorCit2b2lkIFdl
YlZpZXdJbXBsOjpzZXRWaXNpYmlsaXR5U3RhdGUoV2ViUGFnZVZpc2liaWxpdHlTdGF0ZSB2aXNp
YmlsaXR5U3RhdGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbCBp
c0luaXRpYWxTdGF0ZSkgeworI2lmIEVOQUJMRShQQUdFX1ZJU0lCSUxJVFlfQVBJKQorICAgIGlm
ICghcGFnZSgpKQorICAgICAgICByZXR1cm47CisKKyAgICBBU1NFUlQodmlzaWJpbGl0eVN0YXRl
ID09IFdlYlBhZ2VWaXNpYmlsaXR5U3RhdGVWaXNpYmxlIHx8IHZpc2liaWxpdHlTdGF0ZSA9PSBX
ZWJQYWdlVmlzaWJpbGl0eVN0YXRlSGlkZGVuKTsKKyAgICBtX3BhZ2UtPnNldFZpc2liaWxpdHlT
dGF0ZShzdGF0aWNfY2FzdDxQYWdlVmlzaWJpbGl0eVN0YXRlPihzdGF0aWNfY2FzdDxpbnQ+KHZp
c2liaWxpdHlTdGF0ZSkpLCBpc0luaXRpYWxTdGF0ZSk7CisjZW5kaWYKK30KKwogfSAvLyBuYW1l
c3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJW
aWV3SW1wbC5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuaAppbmRl
eCBkOGQ5MmE4Li5mMjkwODI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Ny
Yy9XZWJWaWV3SW1wbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJ
bXBsLmgKQEAgLTM1NSw2ICszNTUsOCBAQCBwdWJsaWM6CiAgICAgLy8gV2ViR0wuIFJldHVybnMg
MCBpZiBjb21wb3NpdGluZyBzdXBwb3J0IGlzIG5vdCBjb21waWxlZCBpbi4KICAgICB2aXJ0dWFs
IFdlYkdyYXBoaWNzQ29udGV4dDNEKiBncmFwaGljc0NvbnRleHQzRCgpOwogCisgICAgdmlydHVh
bCB2b2lkIHNldFZpc2liaWxpdHlTdGF0ZShXZWJQYWdlVmlzaWJpbGl0eVN0YXRlLCBib29sKTsK
KwogICAgIFdlYkNvcmU6OlBvcHVwQ29udGFpbmVyKiBzZWxlY3RQb3B1cCgpIGNvbnN0IHsgcmV0
dXJuIG1fc2VsZWN0UG9wdXAuZ2V0KCk7IH0KIAogICAgIC8vIFJldHVybnMgdHJ1ZSBpZiB0aGUg
ZXZlbnQgbGVhZHMgdG8gc2Nyb2xsaW5nLgpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIv
VG9vbHMvQ2hhbmdlTG9nCmluZGV4IDdjY2JhMGYuLjNlZTlhODQgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMyBAQAorMjAxMS0w
NS0wNSAgU2hpc2hpciBBZ3Jhd2FsICA8c2hpc2hpckBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSW1wbGVtZW50IFBhZ2UgVmlz
aWJpbGl0eSBBUEkuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD01NDE4MQorCisgICAgICAgICogRHVtcFJlbmRlclRyZWUvTGF5b3V0VGVzdENvbnRyb2xs
ZXIuY3BwOgorICAgICAgICAoc2V0UGFnZVZpc2liaWxpdHlDYWxsYmFjayk6CisgICAgICAgIChy
ZXNldFBhZ2VWaXNpYmlsaXR5Q2FsbGJhY2spOgorICAgICAgICAoTGF5b3V0VGVzdENvbnRyb2xs
ZXI6OnN0YXRpY0Z1bmN0aW9ucyk6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvTGF5b3V0VGVz
dENvbnRyb2xsZXIuaDoKKyAgICAgICAgKExheW91dFRlc3RDb250cm9sbGVyOjpzZXRQYWdlVmlz
aWJpbGl0eSk6CisgICAgICAgIChMYXlvdXRUZXN0Q29udHJvbGxlcjo6cmVzZXRQYWdlVmlzaWJp
bGl0eSk6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vTGF5b3V0VGVzdENvbnRy
b2xsZXIuY3BwOgorICAgICAgICAoTGF5b3V0VGVzdENvbnRyb2xsZXI6OkxheW91dFRlc3RDb250
cm9sbGVyKToKKyAgICAgICAgKExheW91dFRlc3RDb250cm9sbGVyOjpyZXNldFBhZ2VWaXNpYmls
aXR5KToKKyAgICAgICAgKExheW91dFRlc3RDb250cm9sbGVyOjpzZXRQYWdlVmlzaWJpbGl0eSk6
CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vTGF5b3V0VGVzdENvbnRyb2xsZXIu
aDoKKwogMjAxMS0wNS0wNSAgSm9zZXBoIFBlY29yYXJvICA8am9lcGVja0B3ZWJraXQub3JnPgog
CiAgICAgICAgIFJldmlld2VkIGJ5IERhdmlkIEtpbHplci4KZGlmZiAtLWdpdCBhL1Rvb2xzL0R1
bXBSZW5kZXJUcmVlL0xheW91dFRlc3RDb250cm9sbGVyLmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJU
cmVlL0xheW91dFRlc3RDb250cm9sbGVyLmNwcAppbmRleCA0Y2E5MGQ4Li40MmZlODFkIDEwMDY0
NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9MYXlvdXRUZXN0Q29udHJvbGxlci5jcHAKKysr
IGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvTGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwCkBAIC0xNjcw
LDYgKzE2NzAsMzcgQEAgc3RhdGljIEpTVmFsdWVSZWYgc2V0UGx1Z2luc0VuYWJsZWRDYWxsYmFj
ayhKU0NvbnRleHRSZWYgY29udGV4dCwgSlNPYmplY3RSZWYgZnUKICAgICByZXR1cm4gSlNWYWx1
ZU1ha2VVbmRlZmluZWQoY29udGV4dCk7CiB9ICAgIAogCitzdGF0aWMgSlNWYWx1ZVJlZiBzZXRQ
YWdlVmlzaWJpbGl0eUNhbGxiYWNrKEpTQ29udGV4dFJlZiBjb250ZXh0LCBKU09iamVjdFJlZiBm
dW5jdGlvbiwgSlNPYmplY3RSZWYgdGhpc09iamVjdCwgc2l6ZV90IGFyZ3VtZW50Q291bnQsIGNv
bnN0IEpTVmFsdWVSZWYgYXJndW1lbnRzW10sIEpTVmFsdWVSZWYqIGV4Y2VwdGlvbikKK3sKKyAg
ICAvLyBIYXMgbWFjICYgd2luZG93cyBpbXBsZW1lbnRhdGlvbgorICAgIGlmIChhcmd1bWVudENv
dW50IDwgMSkKKyAgICAgICAgcmV0dXJuIEpTVmFsdWVNYWtlVW5kZWZpbmVkKGNvbnRleHQpOwor
CisgICAgSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IHZpc2liaWxpdHkoQWRvcHQsIEpTVmFsdWVU
b1N0cmluZ0NvcHkoY29udGV4dCwgYXJndW1lbnRzWzBdLCBleGNlcHRpb24pKTsKKyAgICBBU1NF
UlQoISpleGNlcHRpb24pOworCisgICAgc2l6ZV90IG1heExlbmd0aCA9IEpTU3RyaW5nR2V0TWF4
aW11bVVURjhDU3RyaW5nU2l6ZSh2aXNpYmlsaXR5LmdldCgpKTsKKyAgICBjaGFyKiB2aXNpYmls
aXR5QnVmZmVyID0gbmV3IGNoYXJbbWF4TGVuZ3RoICsgMV07CisgICAgSlNTdHJpbmdHZXRVVEY4
Q1N0cmluZyh2aXNpYmlsaXR5LmdldCgpLCB2aXNpYmlsaXR5QnVmZmVyLCBtYXhMZW5ndGggKyAx
KTsKKyAgICAKKyAgICBMYXlvdXRUZXN0Q29udHJvbGxlciogY29udHJvbGxlciA9IHN0YXRpY19j
YXN0PExheW91dFRlc3RDb250cm9sbGVyKj4oSlNPYmplY3RHZXRQcml2YXRlKHRoaXNPYmplY3Qp
KTsKKyAgICBjb250cm9sbGVyLT5zZXRQYWdlVmlzaWJpbGl0eSh2aXNpYmlsaXR5QnVmZmVyKTsK
KyAgICBkZWxldGVbXSB2aXNpYmlsaXR5QnVmZmVyOworICAgIAorICAgIHJldHVybiBKU1ZhbHVl
TWFrZVVuZGVmaW5lZChjb250ZXh0KTsKK30gICAgCisKK3N0YXRpYyBKU1ZhbHVlUmVmIHJlc2V0
UGFnZVZpc2liaWxpdHlDYWxsYmFjayhKU0NvbnRleHRSZWYgY29udGV4dCwgSlNPYmplY3RSZWYg
ZnVuY3Rpb24sIEpTT2JqZWN0UmVmIHRoaXNPYmplY3QsIHNpemVfdCBhcmd1bWVudENvdW50LCBj
b25zdCBKU1ZhbHVlUmVmIGFyZ3VtZW50c1tdLCBKU1ZhbHVlUmVmKiBleGNlcHRpb24pCit7Cisg
ICAgLy8gSGFzIG1hYyAmIHdpbmRvd3MgaW1wbGVtZW50YXRpb24KKyAgICBpZiAoYXJndW1lbnRD
b3VudCA8IDEpCisgICAgICAgIHJldHVybiBKU1ZhbHVlTWFrZVVuZGVmaW5lZChjb250ZXh0KTsK
KworICAgIExheW91dFRlc3RDb250cm9sbGVyKiBjb250cm9sbGVyID0gc3RhdGljX2Nhc3Q8TGF5
b3V0VGVzdENvbnRyb2xsZXIqPihKU09iamVjdEdldFByaXZhdGUodGhpc09iamVjdCkpOworICAg
IGNvbnRyb2xsZXItPnJlc2V0UGFnZVZpc2liaWxpdHkoKTsKKyAgICByZXR1cm4gSlNWYWx1ZU1h
a2VVbmRlZmluZWQoY29udGV4dCk7Cit9ICAgIAorCiBzdGF0aWMgSlNWYWx1ZVJlZiBzZXRTbWFy
dEluc2VydERlbGV0ZUVuYWJsZWRDYWxsYmFjayhKU0NvbnRleHRSZWYgY29udGV4dCwgSlNPYmpl
Y3RSZWYgZnVuY3Rpb24sIEpTT2JqZWN0UmVmIHRoaXNPYmplY3QsIHNpemVfdCBhcmd1bWVudENv
dW50LCBjb25zdCBKU1ZhbHVlUmVmIGFyZ3VtZW50c1tdLCBKU1ZhbHVlUmVmKiBleGNlcHRpb24p
CiB7CiAgICAgaWYgKGFyZ3VtZW50Q291bnQgPCAxKQpAQCAtMjI1Niw2ICsyMjg3LDcgQEAgSlNT
dGF0aWNGdW5jdGlvbiogTGF5b3V0VGVzdENvbnRyb2xsZXI6OnN0YXRpY0Z1bmN0aW9ucygpCiAg
ICAgICAgIHsgInJlbW92ZUFsbFZpc2l0ZWRMaW5rcyIsIHJlbW92ZUFsbFZpc2l0ZWRMaW5rc0Nh
bGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1
dGVEb250RGVsZXRlIH0sCiAgICAgICAgIHsgInJlbW92ZU9yaWdpbkFjY2Vzc1doaXRlbGlzdEVu
dHJ5IiwgcmVtb3ZlT3JpZ2luQWNjZXNzV2hpdGVsaXN0RW50cnlDYWxsYmFjaywga0pTUHJvcGVy
dHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LAog
ICAgICAgICB7ICJyZXBhaW50U3dlZXBIb3Jpem9udGFsbHkiLCByZXBhaW50U3dlZXBIb3Jpem9u
dGFsbHlDYWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5
QXR0cmlidXRlRG9udERlbGV0ZSB9LAorICAgICAgICB7ICJyZXNldFBhZ2VWaXNpYmlsaXR5Iiwg
cmVzZXRQYWdlVmlzaWJpbGl0eUNhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5
IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCiAgICAgICAgIHsgInNldEFjY2Vw
dHNFZGl0aW5nIiwgc2V0QWNjZXB0c0VkaXRpbmdDYWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1
dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LAogICAgICAgICB7
ICJzZXRBbGxvd1VuaXZlcnNhbEFjY2Vzc0Zyb21GaWxlVVJMcyIsIHNldEFsbG93VW5pdmVyc2Fs
QWNjZXNzRnJvbUZpbGVVUkxzQ2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkg
fCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKICAgICAgICAgeyAic2V0QWxsb3dG
aWxlQWNjZXNzRnJvbUZpbGVVUkxzIiwgc2V0QWxsb3dGaWxlQWNjZXNzRnJvbUZpbGVVUkxzQ2Fs
bGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0
ZURvbnREZWxldGUgfSwKQEAgLTIyODgsNiArMjMyMCw3IEBAIEpTU3RhdGljRnVuY3Rpb24qIExh
eW91dFRlc3RDb250cm9sbGVyOjpzdGF0aWNGdW5jdGlvbnMoKQogICAgICAgICB7ICJzZXRNb2Nr
R2VvbG9jYXRpb25Qb3NpdGlvbiIsIHNldE1vY2tHZW9sb2NhdGlvblBvc2l0aW9uQ2FsbGJhY2ss
IGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnRE
ZWxldGUgfSwKICAgICAgICAgeyAiYWRkTW9ja1NwZWVjaElucHV0UmVzdWx0IiwgYWRkTW9ja1Nw
ZWVjaElucHV0UmVzdWx0Q2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBr
SlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKICAgICAgICAgeyAic2V0TmV3V2luZG93
c0NvcHlCYWNrRm9yd2FyZExpc3QiLCBzZXROZXdXaW5kb3dzQ29weUJhY2tGb3J3YXJkTGlzdENh
bGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1
dGVEb250RGVsZXRlIH0sCisgICAgICAgIHsgInNldFBhZ2VWaXNpYmlsaXR5Iiwgc2V0UGFnZVZp
c2liaWxpdHlDYWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3Bl
cnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LAogICAgICAgICB7ICJzZXRQT1NJWExvY2FsZSIsIHNl
dFBPU0lYTG9jYWxlQ2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQ
cm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKICAgICAgICAgeyAic2V0UGVyc2lzdGVudFVz
ZXJTdHlsZVNoZWV0TG9jYXRpb24iLCBzZXRQZXJzaXN0ZW50VXNlclN0eWxlU2hlZXRMb2NhdGlv
bkNhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRy
aWJ1dGVEb250RGVsZXRlIH0sCiAgICAgICAgIHsgInNldFBvcHVwQmxvY2tpbmdFbmFibGVkIiwg
c2V0UG9wdXBCbG9ja2luZ0VuYWJsZWRDYWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFk
T25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LApkaWZmIC0tZ2l0IGEvVG9v
bHMvRHVtcFJlbmRlclRyZWUvTGF5b3V0VGVzdENvbnRyb2xsZXIuaCBiL1Rvb2xzL0R1bXBSZW5k
ZXJUcmVlL0xheW91dFRlc3RDb250cm9sbGVyLmgKaW5kZXggYTMxZTkwOC4uZDRlMzc3NSAxMDA2
NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvTGF5b3V0VGVzdENvbnRyb2xsZXIuaAorKysg
Yi9Ub29scy9EdW1wUmVuZGVyVHJlZS9MYXlvdXRUZXN0Q29udHJvbGxlci5oCkBAIC0xMjMsNiAr
MTIzLDkgQEAgcHVibGljOgogICAgIHZvaWQgc2V0U2Nyb2xsYmFyUG9saWN5KEpTU3RyaW5nUmVm
IG9yaWVudGF0aW9uLCBKU1N0cmluZ1JlZiBwb2xpY3kpOwogICAgIHZvaWQgc2V0RWRpdGluZ0Jl
aGF2aW9yKGNvbnN0IGNoYXIqIGVkaXRpbmdCZWhhdmlvcik7CiAKKyAgICB2b2lkIHNldFBhZ2VW
aXNpYmlsaXR5KGNvbnN0IGNoYXIqIHZpc2liaWxpdHkpIHsgfQorICAgIHZvaWQgcmVzZXRQYWdl
VmlzaWJpbGl0eSgpIHsgfQorCiAgICAgSlNWYWx1ZVJlZiBzaGFkb3dSb290KEpTQ29udGV4dFJl
ZiwgSlNWYWx1ZVJlZik7CiAgICAgSlNWYWx1ZVJlZiBlbnN1cmVTaGFkb3dSb290KEpTQ29udGV4
dFJlZiwgSlNWYWx1ZVJlZik7CiAgICAgdm9pZCByZW1vdmVTaGFkb3dSb290KEpTQ29udGV4dFJl
ZiwgSlNWYWx1ZVJlZik7CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1
bS9MYXlvdXRUZXN0Q29udHJvbGxlci5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1
bS9MYXlvdXRUZXN0Q29udHJvbGxlci5jcHAKaW5kZXggZWU4ZDVhYy4uNjI2OThjMSAxMDA2NDQK
LS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vTGF5b3V0VGVzdENvbnRyb2xsZXIu
Y3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0xheW91dFRlc3RDb250cm9s
bGVyLmNwcApAQCAtMTM0LDYgKzEzNCw3IEBAIExheW91dFRlc3RDb250cm9sbGVyOjpMYXlvdXRU
ZXN0Q29udHJvbGxlcihUZXN0U2hlbGwqIHNoZWxsKQogICAgIGJpbmRNZXRob2QoInJlbW92ZU9y
aWdpbkFjY2Vzc1doaXRlbGlzdEVudHJ5IiwgJkxheW91dFRlc3RDb250cm9sbGVyOjpyZW1vdmVP
cmlnaW5BY2Nlc3NXaGl0ZWxpc3RFbnRyeSk7CiAgICAgYmluZE1ldGhvZCgicmVtb3ZlU2hhZG93
Um9vdCIsICZMYXlvdXRUZXN0Q29udHJvbGxlcjo6cmVtb3ZlU2hhZG93Um9vdCk7CiAgICAgYmlu
ZE1ldGhvZCgicmVwYWludFN3ZWVwSG9yaXpvbnRhbGx5IiwgJkxheW91dFRlc3RDb250cm9sbGVy
OjpyZXBhaW50U3dlZXBIb3Jpem9udGFsbHkpOworICAgIGJpbmRNZXRob2QoInJlc2V0UGFnZVZp
c2liaWxpdHkiLCAmTGF5b3V0VGVzdENvbnRyb2xsZXI6OnJlc2V0UGFnZVZpc2liaWxpdHkpOwog
ICAgIGJpbmRNZXRob2QoInJlc3VtZUFuaW1hdGlvbnMiLCAmTGF5b3V0VGVzdENvbnRyb2xsZXI6
OnJlc3VtZUFuaW1hdGlvbnMpOwogICAgIGJpbmRNZXRob2QoInNhbXBsZVNWR0FuaW1hdGlvbkZv
ckVsZW1lbnRBdFRpbWUiLCAmTGF5b3V0VGVzdENvbnRyb2xsZXI6OnNhbXBsZVNWR0FuaW1hdGlv
bkZvckVsZW1lbnRBdFRpbWUpOwogICAgIGJpbmRNZXRob2QoInNldEFjY2VwdHNFZGl0aW5nIiwg
JkxheW91dFRlc3RDb250cm9sbGVyOjpzZXRBY2NlcHRzRWRpdGluZyk7CkBAIC0xNTcsNiArMTU4
LDcgQEAgTGF5b3V0VGVzdENvbnRyb2xsZXI6OkxheW91dFRlc3RDb250cm9sbGVyKFRlc3RTaGVs
bCogc2hlbGwpCiAgICAgYmluZE1ldGhvZCgic2V0TW9ja0dlb2xvY2F0aW9uRXJyb3IiLCAmTGF5
b3V0VGVzdENvbnRyb2xsZXI6OnNldE1vY2tHZW9sb2NhdGlvbkVycm9yKTsKICAgICBiaW5kTWV0
aG9kKCJzZXRNb2NrR2VvbG9jYXRpb25Qb3NpdGlvbiIsICZMYXlvdXRUZXN0Q29udHJvbGxlcjo6
c2V0TW9ja0dlb2xvY2F0aW9uUG9zaXRpb24pOwogICAgIGJpbmRNZXRob2QoImFkZE1vY2tTcGVl
Y2hJbnB1dFJlc3VsdCIsICZMYXlvdXRUZXN0Q29udHJvbGxlcjo6YWRkTW9ja1NwZWVjaElucHV0
UmVzdWx0KTsKKyAgICBiaW5kTWV0aG9kKCJzZXRQYWdlVmlzaWJpbGl0eSIsICZMYXlvdXRUZXN0
Q29udHJvbGxlcjo6c2V0UGFnZVZpc2liaWxpdHkpOwogICAgIGJpbmRNZXRob2QoInNldFBsdWdp
bnNFbmFibGVkIiwgJkxheW91dFRlc3RDb250cm9sbGVyOjpzZXRQbHVnaW5zRW5hYmxlZCk7CiAg
ICAgYmluZE1ldGhvZCgic2V0UG9wdXBCbG9ja2luZ0VuYWJsZWQiLCAmTGF5b3V0VGVzdENvbnRy
b2xsZXI6OnNldFBvcHVwQmxvY2tpbmdFbmFibGVkKTsKICAgICBiaW5kTWV0aG9kKCJzZXRQT1NJ
WExvY2FsZSIsICZMYXlvdXRUZXN0Q29udHJvbGxlcjo6c2V0UE9TSVhMb2NhbGUpOwpAQCAtMTc2
NiwzICsxNzY4LDE5IEBAIHZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OnNldFBsdWdpbnNFbmFi
bGVkKGNvbnN0IENwcEFyZ3VtZW50TGlzdCYgYXJndW1lbnRzLCBDCiAgICAgfQogICAgIHJlc3Vs
dC0+c2V0TnVsbCgpOwogfQorCit2b2lkIExheW91dFRlc3RDb250cm9sbGVyOjpyZXNldFBhZ2VW
aXNpYmlsaXR5KGNvbnN0IENwcEFyZ3VtZW50TGlzdCYgYXJndW1lbnRzLCBDcHBWYXJpYW50KiBy
ZXN1bHQpCit7CisgICAgbV9zaGVsbC0+d2ViVmlldygpLT5zZXRWaXNpYmlsaXR5U3RhdGUoV2Vi
UGFnZVZpc2liaWxpdHlTdGF0ZVZpc2libGUsIHRydWUpOworfQorCit2b2lkIExheW91dFRlc3RD
b250cm9sbGVyOjpzZXRQYWdlVmlzaWJpbGl0eShjb25zdCBDcHBBcmd1bWVudExpc3QmIGFyZ3Vt
ZW50cywgQ3BwVmFyaWFudCogcmVzdWx0KQoreworICAgIGlmIChhcmd1bWVudHMuc2l6ZSgpID4g
MCAmJiBhcmd1bWVudHNbMF0uaXNTdHJpbmcoKSkgeworICAgICAgICBzdHJpbmcgbmV3VmlzaWJp
bGl0eSA9IGFyZ3VtZW50c1swXS50b1N0cmluZygpOworICAgICAgICBpZiAobmV3VmlzaWJpbGl0
eSA9PSAidmlzaWJsZSIpCisgICAgICAgICAgICBtX3NoZWxsLT53ZWJWaWV3KCktPnNldFZpc2li
aWxpdHlTdGF0ZShXZWJQYWdlVmlzaWJpbGl0eVN0YXRlVmlzaWJsZSwgZmFsc2UpOworICAgICAg
ICBlbHNlIGlmIChuZXdWaXNpYmlsaXR5ID09ICJoaWRkZW4iKQorICAgICAgICAgICAgbV9zaGVs
bC0+d2ViVmlldygpLT5zZXRWaXNpYmlsaXR5U3RhdGUoV2ViUGFnZVZpc2liaWxpdHlTdGF0ZUhp
ZGRlbiwgZmFsc2UpOworICAgIH0KK30KZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVl
L2Nocm9taXVtL0xheW91dFRlc3RDb250cm9sbGVyLmggYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9j
aHJvbWl1bS9MYXlvdXRUZXN0Q29udHJvbGxlci5oCmluZGV4IDQ0YWMyY2QuLjEwNzFhY2QgMTAw
NjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0xheW91dFRlc3RDb250cm9s
bGVyLmgKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vTGF5b3V0VGVzdENvbnRy
b2xsZXIuaApAQCAtMzY1LDYgKzM2NSwxMCBAQCBwdWJsaWM6CiAgICAgLy8gRW5hYmxlIG9yIGRp
c2FibGUgcGx1Z2lucy4KICAgICB2b2lkIHNldFBsdWdpbnNFbmFibGVkKGNvbnN0IENwcEFyZ3Vt
ZW50TGlzdCYsIENwcFZhcmlhbnQqKTsKIAorICAgIC8vIFN3aXRjaCB0aGUgdmlzaWJpbGl0eSBv
ZiB0aGUgcGFnZS4KKyAgICB2b2lkIHNldFBhZ2VWaXNpYmlsaXR5KGNvbnN0IENwcEFyZ3VtZW50
TGlzdCYsIENwcFZhcmlhbnQqKTsKKyAgICB2b2lkIHJlc2V0UGFnZVZpc2liaWxpdHkoY29uc3Qg
Q3BwQXJndW1lbnRMaXN0JiwgQ3BwVmFyaWFudCopOworCiBwdWJsaWM6CiAgICAgLy8gVGhlIGZv
bGxvd2luZyBtZXRob2RzIGFyZSBub3QgZXhwb3NlZCB0byBKYXZhU2NyaXB0LgogICAgIHZvaWQg
c2V0V29ya1F1ZXVlRnJvemVuKGJvb2wgZnJvemVuKSB7IG1fd29ya1F1ZXVlLnNldEZyb3plbihm
cm96ZW4pOyB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>92746</attachid>
            <date>2011-05-08 13:55:44 -0700</date>
            <delta_ts>2011-08-09 15:50:00 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>page_visibility_api.patch</filename>
            <type>text/plain</type>
            <size>59251</size>
            <attacher name="Shishir Agrawal">shishir</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA1ZjhhYzJlLi5lNmJiYjA1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjYgQEAKKzIwMTEtMDUt
MDggIFNoaXNoaXIgQWdyYXdhbCAgPHNoaXNoaXJAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEltcGxlbWVudCBQYWdlIFZpc2li
aWxpdHkgQVBJLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9NTQxODEKKworICAgICAgICAqIGZhc3QvZXZlbnRzL3BhZ2UtdmlzaWJpbGl0eS1pZnJhbWUt
ZGVsZXRlLXRlc3QtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2V2ZW50cy9w
YWdlLXZpc2liaWxpdHktaWZyYW1lLWRlbGV0ZS10ZXN0Lmh0bWw6IEFkZGVkLgorICAgICAgICAq
IGZhc3QvZXZlbnRzL3BhZ2UtdmlzaWJpbGl0eS1pZnJhbWUtbW92ZS10ZXN0LWV4cGVjdGVkLnR4
dDogQWRkZWQuCisgICAgICAgICogZmFzdC9ldmVudHMvcGFnZS12aXNpYmlsaXR5LWlmcmFtZS1t
b3ZlLXRlc3QuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9ldmVudHMvcGFnZS12aXNpYmls
aXR5LWlmcmFtZS1wcm9wYWdhdGlvbi10ZXN0LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAg
ICogZmFzdC9ldmVudHMvcGFnZS12aXNpYmlsaXR5LWlmcmFtZS1wcm9wYWdhdGlvbi10ZXN0Lmh0
bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZXZlbnRzL3BhZ2UtdmlzaWJpbGl0eS10cmFuc2l0
aW9uLXRlc3QtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2V2ZW50cy9wYWdl
LXZpc2liaWxpdHktdHJhbnNpdGlvbi10ZXN0Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3Qv
ZXZlbnRzL3Jlc291cmNlcy9wYWdlLXZpc2liaWxpdHktaWZyYW1lLWRlbGV0ZS10ZXN0LWZyYW1l
Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZXZlbnRzL3Jlc291cmNlcy9wYWdlLXZpc2li
aWxpdHktaWZyYW1lLW1vdmUtbmV3LXBhZ2UuaHRtbDogQWRkZWQuCisgICAgICAgICogcGxhdGZv
cm0vY2hyb21pdW0vdGVzdF9leHBlY3RhdGlvbnMudHh0OgorICAgICAgICAqIHBsYXRmb3JtL2d0
ay9Ta2lwcGVkOgorICAgICAgICAqIHBsYXRmb3JtL21hYy9Ta2lwcGVkOgorICAgICAgICAqIHBs
YXRmb3JtL3F0L1NraXBwZWQ6CisgICAgICAgICogcGxhdGZvcm0vd2luL1NraXBwZWQ6CisKIDIw
MTEtMDUtMDggIEtlbmppIEltYXNha2kgIDxpbWFzYWtpQGNocm9taXVtLm9yZz4KIAogICAgICAg
ICBSZXZpZXdlZCBieSBFcmljIFNlaWRlbC4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qv
ZXZlbnRzL3BhZ2UtdmlzaWJpbGl0eS1pZnJhbWUtZGVsZXRlLXRlc3QtZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvcGFnZS12aXNpYmlsaXR5LWlmcmFtZS1kZWxldGUtdGVz
dC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMWQyMGEz
OQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3BhZ2UtdmlzaWJp
bGl0eS1pZnJhbWUtZGVsZXRlLXRlc3QtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTIgQEAKK1Ro
aXMgdGVzdCBjaGVja3MgdGhhdCB0aGUgcGFnZSB2aXNpYmlsaXR5IGV2ZW50IHByb2FnYXRpb24g
ZG9lcyBub3QgY3Jhc2ggdGhlIGJyb3dzZXIgd2hlbiBmcmFtZXMgYXJlIGFkZGVkIC8gZGVsZXRl
ZC4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdl
cywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK0xvYWRlZCBhbGwgZnJhbWVzLgor
VmlzaWJpbGl0eSBvZiBtYWluIGRvY3VtZW50IGNoYW5nZWQuCitWaXNpYmlsaXR5IG9mIHN1YiBm
cmFtZSAyIGNoYW5nZWQuCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1Qg
Q09NUExFVEUKKyAgIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvcGFnZS12
aXNpYmlsaXR5LWlmcmFtZS1kZWxldGUtdGVzdC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVu
dHMvcGFnZS12aXNpYmlsaXR5LWlmcmFtZS1kZWxldGUtdGVzdC5odG1sCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAuLjg4Y2NiNjIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9mYXN0L2V2ZW50cy9wYWdlLXZpc2liaWxpdHktaWZyYW1lLWRlbGV0ZS10ZXN0Lmh0bWwK
QEAgLTAsMCArMSwxMTEgQEAKKzxodG1sPgorPGJvZHkgb25sb2FkPSJzdGFydFRlc3QoKSI+CisK
KzxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+CisKKzxz
Y3JpcHQgc3JjPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorCis8
c2NyaXB0PgorCitkZXNjcmlwdGlvbigiVGhpcyB0ZXN0IGNoZWNrcyB0aGF0IHRoZSBwYWdlIHZp
c2liaWxpdHkgZXZlbnQgcHJvYWdhdGlvbiBkb2VzIG5vdCBjcmFzaCB0aGUgYnJvd3NlciB3aGVu
IGZyYW1lcyBhcmUgYWRkZWQgLyBkZWxldGVkLiIpOworCit2YXIganNUZXN0SXNBc3luYyA9IHRy
dWU7CisKK3ZhciBudW1WaXNpYmlsaXR5Q2hhbmdlcyA9IDA7Cit2YXIgZnJhbWUxLCBmcmFtZTIs
IGZyYW1lMywgZnJhbWU0LCBmcmFtZTUsIHN1YmZyYW1lMSwgc3ViRnJhbWUyLCBzdWJGcmFtZTM7
CisKK3ZhciBkb2NzTG9hZGVkID0gMDsKK3ZhciBtYWluUGFnZVZpc2liaWxpdHlDaGFuZ2VEb25l
ID0gZmFsc2U7Cit2YXIgZnJhbWUyVmlzaWJsaXR5Q2hhbmdlRG9uZSA9IGZhbHNlOworCitmdW5j
dGlvbiBzdGFydFRlc3QoKSB7CisgICAgKytkb2NzTG9hZGVkOworICAgIGlmIChkb2NzTG9hZGVk
IDwgOCkgeworICAgICAgcmV0dXJuOworICAgfQorCisgICAgZGVidWcoIkxvYWRlZCBhbGwgZnJh
bWVzLiIpOworCisgICAgZnJhbWUxID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRvcEZyYW1l
MSIpOworICAgIGZyYW1lMiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0b3BGcmFtZTIiKTsK
KyAgICBmcmFtZTMgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidG9wRnJhbWUzIik7CisgICAg
ZnJhbWU0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRvcEZyYW1lNCIpOworICAgIHN1YkZy
YW1lMSA9IGZyYW1lMy5jb250ZW50RG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInN1YklmcmFtZTEi
KTsKKyAgICBzdWJGcmFtZTIgPSBmcmFtZTMuY29udGVudERvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCJzdWJJZnJhbWUyIik7CisKKyAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKAorICAgICAg
ICAid2Via2l0dmlzaWJpbGl0eXN0YXRlY2hhbmdlIiwgb25NYWluUGFnZVZpc2liaWxpdHlDaGFu
Z2UsIGZhbHNlKTsKKyAgICBmcmFtZTIuY29udGVudERvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIo
CisgICAgICAgICJ3ZWJraXR2aXNpYmlsaXR5c3RhdGVjaGFuZ2UiLCBvbkZyYW1lMlZpc2liaWxp
dHlDaGFuZ2UsIGZhbHNlKTsKKyAgICAvLyBDaGFuZ2UgdGhlIHZpc2liaWxpdHkgb2YgdGhlIGN1
cnJlbnQgcGFnZSB0byBpbnZpc2libGUuCisgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJv
bGxlcikgeworICAgICAgICBudW1WaXNpYmlsaXR5Q2hhbmdlcysrOworICAgICAgICBsYXlvdXRU
ZXN0Q29udHJvbGxlci5zZXRQYWdlVmlzaWJpbGl0eSgiaGlkZGVuIik7CisgICAgfQorfQorCitm
dW5jdGlvbiBmaW5pc2hUZXN0KCkgeworICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xs
ZXIpCisgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLnJlc2V0UGFnZVZpc2liaWxpdHkoKTsK
KyAgICBmaW5pc2hKU1Rlc3QoKTsKK30KKworZnVuY3Rpb24gb25NYWluUGFnZVZpc2liaWxpdHlD
aGFuZ2UoKSB7CisgICAgaWYgKG1haW5QYWdlVmlzaWJpbGl0eUNoYW5nZURvbmUgJiYgZnJhbWUy
VmlzaWJsaXR5Q2hhbmdlRG9uZSkgeworICAgICAgICBmaW5pc2hUZXN0KCk7CisgICAgfSBlbHNl
IGlmICghbWFpblBhZ2VWaXNpYmlsaXR5Q2hhbmdlRG9uZSkgeworICAgICAgICBkZWJ1ZygiVmlz
aWJpbGl0eSBvZiBtYWluIGRvY3VtZW50IGNoYW5nZWQuIik7CisgICAgICAgIC8vIERlbGV0ZSBm
cmFtZSA0LgorICAgICAgICBkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKGZyYW1lNCk7CisKKyAg
ICAgICAgLy8gRGVsZXRlIHN1YmZyYW1lIDIuCisgICAgICAgIGZyYW1lMy5jb250ZW50RG9jdW1l
bnQuYm9keS5yZW1vdmVDaGlsZChzdWJGcmFtZTIpOworCisgICAgICAgIC8vIEFkZCBhIG5ldyBm
cmFtZSB0byB0b3AgbGV2ZWwuCisgICAgICAgIGZyYW1lNSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1l
bnQoImlmcmFtZSIpOworICAgICAgICBmcmFtZTUuc3JjID0gJyc7CisgICAgICAgIGRvY3VtZW50
LmJvZHkuYXBwZW5kQ2hpbGQoZnJhbWU1KTsKKworICAgICAgICAvLyBBZGQgYSBuZXcgZnJhbWUg
dG8gZnJhbWUyLgorICAgICAgICBzdWJGcmFtZTMgPSBmcmFtZTIuY29udGVudERvY3VtZW50LmNy
ZWF0ZUVsZW1lbnQoImlmcmFtZSIpOworICAgICAgICBzdWJGcmFtZTMuc3JjID0gJyc7CisgICAg
ICAgIGZyYW1lMi5jb250ZW50RG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChzdWJGcmFtZTMpOwor
CisgICAgICAgIG1haW5QYWdlVmlzaWJpbGl0eUNoYW5nZURvbmUgPSB0cnVlOworICAgIH0KKwor
ICAgIGlmIChtYWluUGFnZVZpc2liaWxpdHlDaGFuZ2VEb25lICYmIGZyYW1lMlZpc2libGl0eUNo
YW5nZURvbmUpIHsKKyAgICAgICAgZmluaXNoVGVzdCgpOworICAgIH0KK30KKworZnVuY3Rpb24g
b25GcmFtZTJWaXNpYmlsaXR5Q2hhbmdlKCkgeworICAgIGlmIChtYWluUGFnZVZpc2liaWxpdHlD
aGFuZ2VEb25lICYmIGZyYW1lMlZpc2libGl0eUNoYW5nZURvbmUpIHsKKyAgICAgICAgZmluaXNo
VGVzdCgpOworICAgIH0gZWxzZSBpZiAoIWZyYW1lMlZpc2libGl0eUNoYW5nZURvbmUpIHsKKyAg
ICAgICAgZGVidWcoIlZpc2liaWxpdHkgb2Ygc3ViIGZyYW1lIDIgY2hhbmdlZC4iKTsKKworICAg
ICAgICAvLyBEZWxldGUgZnJhbWUgMS4KKyAgICAgICAgZG9jdW1lbnQuYm9keS5yZW1vdmVDaGls
ZChmcmFtZTEpOworCisgICAgICAgIGZyYW1lMlZpc2libGl0eUNoYW5nZURvbmUgPSB0cnVlOwor
ICAgIH0KKworICAgIGlmIChtYWluUGFnZVZpc2liaWxpdHlDaGFuZ2VEb25lICYmIGZyYW1lMlZp
c2libGl0eUNoYW5nZURvbmUpIHsKKyAgICAgICAgZmluaXNoVGVzdCgpOworICAgIH0KK30KKyAg
ICAKK3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOworCis8L3NjcmlwdD4KKworPHNjcmlw
dCBzcmM9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorCis8aWZy
YW1lIGlkPSJ0b3BGcmFtZTEiIG9ubG9hZD0ic3RhcnRUZXN0KCkiID48L2lmcmFtZT4KKzxpZnJh
bWUgaWQ9InRvcEZyYW1lMiIgb25sb2FkPSJzdGFydFRlc3QoKSIgPjwvaWZyYW1lPgorPGlmcmFt
ZSBpZD0idG9wRnJhbWUzIiBvbmxvYWQ9InN0YXJ0VGVzdCgpIiBzcmM9InJlc291cmNlcy9wYWdl
LXZpc2liaWxpdHktaWZyYW1lLWRlbGV0ZS10ZXN0LWZyYW1lLmh0bWwiPjwvaWZyYW1lPgorPGlm
cmFtZSBpZD0idG9wRnJhbWU0IiBvbmxvYWQ9InN0YXJ0VGVzdCgpIiA+PC9pZnJhbWU+Cis8L2Jv
ZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9wYWdlLXZp
c2liaWxpdHktaWZyYW1lLW1vdmUtdGVzdC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0
L2V2ZW50cy9wYWdlLXZpc2liaWxpdHktaWZyYW1lLW1vdmUtdGVzdC1leHBlY3RlZC50eHQKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzk0NDBjZgotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3BhZ2UtdmlzaWJpbGl0eS1pZnJhbWUtbW92ZS10
ZXN0LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDIxIEBACitUaGlzIHRlc3QgY2hlY2tzIHRoYXQg
YW4gaWZyYW1lIHRoYXQgbW92ZXMgYmV0d2VlbiBwYWdlcyB3aXRoIGRpZmZlcmVudCB2aXNpYmls
aXR5IHdpbGwgaGF2ZSB0aGUgY29ycmVjdCB2aXNpYmlsaXR5IHZhbHVlLgorCitPbiBzdWNjZXNz
LCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAi
VEVTVCBDT01QTEVURSIuCisKKworV2luZG93IDEgTG9hZGVkCitXaW5kb3cgMiBMb2FkZWQKK1BB
U1Mgd2luZG93LmRvY3VtZW50LndlYmtpdElzVmlzaWJsZSBpcyB0cnVlCitQQVNTIHdpbmRvdzIu
ZG9jdW1lbnQud2Via2l0SXNWaXNpYmxlIGlzIHRydWUKK1BBU1MgaWZyYW1lLmNvbnRlbnREb2N1
bWVudC53ZWJraXRJc1Zpc2libGUgaXMgdHJ1ZQorUEFTUyB3aW5kb3cuZG9jdW1lbnQud2Via2l0
SXNWaXNpYmxlIGlzIGZhbHNlCitQQVNTIHdpbmRvdzIuZG9jdW1lbnQud2Via2l0SXNWaXNpYmxl
IGlzIHRydWUKK1BBU1MgaWZyYW1lLmNvbnRlbnREb2N1bWVudC53ZWJraXRJc1Zpc2libGUgaXMg
dHJ1ZQorQWRvcHRlZCBpZnJhbWUgdG8gV2luZG93IDEKK1BBU1Mgd2luZG93LmRvY3VtZW50Lndl
YmtpdElzVmlzaWJsZSBpcyBmYWxzZQorUEFTUyB3aW5kb3cyLmRvY3VtZW50LndlYmtpdElzVmlz
aWJsZSBpcyB0cnVlCitQQVNTIGlmcmFtZS5jb250ZW50RG9jdW1lbnQud2Via2l0SXNWaXNpYmxl
IGlzIGZhbHNlCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExF
VEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvcGFnZS12aXNpYmlsaXR5
LWlmcmFtZS1tb3ZlLXRlc3QuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3BhZ2Utdmlz
aWJpbGl0eS1pZnJhbWUtbW92ZS10ZXN0Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMC4uNTE2Mzg5MgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZl
bnRzL3BhZ2UtdmlzaWJpbGl0eS1pZnJhbWUtbW92ZS10ZXN0Lmh0bWwKQEAgLTAsMCArMSw4MCBA
QAorPGh0bWw+Cis8Ym9keSBvbmxvYWQ9InN0YXJ0VGVzdCgpIj4KKworPHAgaWQ9ImRlc2NyaXB0
aW9uIj48L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKworPHNjcmlwdCBzcmM9Ii4uL2pz
L3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+CisKKzxzY3JpcHQ+CisKK2Rlc2Ny
aXB0aW9uKCJUaGlzIHRlc3QgY2hlY2tzIHRoYXQgYW4gaWZyYW1lIHRoYXQgbW92ZXMgYmV0d2Vl
biBwYWdlcyB3aXRoIGRpZmZlcmVudCB2aXNpYmlsaXR5IHdpbGwgaGF2ZSB0aGUgY29ycmVjdCB2
aXNpYmlsaXR5IHZhbHVlLiIpOworCit2YXIganNUZXN0SXNBc3luYyA9IHRydWU7CisKK3ZhciB3
aW5kb3cyLCBpZnJhbWU7Cit2YXIgbnVtVmlzaWJpbGl0eUNoYW5nZXMgPSAwOworCitmdW5jdGlv
biB3aW5kb3cyTG9hZGVkKCkgeworICAgIGRlYnVnKCJXaW5kb3cgMiBMb2FkZWQiKTsKKworICAg
IGlmcmFtZSA9IHdpbmRvdzIuZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImlmcmFtZSIpOworCisg
ICAgc2hvdWxkQmVUcnVlKCJ3aW5kb3cuZG9jdW1lbnQud2Via2l0SXNWaXNpYmxlIik7CisgICAg
c2hvdWxkQmVUcnVlKCJ3aW5kb3cyLmRvY3VtZW50LndlYmtpdElzVmlzaWJsZSIpOworICAgIHNo
b3VsZEJlVHJ1ZSgiaWZyYW1lLmNvbnRlbnREb2N1bWVudC53ZWJraXRJc1Zpc2libGUiKTsKKwor
ICAgIC8vIENoYW5nZSB0aGUgdmlzaWJpbGl0eSBvZiB0aGUgY3VycmVudCBwYWdlIHRvIGludmlz
aWJsZS4KKyAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7CisgICAgICAgIG51
bVZpc2liaWxpdHlDaGFuZ2VzKys7CisgICAgICAgIHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxl
ci5zZXRQYWdlVmlzaWJpbGl0eSgiaGlkZGVuIik7CisgICAgfQorfQorCitmdW5jdGlvbiBvblZp
c2liaWxpdHlDaGFuZ2UoKSB7CisgICAgc2hvdWxkQmVGYWxzZSgid2luZG93LmRvY3VtZW50Lndl
YmtpdElzVmlzaWJsZSIpOworICAgIHNob3VsZEJlVHJ1ZSgid2luZG93Mi5kb2N1bWVudC53ZWJr
aXRJc1Zpc2libGUiKTsKKyAgICBzaG91bGRCZVRydWUoImlmcmFtZS5jb250ZW50RG9jdW1lbnQu
d2Via2l0SXNWaXNpYmxlIik7CisKKyAgICB3aW5kb3cuZG9jdW1lbnQuYWRvcHROb2RlKGlmcmFt
ZSk7CisgICAgd2luZG93LmRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoaWZyYW1lKTsKKyAgICBk
ZWJ1ZygiQWRvcHRlZCBpZnJhbWUgdG8gV2luZG93IDEiKTsKKworICAgIHNob3VsZEJlRmFsc2Uo
IndpbmRvdy5kb2N1bWVudC53ZWJraXRJc1Zpc2libGUiKTsKKyAgICBzaG91bGRCZVRydWUoIndp
bmRvdzIuZG9jdW1lbnQud2Via2l0SXNWaXNpYmxlIik7CisgICAgc2hvdWxkQmVGYWxzZSgiaWZy
YW1lLmNvbnRlbnREb2N1bWVudC53ZWJraXRJc1Zpc2libGUiKTsKKworICAgIHdpbmRvdzIuY2xv
c2UoKTsKKworICAgIGZpbmlzaFRlc3QoKTsKK30KKworZnVuY3Rpb24gc3RhcnRUZXN0KCkgewor
ICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKKyAgICAgICAgbGF5b3V0VGVz
dENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOworICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxl
ci5zZXRDYW5PcGVuV2luZG93cygpOworICAgIH0KKworICAgIGRlYnVnKCJXaW5kb3cgMSBMb2Fk
ZWQiKTsKKyAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJ3ZWJraXR2aXNpYmlsaXR5c3Rh
dGVjaGFuZ2UiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25WaXNpYmlsaXR5Q2hh
bmdlLCBmYWxzZSk7CisKKyAgICB3aW5kb3cyID0gd2luZG93Lm9wZW4oInJlc291cmNlcy9wYWdl
LXZpc2liaWxpdHktaWZyYW1lLW1vdmUtbmV3LXBhZ2UuaHRtbCIpOworICAgIHdpbmRvdzIuYWRk
RXZlbnRMaXN0ZW5lcigibG9hZCIsIHdpbmRvdzJMb2FkZWQsIGZhbHNlKTsKK30KKworZnVuY3Rp
b24gZmluaXNoVGVzdCgpIHsKKyAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7
CisgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLnJlc2V0UGFnZVZpc2liaWxpdHkoKTsKKyAg
ICB9CisgICAgZmluaXNoSlNUZXN0KCk7Cit9CisKK3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0
cnVlOworCis8L3NjcmlwdD4KKworPHNjcmlwdCBzcmM9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0
LXBvc3QuanMiPjwvc2NyaXB0PgorCis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9mYXN0L2V2ZW50cy9wYWdlLXZpc2liaWxpdHktaWZyYW1lLXByb3BhZ2F0aW9uLXRl
c3QtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvcGFnZS12aXNpYmlsaXR5
LWlmcmFtZS1wcm9wYWdhdGlvbi10ZXN0LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwLi45NWI3OWJhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
ZmFzdC9ldmVudHMvcGFnZS12aXNpYmlsaXR5LWlmcmFtZS1wcm9wYWdhdGlvbi10ZXN0LWV4cGVj
dGVkLnR4dApAQCAtMCwwICsxLDI3IEBACitUaGlzIHRlc3QgY2hlY2tzIHRoYXQgUGFnZSBWaXNp
YmlsaXR5IHN0YXRlIGV2ZW50cyBhcmUgcHJvcGFnYXRlZCB0byBjaGlsZCBmcmFtZXMuCisKK09u
IHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxv
d2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitNYWluIFBhZ2U6CitQQVNTIGRvY3VtZW50Lndl
YmtpdFZpc2liaWxpdHlTdGF0ZSBpcyAidmlzaWJsZSIKK1BBU1MgZG9jdW1lbnQud2Via2l0SXNW
aXNpYmxlIGlzIHRydWUKK0NoaWxkIEZyYW1lOgorUEFTUyBjaGlsZEZyYW1lLmNvbnRlbnREb2N1
bWVudC53ZWJraXRWaXNpYmlsaXR5U3RhdGUgaXMgInZpc2libGUiCitQQVNTIGNoaWxkRnJhbWUu
Y29udGVudERvY3VtZW50LndlYmtpdElzVmlzaWJsZSBpcyB0cnVlCitNYWluIFBhZ2U6CitQQVNT
IGRvY3VtZW50LndlYmtpdFZpc2liaWxpdHlTdGF0ZSBpcyAiaGlkZGVuIgorUEFTUyBkb2N1bWVu
dC53ZWJraXRJc1Zpc2libGUgaXMgZmFsc2UKK0NoaWxkIEZyYW1lOgorUEFTUyBjaGlsZEZyYW1l
LmNvbnRlbnREb2N1bWVudC53ZWJraXRWaXNpYmlsaXR5U3RhdGUgaXMgImhpZGRlbiIKK1BBU1Mg
Y2hpbGRGcmFtZS5jb250ZW50RG9jdW1lbnQud2Via2l0SXNWaXNpYmxlIGlzIGZhbHNlCitNYWlu
IFBhZ2U6CitQQVNTIGRvY3VtZW50LndlYmtpdFZpc2liaWxpdHlTdGF0ZSBpcyAidmlzaWJsZSIK
K1BBU1MgZG9jdW1lbnQud2Via2l0SXNWaXNpYmxlIGlzIHRydWUKK0NoaWxkIEZyYW1lOgorUEFT
UyBjaGlsZEZyYW1lLmNvbnRlbnREb2N1bWVudC53ZWJraXRWaXNpYmlsaXR5U3RhdGUgaXMgInZp
c2libGUiCitQQVNTIGNoaWxkRnJhbWUuY29udGVudERvY3VtZW50LndlYmtpdElzVmlzaWJsZSBp
cyB0cnVlCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUK
KwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvcGFnZS12aXNpYmlsaXR5LWlm
cmFtZS1wcm9wYWdhdGlvbi10ZXN0Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9wYWdl
LXZpc2liaWxpdHktaWZyYW1lLXByb3BhZ2F0aW9uLXRlc3QuaHRtbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwLi5hMDE2NTY3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvZmFzdC9ldmVudHMvcGFnZS12aXNpYmlsaXR5LWlmcmFtZS1wcm9wYWdhdGlvbi10ZXN0Lmh0
bWwKQEAgLTAsMCArMSwxMjUgQEAKKzxodG1sPgorPGJvZHk+CisKKzxwIGlkPSJkZXNjcmlwdGlv
biI+PC9wPgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+CisKKzxzY3JpcHQgc3JjPSIuLi9qcy9y
ZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorCis8c2NyaXB0PgorCitkZXNjcmlw
dGlvbigiVGhpcyB0ZXN0IGNoZWNrcyB0aGF0IFBhZ2UgVmlzaWJpbGl0eSBzdGF0ZSBldmVudHMg
YXJlIHByb3BhZ2F0ZWQgdG8gY2hpbGQgZnJhbWVzLiIpOworCit2YXIganNUZXN0SXNBc3luYyA9
IHRydWU7CisKK2Z1bmN0aW9uIG1ha2VQYWdlVmlzaWJsZSgpIHsKKyAgICBpZiAod2luZG93Lmxh
eW91dFRlc3RDb250cm9sbGVyKQorICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5zZXRQYWdl
VmlzaWJpbGl0eSgidmlzaWJsZSIpOworfQorCitmdW5jdGlvbiBtYWtlUGFnZUhpZGRlbigpIHsK
KyAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgICAgICBsYXlvdXRUZXN0
Q29udHJvbGxlci5zZXRQYWdlVmlzaWJpbGl0eSgiaGlkZGVuIik7Cit9CisKK2Z1bmN0aW9uIGNo
ZWNrSXNQYWdlVmlzaWJsZSgpIHsKKyAgICBkZWJ1ZygiTWFpbiBQYWdlOiIpOworICAgIHNob3Vs
ZEJlRXF1YWxUb1N0cmluZygiZG9jdW1lbnQud2Via2l0VmlzaWJpbGl0eVN0YXRlIiwgInZpc2li
bGUiKTsKKyAgICBzaG91bGRCZVRydWUoImRvY3VtZW50LndlYmtpdElzVmlzaWJsZSIpOworfQor
CitmdW5jdGlvbiBjaGVja0lzUGFnZUhpZGRlbigpIHsKKyAgICBkZWJ1ZygiTWFpbiBQYWdlOiIp
OworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygiZG9jdW1lbnQud2Via2l0VmlzaWJpbGl0eVN0
YXRlIiwgImhpZGRlbiIpOworICAgIHNob3VsZEJlRmFsc2UoImRvY3VtZW50LndlYmtpdElzVmlz
aWJsZSIpOworfQorCitmdW5jdGlvbiBjaGVja0lzQ2hpbGRGcmFtZVZpc2libGUoKSB7CisgICAg
ZGVidWcoIkNoaWxkIEZyYW1lOiIpOworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygiY2hpbGRG
cmFtZS5jb250ZW50RG9jdW1lbnQud2Via2l0VmlzaWJpbGl0eVN0YXRlIiwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgInZpc2libGUiKTsKKyAgICBzaG91bGRCZVRydWUoImNoaWxkRnJhbWUu
Y29udGVudERvY3VtZW50LndlYmtpdElzVmlzaWJsZSIpOworfQorCitmdW5jdGlvbiBjaGVja0lz
Q2hpbGRGcmFtZUhpZGRlbigpIHsKKyAgICBkZWJ1ZygiQ2hpbGQgRnJhbWU6Iik7CisgICAgc2hv
dWxkQmVFcXVhbFRvU3RyaW5nKCJjaGlsZEZyYW1lLmNvbnRlbnREb2N1bWVudC53ZWJraXRWaXNp
YmlsaXR5U3RhdGUiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAiaGlkZGVuIik7CisgICAg
c2hvdWxkQmVGYWxzZSgiY2hpbGRGcmFtZS5jb250ZW50RG9jdW1lbnQud2Via2l0SXNWaXNpYmxl
Iik7Cit9CisKKy8vIFdlIHdpbGwgdHJ5IHRvIGNoYW5nZSB0aGUgdmlzaWJpbGl0eSBzdGF0ZXMg
YXM6CisvLyAgMCAtIHZpc2libGUuIChJbml0aWFsIC0gaS5lLiBvbiBsb2FkKS4KKy8vICAxIC0g
aGlkZGVuCisvLyAgMiAtIHZpc2libGUKK3ZhciBudW1WaXNpYmlsaXR5Q2hhbmdlcyA9IDA7CisK
K3ZhciBjaGlsZEZyYW1lOworCitmdW5jdGlvbiBzdGFydFRlc3QoKSB7CisgICAgY2hpbGRGcmFt
ZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjaGlsZEZyYW1lIik7CisgICAgY2hpbGRGcmFt
ZS5jb250ZW50RG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigKKyAgICAgICAgIndlYmtpdHZpc2li
aWxpdHlzdGF0ZWNoYW5nZSIsIG9uQ2hpbGRGcmFtZVZpc2liaWxpdHlDaGFuZ2UsIGZhbHNlKTsK
KyAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJ3ZWJraXR2aXNpYmlsaXR5c3RhdGVjaGFu
Z2UiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25WaXNpYmlsaXR5Q2hhbmdlLCBm
YWxzZSk7CisKKyAgICBjaGVja0lzUGFnZVZpc2libGUoKTsKKyAgICBjaGVja0lzQ2hpbGRGcmFt
ZVZpc2libGUoKTsKKworICAgIG51bVZpc2liaWxpdHlDaGFuZ2VzKys7CisgICAgbWFrZVBhZ2VI
aWRkZW4oKTsKK30KKwordmFyIG51bUZpbmlzaGVzID0gMDsKK2Z1bmN0aW9uIGZpbmlzaFRlc3Qo
KSB7CisgICAgbnVtRmluaXNoZXMrKzsKKyAgICBpZiAobnVtRmluaXNoZXMgPCAyKSB7CisgICAg
ICByZXR1cm47CisgICAgfQorCisgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikg
eworICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5yZXNldFBhZ2VWaXNpYmlsaXR5KCk7Cisg
ICAgfQorICAgIGZpbmlzaEpTVGVzdCgpOworfQorCitmdW5jdGlvbiBvblZpc2liaWxpdHlDaGFu
Z2UoKSB7CisgICAgaWYgKG51bVZpc2liaWxpdHlDaGFuZ2VzID09IDEpIHsKKyAgICAgICAgY2hl
Y2tJc1BhZ2VIaWRkZW4oKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0gZWxzZSBpZiAobnVtVmlz
aWJpbGl0eUNoYW5nZXMgPT0gMikgeworICAgICAgICBjaGVja0lzUGFnZVZpc2libGUoKTsKKyAg
ICAgICAgZmluaXNoVGVzdCgpOworICAgICAgICByZXR1cm47CisgICAgfSBlbHNlIHsKKyAgICAg
ICAgdGVzdEZhaWxlZCgiVG9vIG1hbnkgdmlzaWJpbGl0eSB0cmFuc2l0aW9ucyIpOworICAgICAg
ICBmaW5pc2hUZXN0KCk7CisgICAgICAgIHJldHVybjsKKyAgICB9Cit9CisKK2Z1bmN0aW9uIG9u
Q2hpbGRGcmFtZVZpc2liaWxpdHlDaGFuZ2UoKSB7CisgICAgaWYgKG51bVZpc2liaWxpdHlDaGFu
Z2VzID09IDEpIHsKKyAgICAgICAgY2hlY2tJc0NoaWxkRnJhbWVIaWRkZW4oKTsKKyAgICAgICAg
bnVtVmlzaWJpbGl0eUNoYW5nZXMrKzsKKyAgICAgICAgbWFrZVBhZ2VWaXNpYmxlKCk7CisgICAg
ICAgIHJldHVybjsKKyAgICB9IGVsc2UgaWYgKG51bVZpc2liaWxpdHlDaGFuZ2VzID09IDIpIHsK
KyAgICAgICAgY2hlY2tJc0NoaWxkRnJhbWVWaXNpYmxlKCk7CisgICAgICAgIGZpbmlzaFRlc3Qo
KTsKKyAgICAgICAgcmV0dXJuOworICAgIH0gZWxzZSB7CisgICAgICAgIHRlc3RGYWlsZWQoIkNo
aWxkIEZyYW1lOiBUb28gbWFueSB2aXNpYmlsaXR5IHRyYW5zaXRpb25zIik7CisgICAgICAgIGZp
bmlzaFRlc3QoKTsKKyAgICB9Cit9CisKK3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOwor
Cis8L3NjcmlwdD4KKworPHNjcmlwdCBzcmM9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3Qu
anMiPjwvc2NyaXB0PgorCis8aWZyYW1lIGlkPSJjaGlsZEZyYW1lIiBvbmxvYWQ9InN0YXJ0VGVz
dCgpIj48L2lmcmFtZT4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2Zhc3QvZXZlbnRzL3BhZ2UtdmlzaWJpbGl0eS10cmFuc2l0aW9uLXRlc3QtZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvcGFnZS12aXNpYmlsaXR5LXRyYW5zaXRpb24tdGVz
dC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjVhOWI1
ZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3BhZ2UtdmlzaWJp
bGl0eS10cmFuc2l0aW9uLXRlc3QtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTcgQEAKK1RoaXMg
dGVzdCBjaGVja3MgdGhhdCBQYWdlIFZpc2liaWxpdHkgc3RhdGUgdmFsdWVzIGFyZSBjb3JyZWN0
IGFuZCB0aGUgZXZlbnQgY2hhbmdlcyBhcmUgZmlyZWQgY29ycmVjdGx5LgorCitPbiBzdWNjZXNz
LCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAi
VEVTVCBDT01QTEVURSIuCisKKworUEFTUyBkb2N1bWVudC53ZWJraXRWaXNpYmlsaXR5U3RhdGUg
aXMgInZpc2libGUiCitQQVNTIGRvY3VtZW50LndlYmtpdElzVmlzaWJsZSBpcyB0cnVlCitQQVNT
IGRvY3VtZW50LndlYmtpdFZpc2liaWxpdHlTdGF0ZSBpcyAiaGlkZGVuIgorUEFTUyBkb2N1bWVu
dC53ZWJraXRJc1Zpc2libGUgaXMgZmFsc2UKK1BBU1MgZG9jdW1lbnQud2Via2l0VmlzaWJpbGl0
eVN0YXRlIGlzICJoaWRkZW4iCitQQVNTIGRvY3VtZW50LndlYmtpdElzVmlzaWJsZSBpcyBmYWxz
ZQorUEFTUyBkb2N1bWVudC53ZWJraXRWaXNpYmlsaXR5U3RhdGUgaXMgInZpc2libGUiCitQQVNT
IGRvY3VtZW50LndlYmtpdElzVmlzaWJsZSBpcyB0cnVlCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNl
ZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFz
dC9ldmVudHMvcGFnZS12aXNpYmlsaXR5LXRyYW5zaXRpb24tdGVzdC5odG1sIGIvTGF5b3V0VGVz
dHMvZmFzdC9ldmVudHMvcGFnZS12aXNpYmlsaXR5LXRyYW5zaXRpb24tdGVzdC5odG1sCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQyYWJjYjAKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9wYWdlLXZpc2liaWxpdHktdHJhbnNpdGlvbi10ZXN0
Lmh0bWwKQEAgLTAsMCArMSw4OSBAQAorPGh0bWw+Cis8Ym9keSBvbmxvYWQ9J3N0YXJ0VGVzdCgp
Jz4KKworPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4K
KworPHNjcmlwdCBzcmM9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+
CisKKzxzY3JpcHQ+CisKK2Rlc2NyaXB0aW9uKCJUaGlzIHRlc3QgY2hlY2tzIHRoYXQgUGFnZSBW
aXNpYmlsaXR5IHN0YXRlIHZhbHVlcyBhcmUgY29ycmVjdCBhbmQgdGhlIGV2ZW50IGNoYW5nZXMg
YXJlIGZpcmVkIGNvcnJlY3RseS4iKTsKKwordmFyIGpzVGVzdElzQXN5bmMgPSB0cnVlOworCitm
dW5jdGlvbiBtYWtlUGFnZVZpc2libGUoKSB7CisgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29u
dHJvbGxlcikKKyAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuc2V0UGFnZVZpc2liaWxpdHko
InZpc2libGUiKTsKK30KKworZnVuY3Rpb24gbWFrZVBhZ2VIaWRkZW4oKSB7CisgICAgaWYgKHdp
bmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIu
c2V0UGFnZVZpc2liaWxpdHkoImhpZGRlbiIpOworfQorCitmdW5jdGlvbiBjaGVja0lzUGFnZVZp
c2libGUoKSB7CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJkb2N1bWVudC53ZWJraXRWaXNp
YmlsaXR5U3RhdGUiLCAidmlzaWJsZSIpOworICAgIHNob3VsZEJlVHJ1ZSgiZG9jdW1lbnQud2Vi
a2l0SXNWaXNpYmxlIik7Cit9CisKK2Z1bmN0aW9uIGNoZWNrSXNQYWdlSGlkZGVuKCkgeworICAg
IHNob3VsZEJlRXF1YWxUb1N0cmluZygiZG9jdW1lbnQud2Via2l0VmlzaWJpbGl0eVN0YXRlIiwg
ImhpZGRlbiIpOworICAgIHNob3VsZEJlRmFsc2UoImRvY3VtZW50LndlYmtpdElzVmlzaWJsZSIp
OworfQorCisvLyBXZSB3aWxsIHRyeSB0byBjaGFuZ2UgdGhlIHZpc2liaWxpdHkgc3RhdGVzIGFz
OgorLy8gIDAgLSB2aXNpYmxlLiAoSW5pdGlhbCAtIGkuZS4gb24gbG9hZCkuCisvLyAgMSAtIGhp
ZGRlbiAoc2hvdWxkIGZpcmUgZXZlbnQpLgorLy8gIDIgLSBoaWRkZW4gKG5vIGV2ZW50KS4KKy8v
ICAzIC0gdmlzaWJsZSAoc2hvdWxkIGZpcmUgZXZlbnQpLgordmFyIG51bVZpc2liaWxpdHlDaGFu
Z2VzID0gMDsKKworZnVuY3Rpb24gc3RhcnRUZXN0KCkgeworICAgIGRvY3VtZW50LmFkZEV2ZW50
TGlzdGVuZXIoCisgICAgICAgICJ3ZWJraXR2aXNpYmlsaXR5c3RhdGVjaGFuZ2UiLCBvblZpc2li
aWxpdHlDaGFuZ2UsIGZhbHNlKTsKKyAgICBjaGVja0lzUGFnZVZpc2libGUoKTsKKyAgICBudW1W
aXNpYmlsaXR5Q2hhbmdlcysrOworICAgIG1ha2VQYWdlSGlkZGVuKCk7Cit9CisKK2Z1bmN0aW9u
IGZpbmlzaFRlc3QoKSB7CisgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgewor
ICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5yZXNldFBhZ2VWaXNpYmlsaXR5KCk7CisgICAg
fQorICAgIGZpbmlzaEpTVGVzdCgpOworfQorCitmdW5jdGlvbiBvblZpc2liaWxpdHlDaGFuZ2Uo
KSB7CisgICAgaWYgKG51bVZpc2liaWxpdHlDaGFuZ2VzID09IDEpIHsKKyAgICAgICAgY2hlY2tJ
c1BhZ2VIaWRkZW4oKTsKKyAgICAgICAgbnVtVmlzaWJpbGl0eUNoYW5nZXMrKzsKKyAgICAgICAg
bWFrZVBhZ2VIaWRkZW4oKTsKKyAgICAgICAgY2hlY2tJc1BhZ2VIaWRkZW4oKTsKKyAgICAgICAg
bnVtVmlzaWJpbGl0eUNoYW5nZXMrKzsKKyAgICAgICAgbWFrZVBhZ2VWaXNpYmxlKCk7CisgICAg
ICAgIHJldHVybjsKKyAgICB9IGVsc2UgaWYgKG51bVZpc2liaWxpdHlDaGFuZ2VzID09IDIpIHsK
KyAgICAgICAgdGVzdEZhaWxlZCgiSW52YWxpZCBldmVudCBmaXJlZCBvbiBzYW1lIHN0YXRlIGNo
YW5nZS4iKTsKKyAgICAgICAgZmluaXNoVGVzdCgpOworICAgICAgICByZXR1cm47CisgICAgfSBl
bHNlIGlmIChudW1WaXNpYmlsaXR5Q2hhbmdlcyA9PSAzKSB7CisgICAgICAgIGNoZWNrSXNQYWdl
VmlzaWJsZSgpOworICAgICAgICBudW1WaXNpYmlsaXR5Q2hhbmdlcysrOworICAgICAgICBmaW5p
c2hUZXN0KCk7CisgICAgICAgIHJldHVybjsKKyAgICB9IGVsc2UgeworICAgICAgICB0ZXN0RmFp
bGVkKCJUb28gbWFueSB2aXNpYmlsaXR5IHRyYW5zaXRpb25zIik7CisgICAgICAgIGZpbmlzaFRl
c3QoKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KK30KKyAgICAgICAgCit2YXIgc3VjY2Vzc2Z1
bGx5UGFyc2VkID0gdHJ1ZTsKKworPC9zY3JpcHQ+CisKKzxzY3JpcHQgc3JjPSIuLi9qcy9yZXNv
dXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKworPC9ib2R5PgorPC9odG1sPgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvcmVzb3VyY2VzL3BhZ2UtdmlzaWJpbGl0
eS1pZnJhbWUtZGVsZXRlLXRlc3QtZnJhbWUuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRz
L3Jlc291cmNlcy9wYWdlLXZpc2liaWxpdHktaWZyYW1lLWRlbGV0ZS10ZXN0LWZyYW1lLmh0bWwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZmViYjk1NAotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3Jlc291cmNlcy9wYWdlLXZpc2liaWxpdHkt
aWZyYW1lLWRlbGV0ZS10ZXN0LWZyYW1lLmh0bWwKQEAgLTAsMCArMSw2IEBACis8aHRtbD4KKzxi
b2R5IG9ubG9hZD0icGFyZW50LnN0YXJ0VGVzdCgpIj4KKzxpZnJhbWUgaWQ9InN1YklmcmFtZTEi
IG9ubG9hZD0icGFyZW50LnBhcmVudC5zdGFydFRlc3QoKSI+PC9pZnJhbWU+Cis8aWZyYW1lIGlk
PSJzdWJJZnJhbWUyIiBvbmxvYWQ9InBhcmVudC5wYXJlbnQuc3RhcnRUZXN0KCkiPjwvaWZyYW1l
PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMv
cmVzb3VyY2VzL3BhZ2UtdmlzaWJpbGl0eS1pZnJhbWUtbW92ZS1uZXctcGFnZS5odG1sIGIvTGF5
b3V0VGVzdHMvZmFzdC9ldmVudHMvcmVzb3VyY2VzL3BhZ2UtdmlzaWJpbGl0eS1pZnJhbWUtbW92
ZS1uZXctcGFnZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjZkMjhj
Y2MKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9yZXNvdXJjZXMv
cGFnZS12aXNpYmlsaXR5LWlmcmFtZS1tb3ZlLW5ldy1wYWdlLmh0bWwKQEAgLTAsMCArMSw1IEBA
Cis8aHRtbD4KKzxib2R5PgorPGlmcmFtZSBpZD0iaWZyYW1lIj48L2lmcmFtZT4KKzwvYm9keT4K
KzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL3Rlc3Rf
ZXhwZWN0YXRpb25zLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL3Rlc3RfZXhw
ZWN0YXRpb25zLnR4dAppbmRleCA5ZTczZTZkLi4xN2I2ZDc3IDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS90ZXN0X2V4cGVjdGF0aW9ucy50eHQKKysrIGIvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vdGVzdF9leHBlY3RhdGlvbnMudHh0CkBAIC00MDM5LDMg
KzQwMzksOSBAQCBCVUdXSzYwMzUxIERFQlVHIDogaHR0cC90ZXN0cy9sb2NhbC9mb3JtZGF0YS9z
ZW5kLWZvcm0tZGF0YS13aXRoLXNsaWNlZC1maWxlLmh0bQogCiAvLyBUaGUgdGVzdCBpcyBhZGRl
ZCBhdCByODU5NjEuCiBCVUdXSzYwNDE0IFdJTiA6IHBsYXRmb3JtL3dpbi9wbHVnaW5zL3Zpc2li
aWxpdHktaGlkZGVuLmh0bWwgPSBDUkFTSAorCisvLyBQYWdlIHZpc2liaWxpdHkgQVBJIG5vdCB0
dXJuZWQgb24uCitCVUdXSzU0MTgxIDogZmFzdC9ldmVudHMvcGFnZS12aXNpYmlsaXR5LWlmcmFt
ZS1kZWxldGUtdGVzdC5odG1sID0gVElNRU9VVAorQlVHV0s1NDE4MSA6IGZhc3QvZXZlbnRzL3Bh
Z2UtdmlzaWJpbGl0eS1pZnJhbWUtbW92ZS10ZXN0Lmh0bWwgPSBUSU1FT1VUCitCVUdXSzU0MTgx
IDogZmFzdC9ldmVudHMvcGFnZS12aXNpYmlsaXR5LWlmcmFtZS1wcm9wYWdhdGlvbi10ZXN0Lmh0
bWwgPSBUSU1FT1VUCitCVUdXSzU0MTgxIDogZmFzdC9ldmVudHMvcGFnZS12aXNpYmlsaXR5LXRy
YW5zaXRpb24tdGVzdC5odG1sID0gVElNRU9VVApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vZ3RrL1NraXBwZWQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvU2tpcHBlZAppbmRl
eCA4MmZjZWZiLi4yYTdkZjk5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsv
U2tpcHBlZAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvU2tpcHBlZApAQCAtMTQwOCwz
ICsxNDA4LDkgQEAgdGFibGVzL21vemlsbGFfZXhwZWN0ZWRfZmFpbHVyZXMvYnVncy9idWc4NTAx
Ni5odG1sCiAjIEhUVFAgMjA0IChObyBDb250ZW50KSBzaG91bGQgYmUgaWdub3JlZAogIyBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjAyMDYKIGh0dHAvdGVzdHMvbmF2
aWdhdGlvbi9yZXNwb25zZTIwNC5odG1sCisKKyMgVGhpcyBwbGF0Zm9ybSBkb2VzIG5vdCBzdXBw
b3J0IHRoZSBQYWdlIFZpc2liaWxpdHkgQVBJLgorZmFzdC9ldmVudHMvcGFnZS12aXNpYmlsaXR5
LWlmcmFtZS1kZWxldGUtdGVzdC5odG1sCitmYXN0L2V2ZW50cy9wYWdlLXZpc2liaWxpdHktaWZy
YW1lLW1vdmUtdGVzdC5odG1sCitmYXN0L2V2ZW50cy9wYWdlLXZpc2liaWxpdHktaWZyYW1lLXBy
b3BhZ2F0aW9uLXRlc3QuaHRtbAorZmFzdC9ldmVudHMvcGFnZS12aXNpYmlsaXR5LXRyYW5zaXRp
b24tdGVzdC5odG1sCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvU2tpcHBl
ZCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9Ta2lwcGVkCmluZGV4IGMyOGVjNzUuLjM0ZjZm
Y2QgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9Ta2lwcGVkCisrKyBiL0xh
eW91dFRlc3RzL3BsYXRmb3JtL21hYy9Ta2lwcGVkCkBAIC0zNTQsMyArMzU0LDkgQEAgYW5pbWF0
aW9ucy9hbmltYXRpb24tYXBpLTEuaHRtbAogIyBIVFRQIDIwNCAoTm8gQ29udGVudCkgc2hvdWxk
IGJlIGlnbm9yZWQKICMgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTYw
MjA2CiBodHRwL3Rlc3RzL25hdmlnYXRpb24vcmVzcG9uc2UyMDQuaHRtbAorCisjIFRoaXMgcGxh
dGZvcm0gZG9lcyBub3Qgc3VwcG9ydCB0aGUgUGFnZSBWaXNpYmlsaXR5IEFQSS4KK2Zhc3QvZXZl
bnRzL3BhZ2UtdmlzaWJpbGl0eS1pZnJhbWUtZGVsZXRlLXRlc3QuaHRtbAorZmFzdC9ldmVudHMv
cGFnZS12aXNpYmlsaXR5LWlmcmFtZS1tb3ZlLXRlc3QuaHRtbAorZmFzdC9ldmVudHMvcGFnZS12
aXNpYmlsaXR5LWlmcmFtZS1wcm9wYWdhdGlvbi10ZXN0Lmh0bWwKK2Zhc3QvZXZlbnRzL3BhZ2Ut
dmlzaWJpbGl0eS10cmFuc2l0aW9uLXRlc3QuaHRtbApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vcXQvU2tpcHBlZCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0L1NraXBwZWQKaW5k
ZXggZTVkMmMyNy4uNDRkNzkwZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQv
U2tpcHBlZAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9Ta2lwcGVkCkBAIC0yNjk2LDMg
KzI2OTYsOSBAQCBodHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS9tZWRp
YS1zcmMtYmxvY2tlZC5odG1sCiAKICMgQW5pbWF0aW9uIEFQSSBpcyBkaXNhYmxlZCBieSBkZWZh
dWx0CiBhbmltYXRpb25zL2FuaW1hdGlvbi1hcGktMS5odG1sCisKKyMgVGhpcyBwbGF0Zm9ybSBk
b2VzIG5vdCBzdXBwb3J0IHRoZSBQYWdlIFZpc2liaWxpdHkgQVBJLgorZmFzdC9ldmVudHMvcGFn
ZS12aXNpYmlsaXR5LWlmcmFtZS1kZWxldGUtdGVzdC5odG1sCitmYXN0L2V2ZW50cy9wYWdlLXZp
c2liaWxpdHktaWZyYW1lLW1vdmUtdGVzdC5odG1sCitmYXN0L2V2ZW50cy9wYWdlLXZpc2liaWxp
dHktaWZyYW1lLXByb3BhZ2F0aW9uLXRlc3QuaHRtbAorZmFzdC9ldmVudHMvcGFnZS12aXNpYmls
aXR5LXRyYW5zaXRpb24tdGVzdC5odG1sCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS93aW4vU2tpcHBlZCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9Ta2lwcGVkCmluZGV4IDky
YTVhZDkuLjA0OGYyOGYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9Ta2lw
cGVkCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9Ta2lwcGVkCkBAIC0xMjgzLDMgKzEy
ODMsOSBAQCBhbmltYXRpb25zL2FuaW1hdGlvbi1hcGktMS5odG1sCiAjIEhUVFAgMjA0IChObyBD
b250ZW50KSBzaG91bGQgYmUgaWdub3JlZAogIyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9NjAyMDYKIGh0dHAvdGVzdHMvbmF2aWdhdGlvbi9yZXNwb25zZTIwNC5odG1s
CisKKyMgVGhpcyBwbGF0Zm9ybSBkb2VzIG5vdCBzdXBwb3J0IHRoZSBQYWdlIFZpc2liaWxpdHkg
QVBJLgorZmFzdC9ldmVudHMvcGFnZS12aXNpYmlsaXR5LWlmcmFtZS1kZWxldGUtdGVzdC5odG1s
CitmYXN0L2V2ZW50cy9wYWdlLXZpc2liaWxpdHktaWZyYW1lLW1vdmUtdGVzdC5odG1sCitmYXN0
L2V2ZW50cy9wYWdlLXZpc2liaWxpdHktaWZyYW1lLXByb3BhZ2F0aW9uLXRlc3QuaHRtbAorZmFz
dC9ldmVudHMvcGFnZS12aXNpYmlsaXR5LXRyYW5zaXRpb24tdGVzdC5odG1sCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlz
dHMudHh0CmluZGV4IDJjZmE1ZTkuLmMzN2FkMTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CkBAIC0x
MDEwLDYgKzEwMTAsNyBAQCBTRVQoV2ViQ29yZV9TT1VSQ0VTCiAgICAgcGFnZS9QYWdlR3JvdXAu
Y3BwCiAgICAgcGFnZS9QYWdlR3JvdXBMb2FkRGVmZXJyZXIuY3BwCiAgICAgcGFnZS9QYWdlU2Vy
aWFsaXplci5jcHAKKyAgICBwYWdlL1BhZ2VWaXNpYmlsaXR5U3RhdGUuY3BwCiAgICAgcGFnZS9Q
ZXJmb3JtYW5jZS5jcHAKICAgICBwYWdlL1BlcmZvcm1hbmNlTmF2aWdhdGlvbi5jcHAKICAgICBw
YWdlL1BlcmZvcm1hbmNlVGltaW5nLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hh
bmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGM1NzA0NzAuLmVkMTM5ZWQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0MSBAQAorMjAxMS0wNS0wOCAgU2hpc2hpciBBZ3Jhd2Fs
ICA8c2hpc2hpckBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgSW1wbGVtZW50IFBhZ2UgVmlzaWJpbGl0eSBBUEkuCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01NDE4MQorCisgICAgICAg
IFRlc3RzOiBmYXN0L2V2ZW50cy9wYWdlLXZpc2liaWxpdHktaWZyYW1lLWRlbGV0ZS10ZXN0Lmh0
bWwKKyAgICAgICAgICAgICAgIGZhc3QvZXZlbnRzL3BhZ2UtdmlzaWJpbGl0eS1pZnJhbWUtbW92
ZS10ZXN0Lmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QvZXZlbnRzL3BhZ2UtdmlzaWJpbGl0eS1p
ZnJhbWUtcHJvcGFnYXRpb24tdGVzdC5odG1sCisgICAgICAgICAgICAgICBmYXN0L2V2ZW50cy9w
YWdlLXZpc2liaWxpdHktdHJhbnNpdGlvbi10ZXN0Lmh0bWwKKworICAgICAgICAqIENNYWtlTGlz
dHMudHh0OgorICAgICAgICAqIEdOVW1ha2VmaWxlLmxpc3QuYW06CisgICAgICAgICogV2ViQ29y
ZS5neXBpOgorICAgICAgICAqIFdlYkNvcmUucHJvOgorICAgICAgICAqIFdlYkNvcmUudmNwcm9q
L1dlYkNvcmUudmNwcm9qOgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvajoKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RG9j
dW1lbnQ6OnZpc2liaWxpdHlTdGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6d2Vi
a2l0VmlzaWJpbGl0eVN0YXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50Ojp3ZWJraXRJ
c1Zpc2libGUpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OmRpc3BhdGNoVmlzaWJpbGl0
eVN0YXRlQ2hhbmdlRXZlbnQpOgorICAgICAgICAqIGRvbS9Eb2N1bWVudC5oOgorICAgICAgICAq
IGRvbS9Eb2N1bWVudC5pZGw6CisgICAgICAgICogZG9tL0V2ZW50TmFtZXMuaDoKKyAgICAgICAg
KiBwYWdlL0ZyYW1lLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lOjpkaXNwYXRjaFZpc2li
aWxpdHlTdGF0ZUNoYW5nZUV2ZW50KToKKyAgICAgICAgKiBwYWdlL0ZyYW1lLmg6CisgICAgICAg
ICogcGFnZS9QYWdlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2U6OlBhZ2UpOgorICAgICAg
ICAoV2ViQ29yZTo6UGFnZTo6c2V0VmlzaWJpbGl0eVN0YXRlKToKKyAgICAgICAgKFdlYkNvcmU6
OlBhZ2U6OnZpc2liaWxpdHlTdGF0ZSk6CisgICAgICAgICogcGFnZS9QYWdlLmg6CisgICAgICAg
ICogcGFnZS9QYWdlVmlzaWJpbGl0eVN0YXRlLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3Jl
OjpHZXRQYWdlVmlzaWJpbGl0eVN0YXRlU3RyaW5nKToKKyAgICAgICAgKiBwYWdlL1BhZ2VWaXNp
YmlsaXR5U3RhdGUuaDogQWRkZWQuCisKIDIwMTEtMDUtMDggIERhbiBCZXJuc3RlaW4gIDxtaXR6
QGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0gYi9Tb3VyY2UvV2ViQ29yZS9H
TlVtYWtlZmlsZS5saXN0LmFtCmluZGV4IDRkZDc2NTUuLjlmNzJhMjcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KKysrIGIvU291cmNlL1dlYkNvcmUvR05V
bWFrZWZpbGUubGlzdC5hbQpAQCAtMjIxOCw2ICsyMjE4LDggQEAgd2ViY29yZV9zb3VyY2VzICs9
IFwKIAlTb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VHcm91cExvYWREZWZlcnJlci5oIFwKIAlTb3Vy
Y2UvV2ViQ29yZS9wYWdlL1BhZ2VTZXJpYWxpemVyLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvcGFn
ZS9QYWdlU2VyaWFsaXplci5oIFwKKwlTb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VWaXNpYmlsaXR5
U3RhdGUuY3BwIFwKKwlTb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VWaXNpYmlsaXR5U3RhdGUuaCBc
CiAJU291cmNlL1dlYkNvcmUvcGFnZS9QZXJmb3JtYW5jZS5jcHAgXAogCVNvdXJjZS9XZWJDb3Jl
L3BhZ2UvUGVyZm9ybWFuY2UuaCBcCiAJU291cmNlL1dlYkNvcmUvcGFnZS9QZXJmb3JtYW5jZU5h
dmlnYXRpb24uY3BwIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaSBi
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQppbmRleCA5YWZmYzUyLi42YTdhOGZiIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKKysrIGIvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS5neXBpCkBAIC03MTAsNiArNzEwLDcgQEAKICAgICAgICAgICAgICdwYWdlL1BhZ2Uu
aCcsCiAgICAgICAgICAgICAncGFnZS9QYWdlR3JvdXAuaCcsCiAgICAgICAgICAgICAncGFnZS9Q
YWdlU2VyaWFsaXplci5oJywKKyAgICAgICAgICAgICdwYWdlL1BhZ2VWaXNpYmlsaXR5U3RhdGUu
aCcsCiAgICAgICAgICAgICAncGFnZS9QbHVnaW5IYWx0ZXJDbGllbnQuaCcsCiAgICAgICAgICAg
ICAncGFnZS9Qb3NpdGlvbkNhbGxiYWNrLmgnLAogICAgICAgICAgICAgJ3BhZ2UvUG9zaXRpb25F
cnJvci5oJywKQEAgLTM0MzMsNiArMzQzNCw3IEBACiAgICAgICAgICAgICAncGFnZS9QYWdlR3Jv
dXBMb2FkRGVmZXJyZXIuY3BwJywKICAgICAgICAgICAgICdwYWdlL1BhZ2VHcm91cExvYWREZWZl
cnJlci5oJywKICAgICAgICAgICAgICdwYWdlL1BhZ2VTZXJpYWxpemVyLmNwcCcsCisgICAgICAg
ICAgICAncGFnZS9QYWdlVmlzaWJpbGl0eVN0YXRlLmNwcCcsCiAgICAgICAgICAgICAncGFnZS9Q
ZXJmb3JtYW5jZS5jcHAnLAogICAgICAgICAgICAgJ3BhZ2UvUGVyZm9ybWFuY2UuaCcsCiAgICAg
ICAgICAgICAncGFnZS9QZXJmb3JtYW5jZU5hdmlnYXRpb24uY3BwJywKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUucHJvIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5wcm8KaW5k
ZXggZDZmYjI1MS4uMGEwMzBiYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5w
cm8KKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5wcm8KQEAgLTkyMCw2ICs5MjAsNyBAQCBT
T1VSQ0VTICs9IFwKICAgICBwYWdlL1BhZ2VHcm91cC5jcHAgXAogICAgIHBhZ2UvUGFnZUdyb3Vw
TG9hZERlZmVycmVyLmNwcCBcCiAgICAgcGFnZS9QYWdlU2VyaWFsaXplci5jcHAgXAorICAgIHBh
Z2UvUGFnZVZpc2liaWxpdHlTdGF0ZS5jcHAgXAogICAgIHBhZ2UvUGVyZm9ybWFuY2UuY3BwIFwK
ICAgICBwYWdlL1BlcmZvcm1hbmNlTmF2aWdhdGlvbi5jcHAgXAogICAgIHBhZ2UvUGVyZm9ybWFu
Y2VUaW1pbmcuY3BwIFwKQEAgLTE4NjEsNiArMTg2Miw3IEBAIEhFQURFUlMgKz0gXAogICAgIHBh
Z2UvUGFnZUdyb3VwTG9hZERlZmVycmVyLmggXAogICAgIHBhZ2UvUGFnZS5oIFwKICAgICBwYWdl
L1BhZ2VTZXJpYWxpemVyLmggXAorICAgIHBhZ2UvUGFnZVZpc2liaWxpdHlTdGF0ZS5oIFwKICAg
ICBwYWdlL1BsdWdpbkhhbHRlci5oIFwKICAgICBwYWdlL1BsdWdpbkhhbHRlckNsaWVudC5oIFwK
ICAgICBwYWdlL1ByaW50Q29udGV4dC5oIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3By
b2ovV2ViQ29yZS52Y3Byb2oKaW5kZXggYzMzZjhjMi4uNDlkZTRmZSAxMDA3NTUKLS0tIGEvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKKysrIGIvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKQEAgLTI0NzUwLDYgKzI0NzUwLDEy
IEBACiAJCQkJPgogCQkJPC9GaWxlPgogCQkJPEZpbGUKKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHBh
Z2VcUGFnZVZpc2liaWxpdHlTdGF0ZS5jcHAiCisJCQkJPgorCQkJPEZpbGUKKwkJCQlSZWxhdGl2
ZVBhdGg9Ii4uXHBhZ2VcUGFnZVZpc2liaWxpdHlTdGF0ZS5oIgorCQkJCT4KKwkJCTxGaWxlCiAJ
CQkJUmVsYXRpdmVQYXRoPSIuLlxwYWdlXFBlcmZvcm1hbmNlLmNwcCIKIAkJCQk+CiAJCQk8L0Zp
bGU+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oKaW5kZXggMTJmZDc5Yi4uZWM3NTk2ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNTkyNiw2ICs1OTI2LDggQEAKIAkJRkU4
MERBNjYwRTlDNDcwMzAwMEQ2Rjc1IC8qIEpTR2VvcG9zaXRpb24uaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEZFODBEQTYyMEU5QzQ3MDMwMDBENkY3NSAv
KiBKU0dlb3Bvc2l0aW9uLmggKi87IH07CiAJCUZFODBEQTcxMEU5QzQ3MkYwMDBENkY3NSAvKiBK
U1Bvc2l0aW9uRXJyb3IuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gRkU4MERBNkQwRTlDNDcyRjAwMEQ2Rjc1IC8qIEpTUG9zaXRpb25FcnJvci5jcHAg
Ki87IH07CiAJCUZFODBEQTcyMEU5QzQ3MkYwMDBENkY3NSAvKiBKU1Bvc2l0aW9uRXJyb3IuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEZFODBEQTZFMEU5
QzQ3MkYwMDBENkY3NSAvKiBKU1Bvc2l0aW9uRXJyb3IuaCAqLzsgfTsKKwkJRkZENUI5N0ExMzVD
Qzk3ODAwRDVFOTJBIC8qIFBhZ2VWaXNpYmlsaXR5U3RhdGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRkZENUI5NzcxMzVDQzk3ODAwRDVFOTJBIC8q
IFBhZ2VWaXNpYmlsaXR5U3RhdGUuY3BwICovOyB9OworCQlGRkQ1Qjk3QjEzNUNDOTc4MDBENUU5
MkEgLyogUGFnZVZpc2liaWxpdHlTdGF0ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gRkZENUI5NzgxMzVDQzk3ODAwRDVFOTJBIC8qIFBhZ2VWaXNpYmls
aXR5U3RhdGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OwogLyogRW5kIFBCWEJ1aWxkRmlsZSBzZWN0aW9uICovCiAKIC8qIEJlZ2luIFBCWENvbnRhaW5l
ckl0ZW1Qcm94eSBzZWN0aW9uICovCkBAIC0xMjQ0Nyw2ICsxMjQ0OSw4IEBACiAJCUZFODBEQTYy
MEU5QzQ3MDMwMDBENkY3NSAvKiBKU0dlb3Bvc2l0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IEpTR2VvcG9zaXRpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJRkU4MERBNkQwRTlDNDcyRjAwMEQ2Rjc1IC8qIEpTUG9zaXRpb25FcnJvci5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1Bvc2l0aW9uRXJyb3IuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGRTgwREE2RTBFOUM0NzJGMDAwRDZGNzUgLyogSlNQ
b3NpdGlvbkVycm9yLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTUG9zaXRp
b25FcnJvci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlGRkQ1Qjk3NzEzNUNDOTc4
MDBENUU5MkEgLyogUGFnZVZpc2liaWxpdHlTdGF0ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBQYWdlVmlzaWJpbGl0eVN0YXRlLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJRkZENUI5NzgxMzVDQzk3ODAwRDVFOTJBIC8qIFBhZ2VWaXNpYmlsaXR5
U3RhdGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUGFnZVZpc2liaWxpdHlT
dGF0ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogLyogRW5kIFBCWEZpbGVSZWZlcmVu
Y2Ugc2VjdGlvbiAqLwogCiAvKiBCZWdpbiBQQlhGcmFtZXdvcmtzQnVpbGRQaGFzZSBzZWN0aW9u
ICovCkBAIC0xNDE3Miw2ICsxNDE3Niw4IEBACiAJCQkJN0E2NzRCREEwRjlFQkY0RTAwNkNGMDk5
IC8qIFBhZ2VHcm91cExvYWREZWZlcnJlci5oICovLAogCQkJCTM3MUU2NUNEMTM2NjFFRUQwMEJF
RURCMCAvKiBQYWdlU2VyaWFsaXplci5jcHAgKi8sCiAJCQkJMzcxRTY1Q0IxMzY2MUVEQzAwQkVF
REIwIC8qIFBhZ2VTZXJpYWxpemVyLmggKi8sCisJCQkJRkZENUI5NzcxMzVDQzk3ODAwRDVFOTJB
IC8qIFBhZ2VWaXNpYmlsaXR5U3RhdGUuY3BwICovLAorCQkJCUZGRDVCOTc4MTM1Q0M5NzgwMEQ1
RTkyQSAvKiBQYWdlVmlzaWJpbGl0eVN0YXRlLmggKi8sCiAJCQkJOEE4NDREMDExMUQzQzE4RTAw
MTQwNjVDIC8qIFBlcmZvcm1hbmNlLmNwcCAqLywKIAkJCQk4QTg0NEQwMjExRDNDMThFMDAxNDA2
NUMgLyogUGVyZm9ybWFuY2UuaCAqLywKIAkJCQk4QTg0NEQwMzExRDNDMThFMDAxNDA2NUMgLyog
UGVyZm9ybWFuY2UuaWRsICovLApAQCAtMjE4NzUsNiArMjE4ODEsNyBAQAogCQkJCUYzNDc0MkU1
MTM0MzYzM0MwMDUzMUJDMiAvKiBQYWdlU2NyaXB0RGVidWdTZXJ2ZXIuaCBpbiBIZWFkZXJzICov
LAogCQkJCTM3MUU2NUNDMTM2NjFFREMwMEJFRURCMCAvKiBQYWdlU2VyaWFsaXplci5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJRTEyODRBRTExMDQ0N0Q0NTAwRUFFQjUyIC8qIFBhZ2VUcmFuc2l0aW9u
RXZlbnQuaCBpbiBIZWFkZXJzICovLAorCQkJCUZGRDVCOTdCMTM1Q0M5NzgwMEQ1RTkyQSAvKiBQ
YWdlVmlzaWJpbGl0eVN0YXRlLmggaW4gSGVhZGVycyAqLywKIAkJCQk1MUUxRUNDMzBDOTFDOTA0
MDBEQzI1NUIgLyogUGFnZVVSTFJlY29yZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDg4NTA2N0Yx
MURBMDQ1QjAwMTgyQjk4IC8qIFBhaW50SW5mby5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDg4NTA2
ODAxMURBMDQ1QjAwMTgyQjk4IC8qIFBhaW50UGhhc2UuaCBpbiBIZWFkZXJzICovLApAQCAtMjQ3
NDIsNiArMjQ3NDksNyBAQAogCQkJCTM3MUU2NUNFMTM2NjFFRUQwMEJFRURCMCAvKiBQYWdlU2Vy
aWFsaXplci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlFMTI4NEFFQTEwNDQ3REVFMDBFQUVCNTIg
LyogUGFnZVRyYW5zaXRpb25FdmVudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1MUUxRUNDMjBD
OTFDOTA0MDBEQzI1NUIgLyogUGFnZVVSTFJlY29yZC5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlG
RkQ1Qjk3QTEzNUNDOTc4MDBENUU5MkEgLyogUGFnZVZpc2liaWxpdHlTdGF0ZS5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQlGRDMxNjBBMjEyQjAyNkY3MDBDMUEzNTkgLyogUGFubmVyLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCUY1NUIzREM5MTI1MUYxMkQwMDNFRjI2OSAvKiBQYXNzd29yZElucHV0
VHlwZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk0QjI3MDk4MzBBRjJFNUUwMDA2NTEyN0YgLyog
UGFzdGVib2FyZE1hYy5tbSBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvZG9tL0RvY3VtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKaW5k
ZXggYWUwNWEzOC4uMjlmYTJlMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3Vt
ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCkBAIC0xMzU0LDYg
KzEzNTQsMzQgQEAgdm9pZCBEb2N1bWVudDo6cmVtb3ZlVGl0bGUoRWxlbWVudCogdGl0bGVFbGVt
ZW50KQogICAgICAgICB1cGRhdGVUaXRsZShTdHJpbmdXaXRoRGlyZWN0aW9uKCkpOwogfQogCisj
aWYgRU5BQkxFKFBBR0VfVklTSUJJTElUWV9BUEkpCitQYWdlVmlzaWJpbGl0eVN0YXRlIERvY3Vt
ZW50Ojp2aXNpYmlsaXR5U3RhdGUoKSBjb25zdAoreworICAgIC8vIFRoZSB2aXNpYmlsaXR5IG9m
IHRoZSBkb2N1bWVudCBpcyBpbmhlcml0ZWQgZnJvbSB0aGUgdmlzaWJpbGl0eSBvZiB0aGUKKyAg
ICAvLyBwYWdlLiBJZiB0aGVyZSBpcyBubyBwYWdlIGFzc29jaWF0ZWQgd2l0aCB0aGUgZG9jdW1l
bnQsIHdlIHdpbGwgYXNzdW1lCisgICAgLy8gdGhhdCB0aGUgcGFnZSBpcyB2aXNpYmxlIGkuZS4g
aW52aXNpYmlsaXR5IGhhcyB0byBiZSBleHBsaWNpdGx5CisgICAgLy8gc3BlY2lmaWVkIGJ5IHRo
ZSBlbWJlZGRlci4KKyAgICBpZiAoIW1fZnJhbWUgfHwgIW1fZnJhbWUtPnBhZ2UoKSkKKyAgICAg
ICAgcmV0dXJuIFBhZ2VWaXNpYmlsaXR5U3RhdGVWaXNpYmxlOworICAgIHJldHVybiBtX2ZyYW1l
LT5wYWdlKCktPnZpc2liaWxpdHlTdGF0ZSgpOworfQorCitTdHJpbmcgRG9jdW1lbnQ6OndlYmtp
dFZpc2liaWxpdHlTdGF0ZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIEdldFBhZ2VWaXNpYmlsaXR5
U3RhdGVTdHJpbmcodmlzaWJpbGl0eVN0YXRlKCkpOworfQorCitib29sIERvY3VtZW50Ojp3ZWJr
aXRJc1Zpc2libGUoKSBjb25zdAoreworICAgIHJldHVybiB2aXNpYmlsaXR5U3RhdGUoKSA9PSBQ
YWdlVmlzaWJpbGl0eVN0YXRlVmlzaWJsZTsKK30KKwordm9pZCBEb2N1bWVudDo6ZGlzcGF0Y2hW
aXNpYmlsaXR5U3RhdGVDaGFuZ2VFdmVudCgpCit7CisgICAgZGlzcGF0Y2hFdmVudChFdmVudDo6
Y3JlYXRlKGV2ZW50TmFtZXMoKS53ZWJraXR2aXNpYmlsaXR5c3RhdGVjaGFuZ2VFdmVudCwgZmFs
c2UsIGZhbHNlKSk7Cit9CisjZW5kaWYKKwogU3RyaW5nIERvY3VtZW50Ojpub2RlTmFtZSgpIGNv
bnN0CiB7CiAgICAgcmV0dXJuICIjZG9jdW1lbnQiOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvZG9tL0RvY3VtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAppbmRleCAy
MzE1ZTc5Li43MWI3YWY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaApAQCAtMzQsNiArMzQsNyBAQAog
I2luY2x1ZGUgIkRPTVRpbWVTdGFtcC5oIgogI2luY2x1ZGUgIkRvY3VtZW50VGltaW5nLmgiCiAj
aW5jbHVkZSAiSWNvblVSTC5oIgorI2luY2x1ZGUgIlBhZ2VWaXNpYmlsaXR5U3RhdGUuaCIKICNp
bmNsdWRlICJRdWFsaWZpZWROYW1lLmgiCiAjaW5jbHVkZSAiU2NyaXB0RXhlY3V0aW9uQ29udGV4
dC5oIgogI2luY2x1ZGUgIlN0cmluZ1dpdGhEaXJlY3Rpb24uaCIKQEAgLTMwNCw2ICszMDUsOSBA
QCBwdWJsaWM6CiAjaWYgRU5BQkxFKEZVTExTQ1JFRU5fQVBJKQogICAgIERFRklORV9BVFRSSUJV
VEVfRVZFTlRfTElTVEVORVIod2Via2l0ZnVsbHNjcmVlbmNoYW5nZSk7CiAjZW5kaWYKKyNpZiBF
TkFCTEUoUEFHRV9WSVNJQklMSVRZX0FQSSkKKyAgICBERUZJTkVfQVRUUklCVVRFX0VWRU5UX0xJ
U1RFTkVSKHdlYmtpdHZpc2liaWxpdHlzdGF0ZWNoYW5nZSk7CisjZW5kaWYKIAogICAgIFZpZXdw
b3J0QXJndW1lbnRzIHZpZXdwb3J0QXJndW1lbnRzKCkgY29uc3QgeyByZXR1cm4gbV92aWV3cG9y
dEFyZ3VtZW50czsgfQogCkBAIC0zNzksNiArMzgzLDEyIEBAIHB1YmxpYzoKIAogICAgIHZpcnR1
YWwgS1VSTCBiYXNlVVJJKCkgY29uc3Q7CiAKKyNpZiBFTkFCTEUoUEFHRV9WSVNJQklMSVRZX0FQ
SSkKKyAgICBTdHJpbmcgd2Via2l0VmlzaWJpbGl0eVN0YXRlKCkgY29uc3Q7CisgICAgYm9vbCB3
ZWJraXRJc1Zpc2libGUoKSBjb25zdDsKKyAgICB2b2lkIGRpc3BhdGNoVmlzaWJpbGl0eVN0YXRl
Q2hhbmdlRXZlbnQoKTsKKyNlbmRpZgorCiAgICAgUGFzc1JlZlB0cjxOb2RlPiBhZG9wdE5vZGUo
UGFzc1JlZlB0cjxOb2RlPiBzb3VyY2UsIEV4Y2VwdGlvbkNvZGUmKTsKIAogICAgIFBhc3NSZWZQ
dHI8SFRNTENvbGxlY3Rpb24+IGltYWdlcygpOwpAQCAtMTEzMiw2ICsxMTQyLDEwIEBAIHByaXZh
dGU6CiAKICAgICB2b2lkIGxvYWRFdmVudERlbGF5VGltZXJGaXJlZChUaW1lcjxEb2N1bWVudD4q
KTsKIAorI2lmIEVOQUJMRShQQUdFX1ZJU0lCSUxJVFlfQVBJKQorICAgIFBhZ2VWaXNpYmlsaXR5
U3RhdGUgdmlzaWJpbGl0eVN0YXRlKCkgY29uc3Q7CisjZW5kaWYKKwogICAgIGludCBtX2d1YXJk
UmVmQ291bnQ7CiAKICAgICBPd25QdHI8Q1NTU3R5bGVTZWxlY3Rvcj4gbV9zdHlsZVNlbGVjdG9y
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmlkbCBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9Eb2N1bWVudC5pZGwKaW5kZXggNWNmYWIyNC4uODlhZTY1ZSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9k
b20vRG9jdW1lbnQuaWRsCkBAIC0zMzQsNiArMzM0LDEwIEBAIG1vZHVsZSBjb3JlIHsKICAgICAg
ICAgYm9vbGVhbiBpc0hUTUxEb2N1bWVudCgpOwogI2VuZGlmCiAKKyAgICAgICAgLy8gUGFnZSB2
aXNpYmlsaXR5IEFQSS4KKyAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFtDb25kaXRpb25hbD1Q
QUdFX1ZJU0lCSUxJVFlfQVBJXSBET01TdHJpbmcgd2Via2l0VmlzaWJpbGl0eVN0YXRlOworICAg
ICAgICByZWFkb25seSBhdHRyaWJ1dGUgW0NvbmRpdGlvbmFsPVBBR0VfVklTSUJJTElUWV9BUEld
IGJvb2xlYW4gd2Via2l0SXNWaXNpYmxlOworCiAgICAgfTsKIAogfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvZG9tL0V2ZW50TmFtZXMuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudE5h
bWVzLmgKaW5kZXggZWNlMmEwOC4uOTZmMDM4MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
ZG9tL0V2ZW50TmFtZXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnROYW1lcy5oCkBA
IC0xMDYsNiArMTA2LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIG1hY3JvKHVubG9hZCkg
XAogICAgIG1hY3JvKHVwZGF0ZXJlYWR5KSBcCiAgICAgbWFjcm8odmVyc2lvbmNoYW5nZSkgXAor
ICAgIG1hY3JvKHdlYmtpdHZpc2liaWxpdHlzdGF0ZWNoYW5nZSkgXAogICAgIG1hY3JvKHdyaXRl
KSBcCiAgICAgbWFjcm8od3JpdGVlbmQpIFwKICAgICBtYWNybyh3cml0ZXN0YXJ0KSBcCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvRnJhbWUuY3BwCmluZGV4IGFmNDQwZGMuLjNhOGQzYjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvRnJhbWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWUuY3Bw
CkBAIC03MTgsNiArNzE4LDE2IEBAIHZvaWQgRnJhbWU6OnNldERPTVdpbmRvdyhET01XaW5kb3cq
IGRvbVdpbmRvdykKICAgICBtX2RvbVdpbmRvdyA9IGRvbVdpbmRvdzsKIH0KIAorI2lmIEVOQUJM
RShQQUdFX1ZJU0lCSUxJVFlfQVBJKQordm9pZCBGcmFtZTo6ZGlzcGF0Y2hWaXNpYmlsaXR5U3Rh
dGVDaGFuZ2VFdmVudCgpCit7CisgICAgaWYgKG1fZG9jKQorICAgICAgICBtX2RvYy0+ZGlzcGF0
Y2hWaXNpYmlsaXR5U3RhdGVDaGFuZ2VFdmVudCgpOworICAgIGZvciAoRnJhbWUqIGNoaWxkID0g
dHJlZSgpLT5maXJzdENoaWxkKCk7IGNoaWxkOyBjaGlsZCA9IGNoaWxkLT50cmVlKCktPm5leHRT
aWJsaW5nKCkpCisgICAgICAgIGNoaWxkLT5kaXNwYXRjaFZpc2liaWxpdHlTdGF0ZUNoYW5nZUV2
ZW50KCk7Cit9CisjZW5kaWYKKwogRE9NV2luZG93KiBGcmFtZTo6ZG9tV2luZG93KCkgY29uc3QK
IHsKICAgICBpZiAoIW1fZG9tV2luZG93KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9GcmFtZS5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZS5oCmluZGV4IGJlZDM0MTEuLjdk
YTljNDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWUuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL0ZyYW1lLmgKQEAgLTExOSw2ICsxMTksMTAgQEAgbmFtZXNwYWNlIFdl
YkNvcmUgewogCiAgICAgICAgIHZvaWQgdHJhbnNmZXJDaGlsZEZyYW1lVG9OZXdEb2N1bWVudCgp
OwogCisjaWYgRU5BQkxFKFBBR0VfVklTSUJJTElUWV9BUEkpCisgICAgICAgIHZvaWQgZGlzcGF0
Y2hWaXNpYmlsaXR5U3RhdGVDaGFuZ2VFdmVudCgpOworI2VuZGlmCisKICAgICAvLyA9PT09PT09
PSBBbGwgcHVibGljIGZ1bmN0aW9ucyBiZWxvdyB0aGlzIHBvaW50IGFyZSBjYW5kaWRhdGVzIHRv
IG1vdmUgb3V0IG9mIEZyYW1lIGludG8gYW5vdGhlciBjbGFzcy4gPT09PT09PT0KIAogICAgICAg
ICBib29sIGlzRGlzY29ubmVjdGVkKCkgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL1BhZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcAppbmRleCA4ZTQ4
OGZiLi4wNWUzNzFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAKQEAgLTE2Myw2ICsxNjMsOSBAQCBQYWdl
OjpQYWdlKGNvbnN0IFBhZ2VDbGllbnRzJiBwYWdlQ2xpZW50cykKICAgICAsIG1fdmlld01vZGUo
Vmlld01vZGVXaW5kb3dlZCkKICAgICAsIG1fbWluaW11bVRpbWVySW50ZXJ2YWwoU2V0dGluZ3M6
OmRlZmF1bHRNaW5ET01UaW1lckludGVydmFsKCkpCiAgICAgLCBtX2lzRWRpdGFibGUoZmFsc2Up
CisjaWYgRU5BQkxFKFBBR0VfVklTSUJJTElUWV9BUEkpCisgICAgLCBtX3Zpc2liaWxpdHlTdGF0
ZShQYWdlVmlzaWJpbGl0eVN0YXRlVmlzaWJsZSkKKyNlbmRpZgogewogICAgIGlmICghYWxsUGFn
ZXMpIHsKICAgICAgICAgYWxsUGFnZXMgPSBuZXcgSGFzaFNldDxQYWdlKj47CkBAIC05MzQsNiAr
OTM3LDIzIEBAIHZvaWQgUGFnZTo6Y2hlY2tGcmFtZUNvdW50Q29uc2lzdGVuY3koKSBjb25zdAog
fQogI2VuZGlmCiAKKyNpZiBFTkFCTEUoUEFHRV9WSVNJQklMSVRZX0FQSSkKK3ZvaWQgUGFnZTo6
c2V0VmlzaWJpbGl0eVN0YXRlKFBhZ2VWaXNpYmlsaXR5U3RhdGUgdmlzaWJpbGl0eVN0YXRlLCBi
b29sIGlzSW5pdGlhbFN0YXRlKQoreworICAgIGlmIChtX3Zpc2liaWxpdHlTdGF0ZSA9PSB2aXNp
YmlsaXR5U3RhdGUpCisgICAgICAgIHJldHVybjsKKyAgICBtX3Zpc2liaWxpdHlTdGF0ZSA9IHZp
c2liaWxpdHlTdGF0ZTsKKworICAgIGlmICghaXNJbml0aWFsU3RhdGUgJiYgbV9tYWluRnJhbWUp
CisgICAgICAgIG1fbWFpbkZyYW1lLT5kaXNwYXRjaFZpc2liaWxpdHlTdGF0ZUNoYW5nZUV2ZW50
KCk7Cit9CisKK1BhZ2VWaXNpYmlsaXR5U3RhdGUgUGFnZTo6dmlzaWJpbGl0eVN0YXRlKCkgY29u
c3QKK3sKKyAgICByZXR1cm4gbV92aXNpYmlsaXR5U3RhdGU7Cit9CisjZW5kaWYKKwogUGFnZTo6
UGFnZUNsaWVudHM6OlBhZ2VDbGllbnRzKCkKICAgICA6IGNocm9tZUNsaWVudCgwKQogICAgICwg
Y29udGV4dE1lbnVDbGllbnQoMCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFn
ZS5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmgKaW5kZXggNTg0Y2M3ZS4uOWY2MjQzMiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9QYWdlLmgKQEAgLTIzLDYgKzIzLDcgQEAKIAogI2luY2x1ZGUgIkZyYW1lTG9hZGVy
VHlwZXMuaCIKICNpbmNsdWRlICJGaW5kT3B0aW9ucy5oIgorI2luY2x1ZGUgIlBhZ2VWaXNpYmls
aXR5U3RhdGUuaCIKICNpbmNsdWRlICJQbGF0Zm9ybVN0cmluZy5oIgogI2luY2x1ZGUgIlZpZXdw
b3J0QXJndW1lbnRzLmgiCiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KQEAgLTMwMCw2ICszMDEs
MTEgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICB2b2lkIHNldEVkaXRhYmxlKGJvb2wg
aXNFZGl0YWJsZSkgeyBtX2lzRWRpdGFibGUgPSBpc0VkaXRhYmxlOyB9CiAgICAgICAgIGJvb2wg
aXNFZGl0YWJsZSgpIHsgcmV0dXJuIG1faXNFZGl0YWJsZTsgfQogCisjaWYgRU5BQkxFKFBBR0Vf
VklTSUJJTElUWV9BUEkpCisgICAgICAgIFBhZ2VWaXNpYmlsaXR5U3RhdGUgdmlzaWJpbGl0eVN0
YXRlKCkgY29uc3Q7CisgICAgICAgIHZvaWQgc2V0VmlzaWJpbGl0eVN0YXRlKFBhZ2VWaXNpYmls
aXR5U3RhdGUsIGJvb2wpOworI2VuZGlmCisKICAgICBwcml2YXRlOgogICAgICAgICB2b2lkIGlu
aXRHcm91cCgpOwogCkBAIC00MDUsNiArNDExLDEwIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAg
ICAgICAgT3duUHRyPFNjcm9sbGFibGVBcmVhU2V0PiBtX3Njcm9sbGFibGVBcmVhU2V0OwogCiAg
ICAgICAgIGJvb2wgbV9pc0VkaXRhYmxlOworCisjaWYgRU5BQkxFKFBBR0VfVklTSUJJTElUWV9B
UEkpCisgICAgICAgIFBhZ2VWaXNpYmlsaXR5U3RhdGUgbV92aXNpYmlsaXR5U3RhdGU7CisjZW5k
aWYKICAgICB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL1BhZ2VWaXNpYmlsaXR5U3RhdGUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9QYWdlVmlzaWJpbGl0eVN0YXRlLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwLi5mZTE4ZGZhCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdl
VmlzaWJpbGl0eVN0YXRlLmNwcApAQCAtMCwwICsxLDU2IEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
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
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgor
I2luY2x1ZGUgIlBhZ2VWaXNpYmlsaXR5U3RhdGUuaCIKKworI2lmIEVOQUJMRShQQUdFX1ZJU0lC
SUxJVFlfQVBJKQorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1N0cmluZyBHZXRQYWdlVmlzaWJp
bGl0eVN0YXRlU3RyaW5nKFBhZ2VWaXNpYmlsaXR5U3RhdGUgc3RhdGUpCit7CisgICAgREVGSU5F
X1NUQVRJQ19MT0NBTChjb25zdCBTdHJpbmcsIHZpc2libGUsICgidmlzaWJsZSIpKTsKKyAgICBE
RUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IFN0cmluZywgaGlkZGVuLCAoImhpZGRlbiIpKTsKKwor
ICAgIHN3aXRjaCAoc3RhdGUpIHsKKyAgICBjYXNlIFBhZ2VWaXNpYmlsaXR5U3RhdGVWaXNpYmxl
OgorICAgICAgICByZXR1cm4gdmlzaWJsZTsKKyAgICBjYXNlIFBhZ2VWaXNpYmlsaXR5U3RhdGVI
aWRkZW46CisgICAgICAgIHJldHVybiBoaWRkZW47CisgICAgfQorCisgICAgQVNTRVJUX05PVF9S
RUFDSEVEKCk7CisgICAgcmV0dXJuIFN0cmluZygpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCisKKyNlbmRpZiAvLyBpZiBFTkFCTEUoUEFHRV9WSVNJQklMSVRZX0FQSSkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZVZpc2liaWxpdHlTdGF0ZS5oIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9QYWdlVmlzaWJpbGl0eVN0YXRlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMC4uYTdkNzAyMQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvUGFnZVZpc2liaWxpdHlTdGF0ZS5oCkBAIC0wLDAgKzEsNTEgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9u
LgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVz
IG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90
ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZp
YyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElT
IiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJV
VE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICog
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQK
KyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFBhZ2VWaXNp
YmlsaXR5U3RhdGVfaAorI2RlZmluZSBQYWdlVmlzaWJpbGl0eVN0YXRlX2gKKworI2luY2x1ZGUg
PHd0Zi90ZXh0L1dURlN0cmluZy5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKKy8vIFRoZSBl
bnVtIGlzIG5vdCBmbGFnIHByb3RlY3RlZCBhcyBpdCBpcyB1c2VkIGluIHRoZSBXZWJLaXQgY2hy
b21pdW0gQVBJCisvLyB3aXRob3V0IGZsYWcgcHJvdGVjdGlvbi4KK2VudW0gUGFnZVZpc2liaWxp
dHlTdGF0ZSB7CisgICAgUGFnZVZpc2liaWxpdHlTdGF0ZVZpc2libGUsCisgICAgUGFnZVZpc2li
aWxpdHlTdGF0ZUhpZGRlbgorfTsKKworI2lmIEVOQUJMRShQQUdFX1ZJU0lCSUxJVFlfQVBJKQor
U3RyaW5nIEdldFBhZ2VWaXNpYmlsaXR5U3RhdGVTdHJpbmcoUGFnZVZpc2liaWxpdHlTdGF0ZSk7
CisjZW5kaWYKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gaWZuZGVmIFBh
Z2VWaXNpYmlsaXR5U3RhdGVfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwppbmRleCA5ZTY3Y2Iz
Li4yOGJhYWMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwor
KysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisy
MDExLTA1LTA4ICBTaGlzaGlyIEFncmF3YWwgIDxzaGlzaGlyQGNocm9taXVtLm9yZz4KKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJbXBsZW1lbnQgUGFn
ZSBWaXNpYmlsaXR5IEFQSS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTU0MTgxCisKKyAgICAgICAgKiBXZWJLaXQuZ3lwOgorICAgICAgICAqIHB1Ymxp
Yy9XZWJQYWdlVmlzaWJpbGl0eVN0YXRlLmg6IEFkZGVkLgorICAgICAgICAqIHB1YmxpYy9XZWJW
aWV3Lmg6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXc6OnNldFZpc2liaWxpdHlTdGF0ZSk6Cisg
ICAgICAgICogcHVibGljL1dlYlZpZXdDbGllbnQuaDoKKyAgICAgICAgKFdlYktpdDo6V2ViVmll
d0NsaWVudDo6dmlzaWJpbGl0eVN0YXRlKToKKyAgICAgICAgKiBzcmMvQXNzZXJ0TWF0Y2hpbmdF
bnVtcy5jcHA6CisgICAgICAgICogc3JjL1dlYlZpZXdJbXBsLmNwcDoKKyAgICAgICAgKFdlYktp
dDo6V2ViVmlld0ltcGw6OldlYlZpZXdJbXBsKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0lt
cGw6OnNldFZpc2liaWxpdHlTdGF0ZSk6CisgICAgICAgICogc3JjL1dlYlZpZXdJbXBsLmg6CisK
IDIwMTEtMDUtMDcgIFNoZXJpZmYgQm90ICA8d2Via2l0LnJldmlldy5ib3RAZ21haWwuY29tPgog
CiAgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHI4NTk3NC4KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vV2ViS2l0Lmd5cCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
V2ViS2l0Lmd5cAppbmRleCAzZTBiMGQ5Li5hNmU5YjI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL1dlYktpdC5neXAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9XZWJL
aXQuZ3lwCkBAIC0yMjcsNiArMjI3LDcgQEAKICAgICAgICAgICAgICAgICAncHVibGljL1dlYk9w
dGlvbkVsZW1lbnQuaCcsCiAgICAgICAgICAgICAgICAgJ3B1YmxpYy9XZWJQYWdlU2VyaWFsaXpl
ci5oJywKICAgICAgICAgICAgICAgICAncHVibGljL1dlYlBhZ2VTZXJpYWxpemVyQ2xpZW50Lmgn
LAorICAgICAgICAgICAgICAgICdwdWJsaWMvV2ViUGFnZVZpc2liaWxpdHlTdGF0ZS5oJywKICAg
ICAgICAgICAgICAgICAncHVibGljL1dlYlBhc3N3b3JkQXV0b2NvbXBsZXRlTGlzdGVuZXIuaCcs
CiAgICAgICAgICAgICAgICAgJ3B1YmxpYy9XZWJQYXNzd29yZEZvcm1EYXRhLmgnLAogICAgICAg
ICAgICAgICAgICdwdWJsaWMvV2ViUGVyZm9ybWFuY2UuaCcsCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJQYWdlVmlzaWJpbGl0eVN0YXRlLmggYi9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJQYWdlVmlzaWJpbGl0eVN0YXRlLmgKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTQ3NGJlNAotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlBhZ2VWaXNpYmlsaXR5U3RhdGUuaApAQCAt
MCwwICsxLDQ1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBt
ZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUg
b2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkg
YmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0
aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJT
IEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFS
VElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09Q
WVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICog
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI2lmbmRlZiBXZWJQYWdlVmlzaWJpbGl0eVN0YXRlX2gKKyNkZWZpbmUgV2Vi
UGFnZVZpc2liaWxpdHlTdGF0ZV9oCisKK25hbWVzcGFjZSBXZWJLaXQgeworCisvLyBUaGUgZm9s
bG93aW5nIGVudW0gc2hvdWxkIGJlIGNvbnNpc3RlbnQgd2l0aCB0aGUgUGFnZVZpc2liaWxpdHlT
dGF0ZSBlbnVtCisvLyBkZWZpbmVkIGluIFdlYkNvcmUuCitlbnVtIFdlYlBhZ2VWaXNpYmlsaXR5
U3RhdGUgeworICAgIFdlYlBhZ2VWaXNpYmlsaXR5U3RhdGVWaXNpYmxlLAorICAgIFdlYlBhZ2VW
aXNpYmlsaXR5U3RhdGVIaWRkZW4KK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5k
aWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlZpZXcuaCBi
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlZpZXcuaAppbmRleCAzZTliM2Q2Li40
YTNhYjU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJWaWV3
LmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViVmlldy5oCkBAIC0zMiw2
ICszMiw3IEBACiAjZGVmaW5lIFdlYlZpZXdfaAogCiAjaW5jbHVkZSAiV2ViRHJhZ09wZXJhdGlv
bi5oIgorI2luY2x1ZGUgIldlYlBhZ2VWaXNpYmlsaXR5U3RhdGUuaCIKICNpbmNsdWRlICJXZWJT
dHJpbmcuaCIKICNpbmNsdWRlICJXZWJWZWN0b3IuaCIKICNpbmNsdWRlICJXZWJXaWRnZXQuaCIK
QEAgLTM1Nyw2ICszNTgsMTIgQEAgcHVibGljOgogICAgIC8vIEFQSXMuCiAgICAgdmlydHVhbCBX
ZWJHcmFwaGljc0NvbnRleHQzRCogZ3JhcGhpY3NDb250ZXh0M0QoKSA9IDA7CiAKKyAgICAvLyBW
aXNpYmlsaXR5IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tCisKKyAgICAvLyBTZXRzIHRoZSB2aXNpYmlsaXR5IG9mIHRoZSBXZWJWaWV3
LgorICAgIHZpcnR1YWwgdm9pZCBzZXRWaXNpYmlsaXR5U3RhdGUoV2ViUGFnZVZpc2liaWxpdHlT
dGF0ZSB2aXNpYmlsaXR5U3RhdGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBib29sIGlzSW5pdGlhbFN0YXRlKSB7IH0KKwogcHJvdGVjdGVkOgogICAgIH5XZWJWaWV3KCkg
e30KIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJWaWV3
Q2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJWaWV3Q2xpZW50LmgK
aW5kZXggNTE3NDM1MS4uZjNiZTNjYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9wdWJsaWMvV2ViVmlld0NsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVi
bGljL1dlYlZpZXdDbGllbnQuaApAQCAtMzYsNiArMzYsNyBAQAogI2luY2x1ZGUgIldlYkVkaXRp
bmdBY3Rpb24uaCIKICNpbmNsdWRlICJXZWJGaWxlQ2hvb3NlckNvbXBsZXRpb24uaCIKICNpbmNs
dWRlICJXZWJGaWxlQ2hvb3NlclBhcmFtcy5oIgorI2luY2x1ZGUgIldlYlBhZ2VWaXNpYmlsaXR5
U3RhdGUuaCIKICNpbmNsdWRlICJXZWJQb3B1cFR5cGUuaCIKICNpbmNsdWRlICJXZWJTdHJpbmcu
aCIKICNpbmNsdWRlICJXZWJUZXh0QWZmaW5pdHkuaCIKQEAgLTMxNSw2ICszMTYsMTQgQEAgcHVi
bGljOgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBXZWJT
dHJpbmcmIHVybCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29u
c3QgV2ViU3RyaW5nJiB0aXRsZSkgeyB9CiAKKyAgICAvLyBWaXNpYmlsaXR5IC0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAv
LyBSZXR1cm5zIHRoZSBjdXJyZW50IHZpc2liaWxpdHkgb2YgdGhlIFdlYlZpZXcuCisgICAgdmly
dHVhbCBXZWJQYWdlVmlzaWJpbGl0eVN0YXRlIHZpc2liaWxpdHlTdGF0ZSgpIGNvbnN0CisgICAg
eworICAgICAgICByZXR1cm4gV2ViUGFnZVZpc2liaWxpdHlTdGF0ZVZpc2libGU7CisgICAgfQor
CiBwcm90ZWN0ZWQ6CiAgICAgfldlYlZpZXdDbGllbnQoKSB7IH0KIH07CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9Bc3NlcnRNYXRjaGluZ0VudW1zLmNwcCBiL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vc3JjL0Fzc2VydE1hdGNoaW5nRW51bXMuY3BwCmluZGV4IDUzM2U4
ZWMuLjM4MzEwYjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0Fzc2Vy
dE1hdGNoaW5nRW51bXMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0Fzc2Vy
dE1hdGNoaW5nRW51bXMuY3BwCkBAIC01MCw2ICs1MCw3IEBACiAjaW5jbHVkZSAiSURCS2V5Lmgi
CiAjaW5jbHVkZSAiTWVkaWFQbGF5ZXIuaCIKICNpbmNsdWRlICJOb3RpZmljYXRpb25QcmVzZW50
ZXIuaCIKKyNpbmNsdWRlICJQYWdlVmlzaWJpbGl0eVN0YXRlLmgiCiAjaW5jbHVkZSAiUGFzdGVi
b2FyZFByaXZhdGUuaCIKICNpbmNsdWRlICJQbGF0Zm9ybUN1cnNvci5oIgogI2luY2x1ZGUgIlNl
dHRpbmdzLmgiCkBAIC03NSw2ICs3Niw3IEBACiAjaW5jbHVkZSAiV2ViSW5wdXRFbGVtZW50Lmgi
CiAjaW5jbHVkZSAiV2ViTWVkaWFQbGF5ZXIuaCIKICNpbmNsdWRlICJXZWJOb3RpZmljYXRpb25Q
cmVzZW50ZXIuaCIKKyNpbmNsdWRlICJXZWJQYWdlVmlzaWJpbGl0eVN0YXRlLmgiCiAjaW5jbHVk
ZSAiV2ViU2Nyb2xsYmFyLmgiCiAjaW5jbHVkZSAiV2ViU2V0dGluZ3MuaCIKICNpbmNsdWRlICJX
ZWJTdG9yYWdlUXVvdGFFcnJvci5oIgpAQCAtNDQ1LDMgKzQ0Nyw2IEBAIENPTVBJTEVfQVNTRVJU
X01BVENISU5HX0VOVU0oV2ViVGhlbWVFbmdpbmU6OlNjcm9sbGJhck9yaWVudGF0aW9uVmVydGlj
YWwsIFBsYXRmCiBDT01QSUxFX0FTU0VSVF9NQVRDSElOR19FTlVNKFdlYlRoZW1lRW5naW5lOjpT
Y3JvbGxiYXJQYXJlbnRTY3JvbGxWaWV3LCBQbGF0Zm9ybUJyaWRnZTo6U2Nyb2xsYmFyUGFyZW50
U2Nyb2xsVmlldyk7CiBDT01QSUxFX0FTU0VSVF9NQVRDSElOR19FTlVNKFdlYlRoZW1lRW5naW5l
OjpTY3JvbGxiYXJQYXJlbnRSZW5kZXJMYXllciwgUGxhdGZvcm1CcmlkZ2U6OlNjcm9sbGJhclBh
cmVudFJlbmRlckxheWVyKTsKICNlbmRpZgorCitDT01QSUxFX0FTU0VSVF9NQVRDSElOR19FTlVN
KFdlYlBhZ2VWaXNpYmlsaXR5U3RhdGVWaXNpYmxlLCBQYWdlVmlzaWJpbGl0eVN0YXRlVmlzaWJs
ZSk7CitDT01QSUxFX0FTU0VSVF9NQVRDSElOR19FTlVNKFdlYlBhZ2VWaXNpYmlsaXR5U3RhdGVI
aWRkZW4sIFBhZ2VWaXNpYmlsaXR5U3RhdGVIaWRkZW4pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9zcmMvV2ViVmlld0ltcGwuY3BwCmluZGV4IGU2NzI1MWQuLjk2OGRlNTYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAKQEAgLTM2Niw2ICszNjYsMTAgQEAg
V2ViVmlld0ltcGw6OldlYlZpZXdJbXBsKFdlYlZpZXdDbGllbnQqIGNsaWVudCkKIAogICAgIG1f
cGFnZS0+c2V0R3JvdXBOYW1lKHBhZ2VHcm91cE5hbWUpOwogCisjaWYgRU5BQkxFKFBBR0VfVklT
SUJJTElUWV9BUEkpCisgICAgc2V0VmlzaWJpbGl0eVN0YXRlKG1fY2xpZW50LT52aXNpYmlsaXR5
U3RhdGUoKSwgdHJ1ZSk7CisjZW5kaWYKKwogICAgIG1faW5zcGVjdG9yU2V0dGluZ3NNYXAgPSBh
ZG9wdFB0cihuZXcgU2V0dGluZ3NNYXApOwogfQogCkBAIC0yNTU5LDQgKzI1NjMsMTYgQEAgV2Vi
R3JhcGhpY3NDb250ZXh0M0QqIFdlYlZpZXdJbXBsOjpncmFwaGljc0NvbnRleHQzRCgpCiAgICAg
cmV0dXJuIDA7CiB9CiAKKwordm9pZCBXZWJWaWV3SW1wbDo6c2V0VmlzaWJpbGl0eVN0YXRlKFdl
YlBhZ2VWaXNpYmlsaXR5U3RhdGUgdmlzaWJpbGl0eVN0YXRlLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGJvb2wgaXNJbml0aWFsU3RhdGUpIHsKKyNpZiBFTkFCTEUoUEFH
RV9WSVNJQklMSVRZX0FQSSkKKyAgICBpZiAoIXBhZ2UoKSkKKyAgICAgICAgcmV0dXJuOworCisg
ICAgQVNTRVJUKHZpc2liaWxpdHlTdGF0ZSA9PSBXZWJQYWdlVmlzaWJpbGl0eVN0YXRlVmlzaWJs
ZSB8fCB2aXNpYmlsaXR5U3RhdGUgPT0gV2ViUGFnZVZpc2liaWxpdHlTdGF0ZUhpZGRlbik7Cisg
ICAgbV9wYWdlLT5zZXRWaXNpYmlsaXR5U3RhdGUoc3RhdGljX2Nhc3Q8UGFnZVZpc2liaWxpdHlT
dGF0ZT4oc3RhdGljX2Nhc3Q8aW50Pih2aXNpYmlsaXR5U3RhdGUpKSwgaXNJbml0aWFsU3RhdGUp
OworI2VuZGlmCit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vc3JjL1dlYlZpZXdJbXBsLmgKaW5kZXggZDhkOTJhOC4uZjI5MDgyNyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5oCkBAIC0zNTUsNiArMzU1LDggQEAgcHVibGlj
OgogICAgIC8vIFdlYkdMLiBSZXR1cm5zIDAgaWYgY29tcG9zaXRpbmcgc3VwcG9ydCBpcyBub3Qg
Y29tcGlsZWQgaW4uCiAgICAgdmlydHVhbCBXZWJHcmFwaGljc0NvbnRleHQzRCogZ3JhcGhpY3ND
b250ZXh0M0QoKTsKIAorICAgIHZpcnR1YWwgdm9pZCBzZXRWaXNpYmlsaXR5U3RhdGUoV2ViUGFn
ZVZpc2liaWxpdHlTdGF0ZSwgYm9vbCk7CisKICAgICBXZWJDb3JlOjpQb3B1cENvbnRhaW5lciog
c2VsZWN0UG9wdXAoKSBjb25zdCB7IHJldHVybiBtX3NlbGVjdFBvcHVwLmdldCgpOyB9CiAKICAg
ICAvLyBSZXR1cm5zIHRydWUgaWYgdGhlIGV2ZW50IGxlYWRzIHRvIHNjcm9sbGluZy4KZGlmZiAt
LWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCAzMDA1YmQyLi5l
NjdmYzQ3IDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMjMgQEAKKzIwMTEtMDUtMDggIFNoaXNoaXIgQWdyYXdhbCAgPHNoaXNoaXJA
Y2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIEltcGxlbWVudCBQYWdlIFZpc2liaWxpdHkgQVBJLgorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTQxODEKKworICAgICAgICAqIER1bXBSZW5k
ZXJUcmVlL0xheW91dFRlc3RDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKHNldFBhZ2VWaXNpYmls
aXR5Q2FsbGJhY2spOgorICAgICAgICAocmVzZXRQYWdlVmlzaWJpbGl0eUNhbGxiYWNrKToKKyAg
ICAgICAgKExheW91dFRlc3RDb250cm9sbGVyOjpzdGF0aWNGdW5jdGlvbnMpOgorICAgICAgICAq
IER1bXBSZW5kZXJUcmVlL0xheW91dFRlc3RDb250cm9sbGVyLmg6CisgICAgICAgIChMYXlvdXRU
ZXN0Q29udHJvbGxlcjo6c2V0UGFnZVZpc2liaWxpdHkpOgorICAgICAgICAoTGF5b3V0VGVzdENv
bnRyb2xsZXI6OnJlc2V0UGFnZVZpc2liaWxpdHkpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVl
L2Nocm9taXVtL0xheW91dFRlc3RDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKExheW91dFRlc3RD
b250cm9sbGVyOjpMYXlvdXRUZXN0Q29udHJvbGxlcik6CisgICAgICAgIChMYXlvdXRUZXN0Q29u
dHJvbGxlcjo6cmVzZXRQYWdlVmlzaWJpbGl0eSk6CisgICAgICAgIChMYXlvdXRUZXN0Q29udHJv
bGxlcjo6c2V0UGFnZVZpc2liaWxpdHkpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2Nocm9t
aXVtL0xheW91dFRlc3RDb250cm9sbGVyLmg6CisKIDIwMTEtMDUtMDcgIEFkYW0gQmFydGggIDxh
YmFydGhAd2Via2l0Lm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBFcmljIFNlaWRlbC4KZGlm
ZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL0xheW91dFRlc3RDb250cm9sbGVyLmNwcCBi
L1Rvb2xzL0R1bXBSZW5kZXJUcmVlL0xheW91dFRlc3RDb250cm9sbGVyLmNwcAppbmRleCA2OWE0
YzgxLi4yMGUzYTgzIDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9MYXlvdXRUZXN0
Q29udHJvbGxlci5jcHAKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvTGF5b3V0VGVzdENvbnRy
b2xsZXIuY3BwCkBAIC0xNjcwLDYgKzE2NzAsMzcgQEAgc3RhdGljIEpTVmFsdWVSZWYgc2V0UGx1
Z2luc0VuYWJsZWRDYWxsYmFjayhKU0NvbnRleHRSZWYgY29udGV4dCwgSlNPYmplY3RSZWYgZnUK
ICAgICByZXR1cm4gSlNWYWx1ZU1ha2VVbmRlZmluZWQoY29udGV4dCk7CiB9ICAgIAogCitzdGF0
aWMgSlNWYWx1ZVJlZiBzZXRQYWdlVmlzaWJpbGl0eUNhbGxiYWNrKEpTQ29udGV4dFJlZiBjb250
ZXh0LCBKU09iamVjdFJlZiBmdW5jdGlvbiwgSlNPYmplY3RSZWYgdGhpc09iamVjdCwgc2l6ZV90
IGFyZ3VtZW50Q291bnQsIGNvbnN0IEpTVmFsdWVSZWYgYXJndW1lbnRzW10sIEpTVmFsdWVSZWYq
IGV4Y2VwdGlvbikKK3sKKyAgICAvLyBIYXMgbWFjICYgd2luZG93cyBpbXBsZW1lbnRhdGlvbgor
ICAgIGlmIChhcmd1bWVudENvdW50IDwgMSkKKyAgICAgICAgcmV0dXJuIEpTVmFsdWVNYWtlVW5k
ZWZpbmVkKGNvbnRleHQpOworCisgICAgSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IHZpc2liaWxp
dHkoQWRvcHQsIEpTVmFsdWVUb1N0cmluZ0NvcHkoY29udGV4dCwgYXJndW1lbnRzWzBdLCBleGNl
cHRpb24pKTsKKyAgICBBU1NFUlQoISpleGNlcHRpb24pOworCisgICAgc2l6ZV90IG1heExlbmd0
aCA9IEpTU3RyaW5nR2V0TWF4aW11bVVURjhDU3RyaW5nU2l6ZSh2aXNpYmlsaXR5LmdldCgpKTsK
KyAgICBjaGFyKiB2aXNpYmlsaXR5QnVmZmVyID0gbmV3IGNoYXJbbWF4TGVuZ3RoICsgMV07Cisg
ICAgSlNTdHJpbmdHZXRVVEY4Q1N0cmluZyh2aXNpYmlsaXR5LmdldCgpLCB2aXNpYmlsaXR5QnVm
ZmVyLCBtYXhMZW5ndGggKyAxKTsKKyAgICAKKyAgICBMYXlvdXRUZXN0Q29udHJvbGxlciogY29u
dHJvbGxlciA9IHN0YXRpY19jYXN0PExheW91dFRlc3RDb250cm9sbGVyKj4oSlNPYmplY3RHZXRQ
cml2YXRlKHRoaXNPYmplY3QpKTsKKyAgICBjb250cm9sbGVyLT5zZXRQYWdlVmlzaWJpbGl0eSh2
aXNpYmlsaXR5QnVmZmVyKTsKKyAgICBkZWxldGVbXSB2aXNpYmlsaXR5QnVmZmVyOworICAgIAor
ICAgIHJldHVybiBKU1ZhbHVlTWFrZVVuZGVmaW5lZChjb250ZXh0KTsKK30gICAgCisKK3N0YXRp
YyBKU1ZhbHVlUmVmIHJlc2V0UGFnZVZpc2liaWxpdHlDYWxsYmFjayhKU0NvbnRleHRSZWYgY29u
dGV4dCwgSlNPYmplY3RSZWYgZnVuY3Rpb24sIEpTT2JqZWN0UmVmIHRoaXNPYmplY3QsIHNpemVf
dCBhcmd1bWVudENvdW50LCBjb25zdCBKU1ZhbHVlUmVmIGFyZ3VtZW50c1tdLCBKU1ZhbHVlUmVm
KiBleGNlcHRpb24pCit7CisgICAgLy8gSGFzIG1hYyAmIHdpbmRvd3MgaW1wbGVtZW50YXRpb24K
KyAgICBpZiAoYXJndW1lbnRDb3VudCA8IDEpCisgICAgICAgIHJldHVybiBKU1ZhbHVlTWFrZVVu
ZGVmaW5lZChjb250ZXh0KTsKKworICAgIExheW91dFRlc3RDb250cm9sbGVyKiBjb250cm9sbGVy
ID0gc3RhdGljX2Nhc3Q8TGF5b3V0VGVzdENvbnRyb2xsZXIqPihKU09iamVjdEdldFByaXZhdGUo
dGhpc09iamVjdCkpOworICAgIGNvbnRyb2xsZXItPnJlc2V0UGFnZVZpc2liaWxpdHkoKTsKKyAg
ICByZXR1cm4gSlNWYWx1ZU1ha2VVbmRlZmluZWQoY29udGV4dCk7Cit9ICAgIAorCiBzdGF0aWMg
SlNWYWx1ZVJlZiBzZXRTbWFydEluc2VydERlbGV0ZUVuYWJsZWRDYWxsYmFjayhKU0NvbnRleHRS
ZWYgY29udGV4dCwgSlNPYmplY3RSZWYgZnVuY3Rpb24sIEpTT2JqZWN0UmVmIHRoaXNPYmplY3Qs
IHNpemVfdCBhcmd1bWVudENvdW50LCBjb25zdCBKU1ZhbHVlUmVmIGFyZ3VtZW50c1tdLCBKU1Zh
bHVlUmVmKiBleGNlcHRpb24pCiB7CiAgICAgaWYgKGFyZ3VtZW50Q291bnQgPCAxKQpAQCAtMjI2
Niw2ICsyMjk3LDcgQEAgSlNTdGF0aWNGdW5jdGlvbiogTGF5b3V0VGVzdENvbnRyb2xsZXI6OnN0
YXRpY0Z1bmN0aW9ucygpCiAgICAgICAgIHsgInJlbW92ZUFsbFZpc2l0ZWRMaW5rcyIsIHJlbW92
ZUFsbFZpc2l0ZWRMaW5rc0NhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwg
a0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCiAgICAgICAgIHsgInJlbW92ZU9yaWdp
bkFjY2Vzc1doaXRlbGlzdEVudHJ5IiwgcmVtb3ZlT3JpZ2luQWNjZXNzV2hpdGVsaXN0RW50cnlD
YWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmli
dXRlRG9udERlbGV0ZSB9LAogICAgICAgICB7ICJyZXBhaW50U3dlZXBIb3Jpem9udGFsbHkiLCBy
ZXBhaW50U3dlZXBIb3Jpem9udGFsbHlDYWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFk
T25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LAorICAgICAgICB7ICJyZXNl
dFBhZ2VWaXNpYmlsaXR5IiwgcmVzZXRQYWdlVmlzaWJpbGl0eUNhbGxiYWNrLCBrSlNQcm9wZXJ0
eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCiAg
ICAgICAgIHsgInNldEFjY2VwdHNFZGl0aW5nIiwgc2V0QWNjZXB0c0VkaXRpbmdDYWxsYmFjaywg
a0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERl
bGV0ZSB9LAogICAgICAgICB7ICJzZXRBbGxvd1VuaXZlcnNhbEFjY2Vzc0Zyb21GaWxlVVJMcyIs
IHNldEFsbG93VW5pdmVyc2FsQWNjZXNzRnJvbUZpbGVVUkxzQ2FsbGJhY2ssIGtKU1Byb3BlcnR5
QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKICAg
ICAgICAgeyAic2V0QWxsb3dGaWxlQWNjZXNzRnJvbUZpbGVVUkxzIiwgc2V0QWxsb3dGaWxlQWNj
ZXNzRnJvbUZpbGVVUkxzQ2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBr
SlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKQEAgLTIyOTgsNiArMjMzMCw3IEBAIEpT
U3RhdGljRnVuY3Rpb24qIExheW91dFRlc3RDb250cm9sbGVyOjpzdGF0aWNGdW5jdGlvbnMoKQog
ICAgICAgICB7ICJzZXRNb2NrR2VvbG9jYXRpb25Qb3NpdGlvbiIsIHNldE1vY2tHZW9sb2NhdGlv
blBvc2l0aW9uQ2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9w
ZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKICAgICAgICAgeyAiYWRkTW9ja1NwZWVjaElucHV0
UmVzdWx0IiwgYWRkTW9ja1NwZWVjaElucHV0UmVzdWx0Q2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0
cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKICAgICAg
ICAgeyAic2V0TmV3V2luZG93c0NvcHlCYWNrRm9yd2FyZExpc3QiLCBzZXROZXdXaW5kb3dzQ29w
eUJhY2tGb3J3YXJkTGlzdENhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwg
a0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCisgICAgICAgIHsgInNldFBhZ2VWaXNp
YmlsaXR5Iiwgc2V0UGFnZVZpc2liaWxpdHlDYWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVS
ZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LAogICAgICAgICB7ICJz
ZXRQT1NJWExvY2FsZSIsIHNldFBPU0lYTG9jYWxlQ2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmli
dXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKICAgICAgICAg
eyAic2V0UGVyc2lzdGVudFVzZXJTdHlsZVNoZWV0TG9jYXRpb24iLCBzZXRQZXJzaXN0ZW50VXNl
clN0eWxlU2hlZXRMb2NhdGlvbkNhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5
IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCiAgICAgICAgIHsgInNldFBvcHVw
QmxvY2tpbmdFbmFibGVkIiwgc2V0UG9wdXBCbG9ja2luZ0VuYWJsZWRDYWxsYmFjaywga0pTUHJv
cGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9
LApkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvTGF5b3V0VGVzdENvbnRyb2xsZXIu
aCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL0xheW91dFRlc3RDb250cm9sbGVyLmgKaW5kZXggYTgx
NzllMS4uMDk5YTY0MSAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvTGF5b3V0VGVz
dENvbnRyb2xsZXIuaAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9MYXlvdXRUZXN0Q29udHJv
bGxlci5oCkBAIC0xMjQsNiArMTI0LDkgQEAgcHVibGljOgogICAgIHZvaWQgc2V0U2Nyb2xsYmFy
UG9saWN5KEpTU3RyaW5nUmVmIG9yaWVudGF0aW9uLCBKU1N0cmluZ1JlZiBwb2xpY3kpOwogICAg
IHZvaWQgc2V0RWRpdGluZ0JlaGF2aW9yKGNvbnN0IGNoYXIqIGVkaXRpbmdCZWhhdmlvcik7CiAK
KyAgICB2b2lkIHNldFBhZ2VWaXNpYmlsaXR5KGNvbnN0IGNoYXIqIHZpc2liaWxpdHkpIHsgfQor
ICAgIHZvaWQgcmVzZXRQYWdlVmlzaWJpbGl0eSgpIHsgfQorCiAgICAgSlNWYWx1ZVJlZiBzaGFk
b3dSb290KEpTQ29udGV4dFJlZiwgSlNWYWx1ZVJlZik7CiAgICAgSlNWYWx1ZVJlZiBlbnN1cmVT
aGFkb3dSb290KEpTQ29udGV4dFJlZiwgSlNWYWx1ZVJlZik7CiAgICAgdm9pZCByZW1vdmVTaGFk
b3dSb290KEpTQ29udGV4dFJlZiwgSlNWYWx1ZVJlZik7CmRpZmYgLS1naXQgYS9Ub29scy9EdW1w
UmVuZGVyVHJlZS9jaHJvbWl1bS9MYXlvdXRUZXN0Q29udHJvbGxlci5jcHAgYi9Ub29scy9EdW1w
UmVuZGVyVHJlZS9jaHJvbWl1bS9MYXlvdXRUZXN0Q29udHJvbGxlci5jcHAKaW5kZXggNjQ1MGFl
Ny4uMmM3MDQ2NSAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vTGF5
b3V0VGVzdENvbnRyb2xsZXIuY3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVt
L0xheW91dFRlc3RDb250cm9sbGVyLmNwcApAQCAtMTM0LDYgKzEzNCw3IEBAIExheW91dFRlc3RD
b250cm9sbGVyOjpMYXlvdXRUZXN0Q29udHJvbGxlcihUZXN0U2hlbGwqIHNoZWxsKQogICAgIGJp
bmRNZXRob2QoInJlbW92ZU9yaWdpbkFjY2Vzc1doaXRlbGlzdEVudHJ5IiwgJkxheW91dFRlc3RD
b250cm9sbGVyOjpyZW1vdmVPcmlnaW5BY2Nlc3NXaGl0ZWxpc3RFbnRyeSk7CiAgICAgYmluZE1l
dGhvZCgicmVtb3ZlU2hhZG93Um9vdCIsICZMYXlvdXRUZXN0Q29udHJvbGxlcjo6cmVtb3ZlU2hh
ZG93Um9vdCk7CiAgICAgYmluZE1ldGhvZCgicmVwYWludFN3ZWVwSG9yaXpvbnRhbGx5IiwgJkxh
eW91dFRlc3RDb250cm9sbGVyOjpyZXBhaW50U3dlZXBIb3Jpem9udGFsbHkpOworICAgIGJpbmRN
ZXRob2QoInJlc2V0UGFnZVZpc2liaWxpdHkiLCAmTGF5b3V0VGVzdENvbnRyb2xsZXI6OnJlc2V0
UGFnZVZpc2liaWxpdHkpOwogICAgIGJpbmRNZXRob2QoInJlc3VtZUFuaW1hdGlvbnMiLCAmTGF5
b3V0VGVzdENvbnRyb2xsZXI6OnJlc3VtZUFuaW1hdGlvbnMpOwogICAgIGJpbmRNZXRob2QoInNh
bXBsZVNWR0FuaW1hdGlvbkZvckVsZW1lbnRBdFRpbWUiLCAmTGF5b3V0VGVzdENvbnRyb2xsZXI6
OnNhbXBsZVNWR0FuaW1hdGlvbkZvckVsZW1lbnRBdFRpbWUpOwogICAgIGJpbmRNZXRob2QoInNl
dEFjY2VwdHNFZGl0aW5nIiwgJkxheW91dFRlc3RDb250cm9sbGVyOjpzZXRBY2NlcHRzRWRpdGlu
Zyk7CkBAIC0xNTcsNiArMTU4LDcgQEAgTGF5b3V0VGVzdENvbnRyb2xsZXI6OkxheW91dFRlc3RD
b250cm9sbGVyKFRlc3RTaGVsbCogc2hlbGwpCiAgICAgYmluZE1ldGhvZCgic2V0TW9ja0dlb2xv
Y2F0aW9uRXJyb3IiLCAmTGF5b3V0VGVzdENvbnRyb2xsZXI6OnNldE1vY2tHZW9sb2NhdGlvbkVy
cm9yKTsKICAgICBiaW5kTWV0aG9kKCJzZXRNb2NrR2VvbG9jYXRpb25Qb3NpdGlvbiIsICZMYXlv
dXRUZXN0Q29udHJvbGxlcjo6c2V0TW9ja0dlb2xvY2F0aW9uUG9zaXRpb24pOwogICAgIGJpbmRN
ZXRob2QoImFkZE1vY2tTcGVlY2hJbnB1dFJlc3VsdCIsICZMYXlvdXRUZXN0Q29udHJvbGxlcjo6
YWRkTW9ja1NwZWVjaElucHV0UmVzdWx0KTsKKyAgICBiaW5kTWV0aG9kKCJzZXRQYWdlVmlzaWJp
bGl0eSIsICZMYXlvdXRUZXN0Q29udHJvbGxlcjo6c2V0UGFnZVZpc2liaWxpdHkpOwogICAgIGJp
bmRNZXRob2QoInNldFBsdWdpbnNFbmFibGVkIiwgJkxheW91dFRlc3RDb250cm9sbGVyOjpzZXRQ
bHVnaW5zRW5hYmxlZCk7CiAgICAgYmluZE1ldGhvZCgic2V0UG9wdXBCbG9ja2luZ0VuYWJsZWQi
LCAmTGF5b3V0VGVzdENvbnRyb2xsZXI6OnNldFBvcHVwQmxvY2tpbmdFbmFibGVkKTsKICAgICBi
aW5kTWV0aG9kKCJzZXRQT1NJWExvY2FsZSIsICZMYXlvdXRUZXN0Q29udHJvbGxlcjo6c2V0UE9T
SVhMb2NhbGUpOwpAQCAtMTc3NiwzICsxNzc4LDE5IEBAIHZvaWQgTGF5b3V0VGVzdENvbnRyb2xs
ZXI6OnNldFBsdWdpbnNFbmFibGVkKGNvbnN0IENwcEFyZ3VtZW50TGlzdCYgYXJndW1lbnRzLCBD
CiAgICAgfQogICAgIHJlc3VsdC0+c2V0TnVsbCgpOwogfQorCit2b2lkIExheW91dFRlc3RDb250
cm9sbGVyOjpyZXNldFBhZ2VWaXNpYmlsaXR5KGNvbnN0IENwcEFyZ3VtZW50TGlzdCYgYXJndW1l
bnRzLCBDcHBWYXJpYW50KiByZXN1bHQpCit7CisgICAgbV9zaGVsbC0+d2ViVmlldygpLT5zZXRW
aXNpYmlsaXR5U3RhdGUoV2ViUGFnZVZpc2liaWxpdHlTdGF0ZVZpc2libGUsIHRydWUpOworfQor
Cit2b2lkIExheW91dFRlc3RDb250cm9sbGVyOjpzZXRQYWdlVmlzaWJpbGl0eShjb25zdCBDcHBB
cmd1bWVudExpc3QmIGFyZ3VtZW50cywgQ3BwVmFyaWFudCogcmVzdWx0KQoreworICAgIGlmIChh
cmd1bWVudHMuc2l6ZSgpID4gMCAmJiBhcmd1bWVudHNbMF0uaXNTdHJpbmcoKSkgeworICAgICAg
ICBzdHJpbmcgbmV3VmlzaWJpbGl0eSA9IGFyZ3VtZW50c1swXS50b1N0cmluZygpOworICAgICAg
ICBpZiAobmV3VmlzaWJpbGl0eSA9PSAidmlzaWJsZSIpCisgICAgICAgICAgICBtX3NoZWxsLT53
ZWJWaWV3KCktPnNldFZpc2liaWxpdHlTdGF0ZShXZWJQYWdlVmlzaWJpbGl0eVN0YXRlVmlzaWJs
ZSwgZmFsc2UpOworICAgICAgICBlbHNlIGlmIChuZXdWaXNpYmlsaXR5ID09ICJoaWRkZW4iKQor
ICAgICAgICAgICAgbV9zaGVsbC0+d2ViVmlldygpLT5zZXRWaXNpYmlsaXR5U3RhdGUoV2ViUGFn
ZVZpc2liaWxpdHlTdGF0ZUhpZGRlbiwgZmFsc2UpOworICAgIH0KK30KZGlmZiAtLWdpdCBhL1Rv
b2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0xheW91dFRlc3RDb250cm9sbGVyLmggYi9Ub29s
cy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9MYXlvdXRUZXN0Q29udHJvbGxlci5oCmluZGV4IDMz
Y2ZhYWMuLmZjM2M2MzMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVt
L0xheW91dFRlc3RDb250cm9sbGVyLmgKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21p
dW0vTGF5b3V0VGVzdENvbnRyb2xsZXIuaApAQCAtMzY2LDYgKzM2NiwxMCBAQCBwdWJsaWM6CiAg
ICAgLy8gRW5hYmxlIG9yIGRpc2FibGUgcGx1Z2lucy4KICAgICB2b2lkIHNldFBsdWdpbnNFbmFi
bGVkKGNvbnN0IENwcEFyZ3VtZW50TGlzdCYsIENwcFZhcmlhbnQqKTsKIAorICAgIC8vIFN3aXRj
aCB0aGUgdmlzaWJpbGl0eSBvZiB0aGUgcGFnZS4KKyAgICB2b2lkIHNldFBhZ2VWaXNpYmlsaXR5
KGNvbnN0IENwcEFyZ3VtZW50TGlzdCYsIENwcFZhcmlhbnQqKTsKKyAgICB2b2lkIHJlc2V0UGFn
ZVZpc2liaWxpdHkoY29uc3QgQ3BwQXJndW1lbnRMaXN0JiwgQ3BwVmFyaWFudCopOworCiBwdWJs
aWM6CiAgICAgLy8gVGhlIGZvbGxvd2luZyBtZXRob2RzIGFyZSBub3QgZXhwb3NlZCB0byBKYXZh
U2NyaXB0LgogICAgIHZvaWQgc2V0V29ya1F1ZXVlRnJvemVuKGJvb2wgZnJvemVuKSB7IG1fd29y
a1F1ZXVlLnNldEZyb3plbihmcm96ZW4pOyB9Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>