<?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>44713</bug_id>
          
          <creation_ts>2010-08-26 13:22:19 -0700</creation_ts>
          <short_desc>Resource tracking failure when trying to move a frame between documents</short_desc>
          <delta_ts>2010-10-26 14:11:07 -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>Page Loading</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Mac (Intel)</rep_platform>
          <op_sys>OS X 10.6</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P1</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>46663</dependson>
    
    <dependson>47002</dependson>
          <blocked>48362</blocked>
    
    <blocked>48363</blocked>
    
    <blocked>48364</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Alexey Proskuryakov">ap</reporter>
          <assigned_to name="Jenn Braithwaite">jennb</assigned_to>
          <cc>aroben</cc>
    
    <cc>beidson</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dimich</cc>
    
    <cc>jennb</cc>
    
    <cc>pfeldman</cc>
    
    <cc>yurys</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>270073</commentid>
    <comment_count>0</comment_count>
      <attachid>65610</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2010-08-26 13:22:19 -0700</bug_when>
    <thetext>Created attachment 65610
test case (will crash)

Resource identifiers are per-WebView, so when a frame is moved between documents, they can get out of sync. The attached test case crashes with an assertion (there seem to be further problems in other code, but let&apos;s track only this issue here).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>270095</commentid>
    <comment_count>1</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2010-08-26 13:47:19 -0700</bug_when>
    <thetext>&lt;rdar://problem/8359858&gt; tracks issues seen on this test case for Apple.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>282413</commentid>
    <comment_count>2</comment_count>
    <who name="Jenn Braithwaite">jennb</who>
    <bug_when>2010-09-21 10:35:43 -0700</bug_when>
    <thetext>With each platform doing different things with the resource identifier, I have to make platform-specific fixes. All fixes will be along these lines:

* The client impls will update their resource tracking in FrameLoaderClient::didTransferChildFrameToNewDocument(). In that method, the code needs access to both the old parent and the new parent, e.g. for mac, the WebView. (I&apos;m not sure the old parent is always available at this point - I may have to make it available somehow - more research needed.)
* Add API for the embedder to remove the resource id from the old parent and add it to the new.  The embedder may store additional info about resources being loaded, so the API should allow the info to be transferred to the new parent. The new parent then generates a new id for the resource. E.g. for mac, the API is added to WebResourceLoadDelegate. 
* Add API to WebCore::DocumentLoader to make the identifier and original request info available for both main and sub resource loads. I&apos;m thinking of a DocumentLoader::forEachLoadingResource(callback) method, where the callback is given the identifier, DocumentLoader* and ResourceRequest&amp; as const params.

Does this sound like the right approach for the fix?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>282422</commentid>
    <comment_count>3</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2010-09-21 10:46:41 -0700</bug_when>
    <thetext>Another option may be to make resource tracking global (not per-WebView). I&apos;m not sure what the tradeoffs are.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>282440</commentid>
    <comment_count>4</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2010-09-21 11:10:28 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; Another option may be to make resource tracking global (not per-WebView). I&apos;m not sure what the tradeoffs are.

I&apos;m also not sure what the tradeoffs are, but I suspect it&apos;d be a win overall in cleaner concept, behavior, and code.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>282590</commentid>
    <comment_count>5</comment_count>
    <who name="Jenn Braithwaite">jennb</who>
    <bug_when>2010-09-21 15:39:05 -0700</bug_when>
    <thetext>Looked into global resource tracking - I&apos;m not sure it makes the fix cleaner. Global resource tracking makes it cleaner for WebView to add/remove/find identifiers, even those it didn&apos;t create, however, the identifier is mapped to an object id that is generated by the ResourceLoadDelegate. One WebView cannot safely use the object id created by the ResourceLoadDelegate of a different WebView, so the old and new ResourceLoadDelegates still need to be updated about resource loads that now belong to a different page. This needs to happen at time of re-parenting in case there&apos;s some UI about the resource load on the former page (e.g. progress indicator).

A global resource tracking table would also be more complex than the current mapping of identifier-&gt;object-id. The resource identifier is not unique across WebViews so the table index would need another component to make it unique. The table value&apos;s would also need to be more than just the object id; we&apos;ll also need to know which WebView/ResourceLoadDelegate created the object id.

Essentially, you end up with the same changes for the fix, along with a more complicated table.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>285878</commentid>
    <comment_count>6</comment_count>
    <who name="Jenn Braithwaite">jennb</who>
    <bug_when>2010-09-27 16:42:38 -0700</bug_when>
    <thetext>The resource ids need to be made globally unique across all Pages (and thus unique across WebViews) to allow passing the ids between WebViews. Another option is to generate a new id for the resource when it is re-assigned to a different WebView, but I&apos;m not sure it&apos;s safe to change the resource identifier after the resource has started loading.

Any comments on either approach?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>285889</commentid>
    <comment_count>7</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2010-09-27 16:46:49 -0700</bug_when>
    <thetext>The most interesting part here is likely making sure that Web Inspector behaves reasonably.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>287599</commentid>
    <comment_count>8</comment_count>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2010-09-30 09:44:46 -0700</bug_when>
    <thetext>Note that fast/frames/iframe-reparenting-adopt-node.html is being skipped on both Mac and Windows due to this bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>287600</commentid>
    <comment_count>9</comment_count>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2010-09-30 09:48:13 -0700</bug_when>
    <thetext>A Windows crash log can be found here: http://build.webkit.org/results/Windows%20Release%20(Tests)/r68785%20(4613)/CrashLog_0ad0_2010-09-30_09-27-13-421.txt</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>287607</commentid>
    <comment_count>10</comment_count>
    <who name="Jenn Braithwaite">jennb</who>
    <bug_when>2010-09-30 09:57:19 -0700</bug_when>
    <thetext>(In reply to comment #9)
&gt; A Windows crash log can be found here: http://build.webkit.org/results/Windows%20Release%20(Tests)/r68785%20(4613)/CrashLog_0ad0_2010-09-30_09-27-13-421.txt


Thanks for the heads up.  This crash is due to a bug similar to 46300.  The WebFrame instance is still pointing to the WebView of the former page.  I&apos;ll enter a separate bug for it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>293735</commentid>
    <comment_count>11</comment_count>
      <attachid>70668</attachid>
    <who name="Jenn Braithwaite">jennb</who>
    <bug_when>2010-10-13 15:03:49 -0700</bug_when>
    <thetext>Created attachment 70668
patch

The fix contains the framework for all WebKit clients to update resource tracking, but only fixes the mac case. Other platforms will be fixed in separate patches.

The test case attached to this bug has been added as a LayoutTest in the patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>294162</commentid>
    <comment_count>12</comment_count>
      <attachid>70668</attachid>
    <who name="Jenn Braithwaite">jennb</who>
    <bug_when>2010-10-14 09:57:43 -0700</bug_when>
    <thetext>Comment on attachment 70668
patch

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

I will upload a new patch with the trigger for updating resource tracking moved within WebCore.

&gt; WebKit/mac/WebCoreSupport/WebFrameLoaderClient.mm:1395
&gt; +    loader-&gt;transferLoadingResourcesToNewPage(oldPage);

Trigger for updating resource tracking needs to be moved to WebCore beause there are other webcore components that need to update resource tracking.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>294230</commentid>
    <comment_count>13</comment_count>
      <attachid>70760</attachid>
    <who name="Jenn Braithwaite">jennb</who>
    <bug_when>2010-10-14 11:35:03 -0700</bug_when>
    <thetext>Created attachment 70760
updated patch

Moved the trigger to update resource tracking into WebCore.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>294381</commentid>
    <comment_count>14</comment_count>
      <attachid>70760</attachid>
    <who name="Dmitry Titov">dimich</who>
    <bug_when>2010-10-14 14:46:49 -0700</bug_when>
    <thetext>Comment on attachment 70760
updated patch

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

Some preliminary comments. It would be good if a reviewer closer to Apple mac port could take a look.

A couple of naming and other small nits:

&gt; LayoutTests/fast/frames/iframe-reparenting-fail-load.html:21
&gt; +&lt;p&gt;This test adopts an iframe into a second page, then closes that page, cancelling that iframe load.&lt;/p&gt;

It would be good to add a short description of actual failure this test is trying to reproduce, with a note on how to see if the test succeeds or fails.

&gt; WebCore/ChangeLog:13
&gt; +        loading resources that have been transferred to a new apge.

typo: apge-&gt;page

&gt; WebCore/loader/DocumentLoader.cpp:792
&gt; +    if (oldPage == m_frame-&gt;page())

There is ASSERT in other places about pages being different. Is there a reason to have &apos;if&apos; here instead of ASSERT?

&gt; WebCore/loader/DocumentLoader.h:200
&gt; +        void transferLoadingResourcesToNewPage(Page* oldPage);

&quot;transferLoadingResourceFromPage&quot;? Then you can omit &apos;oldPage&apos; because it&apos;d be obvious which page it is.
I know there is &quot;didTransferChildFrameToNewDocument(oldPage)&quot; but here it is a bit more confusing because of &apos;Page&apos; in the name of the method.
Same about name of corresponding method on FrameLoader.

&gt; WebCore/page/Frame.cpp:747
&gt; +        // Update resource tracking now that frame is in a different page.

&quot;is in a different page&quot; -&gt; &quot;could be in a different page&quot; since it&apos;s before &quot;if&quot;.

&gt; WebKit/mac/WebCoreSupport/WebFrameLoaderClient.mm:1393
&gt; +    Frame* coreFrame = core(m_webFrame.get());

if coreFrame is only used in the assert below, lets move this into assert itself.

&gt; WebKit/mac/WebView/WebResourceLoadDelegate.h:169
&gt; +    @param oldResource The identifier used by the old WebView to track the progress of a resource load across multiple call backs.

Would oldIdentifier be better since there is &quot;identifier&quot; already, and oldResource sounds like a pointer to the resource object...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>296868</commentid>
    <comment_count>15</comment_count>
      <attachid>71306</attachid>
    <who name="Jenn Braithwaite">jennb</who>
    <bug_when>2010-10-20 10:45:29 -0700</bug_when>
    <thetext>Created attachment 71306
updated patch

This patch addresses all comments by dimich in his review.

Still waiting for someone closer to Apple mac port to take a look. Not marking commit-queue-ready to ensure this does not get committed before the fix for 46915 as the test case added by this patch will trigger that bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>298929</commentid>
    <comment_count>16</comment_count>
      <attachid>71306</attachid>
    <who name="Jenn Braithwaite">jennb</who>
    <bug_when>2010-10-25 10:00:06 -0700</bug_when>
    <thetext>Comment on attachment 71306
updated patch

Fix for 46915 has been submitted. Flipping commit-queue? bit on.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>299158</commentid>
    <comment_count>17</comment_count>
      <attachid>71306</attachid>
    <who name="Jenn Braithwaite">jennb</who>
    <bug_when>2010-10-25 16:09:26 -0700</bug_when>
    <thetext>Comment on attachment 71306
updated patch

I will be updating this patch to remove the added Mac API.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>299207</commentid>
    <comment_count>18</comment_count>
      <attachid>71823</attachid>
    <who name="Jenn Braithwaite">jennb</who>
    <bug_when>2010-10-25 17:22:21 -0700</bug_when>
    <thetext>Created attachment 71823
updated patch

Same fix as before, but without the addition of new Mac API.

Will file a WebKit2 bug regarding the need for the former WebResourceLoadDelegate to stop tracking the resource after it has been transferred to a different page.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>299723</commentid>
    <comment_count>19</comment_count>
      <attachid>71823</attachid>
    <who name="Dmitry Titov">dimich</who>
    <bug_when>2010-10-26 12:43:25 -0700</bug_when>
    <thetext>Comment on attachment 71823
updated patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>299752</commentid>
    <comment_count>20</comment_count>
      <attachid>71823</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-10-26 13:13:36 -0700</bug_when>
    <thetext>Comment on attachment 71823
updated patch

Rejecting patch 71823 from commit-queue.

Failed to run &quot;[&apos;./WebKitTools/Scripts/webkit-patch&apos;, &apos;--status-host=queues.webkit.org&apos;, &apos;--bot-id=abarth-cq-sl&apos;, &apos;build&apos;, &apos;--no-clean&apos;, &apos;--no-update&apos;, &apos;--build-style=both&apos;]&quot; exit_code: 2
Last 500 characters of output:
/Developer/usr/bin/yacc
    /bin/sh -c /Users/abarth/git/webkit-queue/WebKitBuild/WebKit.build/Release/WebKit.build/Script-5D88EE6C11407DE800BC3ABC.sh

** BUILD FAILED **


The following build commands failed:
WebKit:
	CompileC /Users/abarth/git/webkit-queue/WebKitBuild/WebKit.build/Release/WebKit.build/Objects-normal/x86_64/WebFrameLoaderClient.o /Users/abarth/git/webkit-queue/WebKit/mac/WebCoreSupport/WebFrameLoaderClient.mm normal x86_64 objective-c++ com.apple.compilers.gcc.4_2
(1 failure)


Full output: http://queues.webkit.org/results/4803022</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>299765</commentid>
    <comment_count>21</comment_count>
      <attachid>71933</attachid>
    <who name="Jenn Braithwaite">jennb</who>
    <bug_when>2010-10-26 13:30:53 -0700</bug_when>
    <thetext>Created attachment 71933
patch to fix release version build error

Removed a local variable that was only used in an ASSERT() to fix &apos;unused variable&apos; warning when building release version.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>299790</commentid>
    <comment_count>22</comment_count>
      <attachid>71933</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-10-26 14:10:59 -0700</bug_when>
    <thetext>Comment on attachment 71933
patch to fix release version build error

Clearing flags on attachment: 71933

Committed r70574: &lt;http://trac.webkit.org/changeset/70574&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>299791</commentid>
    <comment_count>23</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-10-26 14:11:07 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>65610</attachid>
            <date>2010-08-26 13:22:19 -0700</date>
            <delta_ts>2010-08-26 13:22:19 -0700</delta_ts>
            <desc>test case (will crash)</desc>
            <filename>test.html</filename>
            <type>text/html</type>
            <size>584</size>
            <attacher name="Alexey Proskuryakov">ap</attacher>
            
              <data encoding="base64">PGJvZHkgb25sb2FkPSJ0ZXN0KCkiPgoKPGlmcmFtZSBzcmM9ImRhdGE6dGV4dC9odG1sLGZvbyI+
PC9pZnJhbWU+CjxzY3JpcHQ+CmlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKICAg
IGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKICAgIGxheW91dFRlc3RDb250cm9s
bGVyLndhaXRVbnRpbERvbmUoKTsKICAgIGxheW91dFRlc3RDb250cm9sbGVyLnNldENhbk9wZW5X
aW5kb3dzKHRydWUpOwp9CgpmdW5jdGlvbiB0ZXN0KCkKewogICAgdmFyIHcgPSB3aW5kb3cub3Bl
bigiYWJvdXQ6YmxhbmsiKTsKICAgIGlmICghdykKICAgICAgICBhbGVydCgiUGxlYXNlIGRpc2Fi
bGUgcG9wLXVwIGJsb2NrZXIiKTsKICAgIHZhciBmID0gdy5kb2N1bWVudC5hZG9wdE5vZGUoZG9j
dW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImlmcmFtZSIpWzBdKTsKICAgIHcuZG9jdW1lbnQu
Ym9keS5hcHBlbmRDaGlsZChmKTsKICAgIHcuY2xvc2UoKTsKICAgIGlmICh3aW5kb3cubGF5b3V0
VGVzdENvbnRyb2xsZXIpCiAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgp
Owp9Cjwvc2NyaXB0Pgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>70668</attachid>
            <date>2010-10-13 15:03:49 -0700</date>
            <delta_ts>2010-10-14 11:35:36 -0700</delta_ts>
            <desc>patch</desc>
            <filename>patch.txt</filename>
            <type>text/plain</type>
            <size>37311</size>
            <attacher name="Jenn Braithwaite">jennb</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBiZjYxOGVlLi5lYzhlOTRkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTAtMTAt
MTMgIEplbm4gQnJhaXRod2FpdGUgIDxqZW5uYkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVzb3VyY2UgdHJhY2tpbmcgZmFp
bHVyZSB3aGVuIHRyeWluZyB0byBtb3ZlIGEgZnJhbWUgYmV0d2VlbiBkb2N1bWVudHMKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ0NzEzCisKKyAgICAg
ICAgKiBmYXN0L2ZyYW1lcy9pZnJhbWUtcmVwYXJlbnRpbmctZmFpbC1sb2FkLWV4cGVjdGVkLnR4
dDogQWRkZWQuCisgICAgICAgICogZmFzdC9mcmFtZXMvaWZyYW1lLXJlcGFyZW50aW5nLWZhaWwt
bG9hZC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvU2tpcHBlZDoKKyAgICAg
ICAgUmUtZW5hYmxlZCB0ZXN0IHRoYXQgZmFpbGVkIGR1ZSB0byB0aGlzIGJ1Zy4KKwogMjAxMC0x
MC0xMyAgUm9iZXJ0IEhvZ2FuICA8cm9iZXJ0QHdlYmtpdC5vcmc+CiAKICAgICAgICAgUnViYmVy
LXN0YW1wZWQgYnkgQ3NhYmEgT3N6dHJvZ29uYWMuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9m
YXN0L2ZyYW1lcy9pZnJhbWUtcmVwYXJlbnRpbmctZmFpbC1sb2FkLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2Zhc3QvZnJhbWVzL2lmcmFtZS1yZXBhcmVudGluZy1mYWlsLWxvYWQtZXhwZWN0
ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjFlMGQ2MjMKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2ZyYW1lcy9pZnJhbWUtcmVwYXJlbnRpbmct
ZmFpbC1sb2FkLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxIEBACitUaGlzIHRlc3QgYWRvcHRzIGFu
IGlmcmFtZSBpbnRvIGEgc2Vjb25kIHBhZ2UsIHRoZW4gY2xvc2VzIHRoYXQgcGFnZSwgY2FuY2Vs
bGluZyB0aGF0IGlmcmFtZSBsb2FkLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9mcmFt
ZXMvaWZyYW1lLXJlcGFyZW50aW5nLWZhaWwtbG9hZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9m
cmFtZXMvaWZyYW1lLXJlcGFyZW50aW5nLWZhaWwtbG9hZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAuLjU5MjQyMDcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9mYXN0L2ZyYW1lcy9pZnJhbWUtcmVwYXJlbnRpbmctZmFpbC1sb2FkLmh0bWwKQEAgLTAsMCAr
MSwyMiBAQAorPGh0bWw+Cis8c2NyaXB0PgoraWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxl
cikgeworICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAgICBsYXlvdXRU
ZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7CisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIu
c2V0Q2FuT3BlbldpbmRvd3ModHJ1ZSk7Cit9CisKK2Z1bmN0aW9uIHRlc3QoKQoreworICAgIHZh
ciB3ID0gd2luZG93Lm9wZW4oImFib3V0OmJsYW5rIik7CisgICAgdmFyIGYgPSB3LmRvY3VtZW50
LmFkb3B0Tm9kZShkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgiaWZyYW1lIilbMF0pOwor
ICAgIHcuZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChmKTsKKyAgICB3LmNsb3NlKCk7CisgICAg
aWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICAgICAgbGF5b3V0VGVzdENvbnRy
b2xsZXIubm90aWZ5RG9uZSgpOworfQorPC9zY3JpcHQ+Cis8Ym9keSBvbmxvYWQ9InRlc3QoKSI+
Cis8aWZyYW1lIHNyYz0iZGF0YTp0ZXh0L2h0bWwsZm9vIj48L2lmcmFtZT4KKzxwPlRoaXMgdGVz
dCBhZG9wdHMgYW4gaWZyYW1lIGludG8gYSBzZWNvbmQgcGFnZSwgdGhlbiBjbG9zZXMgdGhhdCBw
YWdlLCBjYW5jZWxsaW5nIHRoYXQgaWZyYW1lIGxvYWQuPC9wPgorPC9ib2R5PgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1NraXBwZWQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9tYWMvU2tpcHBlZAppbmRleCA5ODllZWJjLi4yODM2Yzk1IDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9tYWMvU2tpcHBlZAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMv
U2tpcHBlZApAQCAtMzAzLDkgKzMwMyw2IEBAIG1lZGlhL2NvbnRleHQtbWVudS1hY3Rpb25zLmh0
bWwKICMgRmlsZVN5c3RlbSBBUEkgaXMgbm90IHN1cHBvcnRlZC4KIGZhc3QvZmlsZXN5c3RlbQog
Ci0jIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00NDcxMwotZmFzdC9m
cmFtZXMvaWZyYW1lLXJlcGFyZW50aW5nLWFkb3B0LW5vZGUuaHRtbAotCiAjIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00NjIyMwogIyBUaGUgV2ViS2l0IHBsdWdpbiBp
bXBsZW1lbnRhdGlvbiBkb2VzIG5vdCBzdXBwb3J0IGlmcmFtZSBzaGltcy4KIHBsdWdpbnMvaWZy
YW1lLXNoaW1zLmh0bWwKZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9D
aGFuZ2VMb2cKaW5kZXggM2JmOGFjNS4uZmNiZmZlOCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFu
Z2VMb2cKKysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNSBAQAorMjAxMC0xMC0x
MyAgSmVubiBCcmFpdGh3YWl0ZSAgPGplbm5iQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZXNvdXJjZSB0cmFja2luZyBmYWls
dXJlIHdoZW4gdHJ5aW5nIHRvIG1vdmUgYSBmcmFtZSBiZXR3ZWVuIGRvY3VtZW50cworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDQ3MTMKKworICAgICAg
ICBUZXN0OiBmYXN0L2ZyYW1lcy9pZnJhbWUtcmVwYXJlbnRpbmctZmFpbC1sb2FkLmh0bWwKKwor
ICAgICAgICAqIFdlYkNvcmUuZXhwLmluOgorICAgICAgICAqIGxvYWRlci9Eb2N1bWVudExvYWRl
ci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudExvYWRlcjo6dHJhbnNmZXJMb2FkaW5n
UmVzb3VyY2VzVG9OZXdQYWdlKToKKyAgICAgICAgQWRkZWQgbWV0aG9kIHRoYXQgbm90aWZpZXMg
dGhlIGNsaWVudCB0byB1cGRhdGUgcmVzb3VyY2UgdHJhY2tpbmcgZm9yCisgICAgICAgIGxvYWRp
bmcgcmVzb3VyY2VzIHRoYXQgaGF2ZSBiZWVuIHRyYW5zZmVycmVkIHRvIGEgbmV3IGFwZ2UuCisg
ICAgICAgICogbG9hZGVyL0RvY3VtZW50TG9hZGVyLmg6CisgICAgICAgICogbG9hZGVyL0VtcHR5
Q2xpZW50cy5oOgorICAgICAgICAoV2ViQ29yZTo6RW1wdHlGcmFtZUxvYWRlckNsaWVudDo6dHJh
bnNmZXJMb2FkaW5nUmVzb3VyY2VUb05ld1BhZ2UpOgorICAgICAgICBFbXB0eSBtZXRob2QuCisg
ICAgICAgICogbG9hZGVyL0ZyYW1lTG9hZGVyQ2xpZW50Lmg6CisgICAgICAgIEFkZGVkIEFQSSB0
byBub3RpZnkgdGhlIGNsaWVudCB0byB1cGRhdGUgcmVzb3VyY2UgdHJhY2tpbmcgZm9yCisgICAg
ICAgIGEgbG9hZGluZyByZXNvdXJjZSB0aGF0IGhhcyBiZWVuIHRyYW5zZmVycmVkIHRvIGEgbmV3
IHBhZ2UuCisKIDIwMTAtMTAtMTMgIEdhdmluIEJhcnJhY2xvdWdoICA8YmFycmFjbG91Z2hAYXBw
bGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IE9saXZlciBIdW50LgpkaWZmIC0tZ2l0IGEv
V2ViQ29yZS9XZWJDb3JlLmV4cC5pbiBiL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KaW5kZXggOGIx
NTk2OC4uZjY0OWRmMyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgorKysgYi9X
ZWJDb3JlL1dlYkNvcmUuZXhwLmluCkBAIC05NTIsNiArOTUyLDcgQEAgX19aTks3V2ViQ29yZTE0
RG9jdW1lbnRMb2FkZXIxOW9yaWdpbmFsUmVxdWVzdENvcHlFdgogX19aTks3V2ViQ29yZTE0RG9j
dW1lbnRMb2FkZXIyMWlzTG9hZGluZ01haW5SZXNvdXJjZUV2CiBfX1pOSzdXZWJDb3JlMTREb2N1
bWVudExvYWRlcjI4dXJsRm9ySGlzdG9yeVJlZmxlY3RzRmFpbHVyZUV2CiBfX1pOSzdXZWJDb3Jl
MTREb2N1bWVudExvYWRlcjN1cmxFdgorX19aTjdXZWJDb3JlMTREb2N1bWVudExvYWRlcjMzdHJh
bnNmZXJMb2FkaW5nUmVzb3VyY2VzVG9OZXdQYWdlRVBOU180UGFnZUUKIF9fWk5LN1dlYkNvcmUx
NFJlbmRlckxpc3RJdGVtMTBtYXJrZXJUZXh0RXYKIF9fWk5LN1dlYkNvcmUxNFJlc291cmNlSGFu
ZGxlMTBjb25uZWN0aW9uRXYKIF9fWk5LN1dlYkNvcmUxNFJlc291cmNlTG9hZGVyMTFmcmFtZUxv
YWRlckV2CmRpZmYgLS1naXQgYS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudExvYWRlci5jcHAgYi9X
ZWJDb3JlL2xvYWRlci9Eb2N1bWVudExvYWRlci5jcHAKaW5kZXggN2VlN2JjYy4uMmZkMmJmMyAx
MDA2NDQKLS0tIGEvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIuY3BwCisrKyBiL1dlYkNv
cmUvbG9hZGVyL0RvY3VtZW50TG9hZGVyLmNwcApAQCAtNzg3LDYgKzc4NywyOCBAQCB2b2lkIERv
Y3VtZW50TG9hZGVyOjpzdWJyZXNvdXJjZUxvYWRlckZpbmlzaGVkTG9hZGluZ09uZVBhcnQoUmVz
b3VyY2VMb2FkZXIqIGxvYQogICAgICAgICBmcmFtZS0+bG9hZGVyKCktPmNoZWNrTG9hZENvbXBs
ZXRlKCk7ICAgIAogfQogCit2b2lkIERvY3VtZW50TG9hZGVyOjp0cmFuc2ZlckxvYWRpbmdSZXNv
dXJjZXNUb05ld1BhZ2UoUGFnZSogb2xkUGFnZSkKK3sKKyAgICBpZiAob2xkUGFnZSA9PSBtX2Zy
YW1lLT5wYWdlKCkpCisgICAgICAgIHJldHVybjsKKworICAgIEZyYW1lTG9hZGVyQ2xpZW50KiBm
cmFtZUxvYWRlckNsaWVudCA9IGZyYW1lTG9hZGVyKCktPmNsaWVudCgpOworICAgIGNvbnN0IFJl
c291cmNlUmVxdWVzdCYgcmVxdWVzdCA9IG9yaWdpbmFsUmVxdWVzdCgpOworICAgIGlmIChpc0xv
YWRpbmdNYWluUmVzb3VyY2UoKSkgeworICAgICAgICBmcmFtZUxvYWRlckNsaWVudC0+dHJhbnNm
ZXJMb2FkaW5nUmVzb3VyY2VUb05ld1BhZ2UoCisgICAgICAgICAgICBtX21haW5SZXNvdXJjZUxv
YWRlci0+aWRlbnRpZmllcigpLCB0aGlzLCByZXF1ZXN0LCBvbGRQYWdlKTsKKyAgICB9CisKKyAg
ICBpZiAoaXNMb2FkaW5nU3VicmVzb3VyY2VzKCkpIHsKKyAgICAgICAgUmVzb3VyY2VMb2FkZXJT
ZXQ6OmNvbnN0X2l0ZXJhdG9yIGl0ID0gbV9zdWJyZXNvdXJjZUxvYWRlcnMuYmVnaW4oKTsKKyAg
ICAgICAgUmVzb3VyY2VMb2FkZXJTZXQ6OmNvbnN0X2l0ZXJhdG9yIGVuZCA9IG1fc3VicmVzb3Vy
Y2VMb2FkZXJzLmVuZCgpOworICAgICAgICBmb3IgKDsgaXQgIT0gZW5kOyArK2l0KSB7CisgICAg
ICAgICAgICBmcmFtZUxvYWRlckNsaWVudC0+dHJhbnNmZXJMb2FkaW5nUmVzb3VyY2VUb05ld1Bh
Z2UoCisgICAgICAgICAgICAgICAgKCppdCktPmlkZW50aWZpZXIoKSwgdGhpcywgcmVxdWVzdCwg
b2xkUGFnZSk7CisgICAgICAgIH0KKyAgICB9Cit9CisKIHZvaWQgRG9jdW1lbnRMb2FkZXI6Omlj
b25Mb2FkRGVjaXNpb25BdmFpbGFibGUoKQogewogICAgIGlmIChtX2ZyYW1lKQpkaWZmIC0tZ2l0
IGEvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIuaCBiL1dlYkNvcmUvbG9hZGVyL0RvY3Vt
ZW50TG9hZGVyLmgKaW5kZXggNTA4NzliNy4uOTMwYTQ5MCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9s
b2FkZXIvRG9jdW1lbnRMb2FkZXIuaAorKysgYi9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudExvYWRl
ci5oCkBAIC00Niw2ICs0Niw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICBjbGFzcyBGcmFt
ZTsKICAgICBjbGFzcyBGcmFtZUxvYWRlcjsKICAgICBjbGFzcyBNYWluUmVzb3VyY2VMb2FkZXI7
CisgICAgY2xhc3MgUGFnZTsKICAgICBjbGFzcyBSZXNvdXJjZUxvYWRlcjsKICAgICBjbGFzcyBT
Y2hlZHVsZVBhaXI7CiAgICAgY2xhc3MgU2hhcmVkQnVmZmVyOwpAQCAtMTk1LDcgKzE5Niw5IEBA
IG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgdm9pZCByZW1vdmVQbHVnSW5TdHJlYW1Mb2Fk
ZXIoUmVzb3VyY2VMb2FkZXIqKTsKIAogICAgICAgICB2b2lkIHN1YnJlc291cmNlTG9hZGVyRmlu
aXNoZWRMb2FkaW5nT25lUGFydChSZXNvdXJjZUxvYWRlciopOwotICAgICAgICAKKworICAgICAg
ICB2b2lkIHRyYW5zZmVyTG9hZGluZ1Jlc291cmNlc1RvTmV3UGFnZShQYWdlKiBvbGRQYWdlKTsK
KwogICAgICAgICB2b2lkIHNldERlZmVyTWFpblJlc291cmNlRGF0YUxvYWQoYm9vbCBkZWZlcikg
eyBtX2RlZmVyTWFpblJlc291cmNlRGF0YUxvYWQgPSBkZWZlcjsgfQogICAgICAgICBib29sIGRl
ZmVyTWFpblJlc291cmNlRGF0YUxvYWQoKSBjb25zdCB7IHJldHVybiBtX2RlZmVyTWFpblJlc291
cmNlRGF0YUxvYWQ7IH0KICAgICAgICAgCmRpZmYgLS1naXQgYS9XZWJDb3JlL2xvYWRlci9FbXB0
eUNsaWVudHMuaCBiL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5oCmluZGV4IGZkMjAyNTgu
LmQ2MDc2YjkgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5oCisrKyBi
L1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5oCkBAIC0zMzcsNiArMzM3LDcgQEAgcHVibGlj
OgogICAgIHZpcnR1YWwgdm9pZCBkaWRSdW5JbnNlY3VyZUNvbnRlbnQoU2VjdXJpdHlPcmlnaW4q
KSB7IH0KICAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8RnJhbWU+IGNyZWF0ZUZyYW1lKGNvbnN0IEtV
UkwmLCBjb25zdCBTdHJpbmcmLCBIVE1MRnJhbWVPd25lckVsZW1lbnQqLCBjb25zdCBTdHJpbmcm
LCBib29sLCBpbnQsIGludCkgeyByZXR1cm4gMDsgfQogICAgIHZpcnR1YWwgdm9pZCBkaWRUcmFu
c2ZlckNoaWxkRnJhbWVUb05ld0RvY3VtZW50KFBhZ2UqKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQg
dHJhbnNmZXJMb2FkaW5nUmVzb3VyY2VUb05ld1BhZ2UodW5zaWduZWQgbG9uZywgRG9jdW1lbnRM
b2FkZXIqLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBQYWdlKikgeyB9CiAgICAgdmlydHVhbCBQ
YXNzUmVmUHRyPFdpZGdldD4gY3JlYXRlUGx1Z2luKGNvbnN0IEludFNpemUmLCBIVE1MUGx1Z0lu
RWxlbWVudCosIGNvbnN0IEtVUkwmLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYsIGNvbnN0IFZlY3Rv
cjxTdHJpbmc+JiwgY29uc3QgU3RyaW5nJiwgYm9vbCkgeyByZXR1cm4gMDsgfQogICAgIHZpcnR1
YWwgUGFzc1JlZlB0cjxXaWRnZXQ+IGNyZWF0ZUphdmFBcHBsZXRXaWRnZXQoY29uc3QgSW50U2l6
ZSYsIEhUTUxBcHBsZXRFbGVtZW50KiwgY29uc3QgS1VSTCYsIGNvbnN0IFZlY3RvcjxTdHJpbmc+
JiwgY29uc3QgVmVjdG9yPFN0cmluZz4mKSB7IHJldHVybiAwOyB9CiAjaWYgRU5BQkxFKFBMVUdJ
Tl9QUk9YWV9GT1JfVklERU8pCmRpZmYgLS1naXQgYS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRl
ckNsaWVudC5oIGIvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXJDbGllbnQuaAppbmRleCA4NWNm
MDE4Li5mYmM5ZjM4IDEwMDY0NAotLS0gYS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlckNsaWVu
dC5oCisrKyBiL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyQ2xpZW50LmgKQEAgLTIzMSw2ICsy
MzEsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxG
cmFtZT4gY3JlYXRlRnJhbWUoY29uc3QgS1VSTCYgdXJsLCBjb25zdCBTdHJpbmcmIG5hbWUsIEhU
TUxGcmFtZU93bmVyRWxlbWVudCogb3duZXJFbGVtZW50LAogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBjb25zdCBTdHJpbmcmIHJlZmVycmVyLCBib29sIGFsbG93c1Njcm9sbGlu
ZywgaW50IG1hcmdpbldpZHRoLCBpbnQgbWFyZ2luSGVpZ2h0KSA9IDA7CiAgICAgICAgIHZpcnR1
YWwgdm9pZCBkaWRUcmFuc2ZlckNoaWxkRnJhbWVUb05ld0RvY3VtZW50KFBhZ2UqIG9sZFBhZ2Up
ID0gMDsKKyAgICAgICAgdmlydHVhbCB2b2lkIHRyYW5zZmVyTG9hZGluZ1Jlc291cmNlVG9OZXdQ
YWdlKHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgRG9jdW1lbnRMb2FkZXIqLCBjb25zdCBSZXNv
dXJjZVJlcXVlc3QmLCBQYWdlKiBvbGRQYWdlKSA9IDA7CiAgICAgICAgIHZpcnR1YWwgUGFzc1Jl
ZlB0cjxXaWRnZXQ+IGNyZWF0ZVBsdWdpbihjb25zdCBJbnRTaXplJiwgSFRNTFBsdWdJbkVsZW1l
bnQqLCBjb25zdCBLVVJMJiwgY29uc3QgVmVjdG9yPFN0cmluZz4mLCBjb25zdCBWZWN0b3I8U3Ry
aW5nPiYsIGNvbnN0IFN0cmluZyYsIGJvb2wgbG9hZE1hbnVhbGx5KSA9IDA7CiAgICAgICAgIHZp
cnR1YWwgdm9pZCByZWRpcmVjdERhdGFUb1BsdWdpbihXaWRnZXQqIHBsdWdpbldpZGdldCkgPSAw
OwogCmRpZmYgLS1naXQgYS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nIGIvV2ViS2l0L2Nocm9t
aXVtL0NoYW5nZUxvZwppbmRleCAxOGI4YzliLi40MTliN2JhIDEwMDY0NAotLS0gYS9XZWJLaXQv
Y2hyb21pdW0vQ2hhbmdlTG9nCisrKyBiL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNSBAQAorMjAxMC0xMC0xMyAgSmVubiBCcmFpdGh3YWl0ZSAgPGplbm5iQGNocm9taXVt
Lm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBS
ZXNvdXJjZSB0cmFja2luZyBmYWlsdXJlIHdoZW4gdHJ5aW5nIHRvIG1vdmUgYSBmcmFtZSBiZXR3
ZWVuIGRvY3VtZW50cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9NDQ3MTMKKworICAgICAgICAqIHNyYy9GcmFtZUxvYWRlckNsaWVudEltcGwuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpGcmFtZUxvYWRlckNsaWVudEltcGw6OnRyYW5zZmVyTG9hZGluZ1Jl
c291cmNlVG9OZXdQYWdlKToKKyAgICAgICAgRW1wdHkgbWV0aG9kLgorICAgICAgICAqIHNyYy9G
cmFtZUxvYWRlckNsaWVudEltcGwuaDoKKwogMjAxMC0xMC0xMyAgR2F2aW4gQmFycmFjbG91Z2gg
IDxiYXJyYWNsb3VnaEBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgT2xpdmVyIEh1
bnQuCmRpZmYgLS1naXQgYS9XZWJLaXQvY2hyb21pdW0vc3JjL0ZyYW1lTG9hZGVyQ2xpZW50SW1w
bC5jcHAgYi9XZWJLaXQvY2hyb21pdW0vc3JjL0ZyYW1lTG9hZGVyQ2xpZW50SW1wbC5jcHAKaW5k
ZXggZmI3OThmNi4uYzM5OTgyYSAxMDA2NDQKLS0tIGEvV2ViS2l0L2Nocm9taXVtL3NyYy9GcmFt
ZUxvYWRlckNsaWVudEltcGwuY3BwCisrKyBiL1dlYktpdC9jaHJvbWl1bS9zcmMvRnJhbWVMb2Fk
ZXJDbGllbnRJbXBsLmNwcApAQCAtMTM4MSw2ICsxMzgxLDEwIEBAIHZvaWQgRnJhbWVMb2FkZXJD
bGllbnRJbXBsOjpkaWRUcmFuc2ZlckNoaWxkRnJhbWVUb05ld0RvY3VtZW50KFBhZ2UqKQogICAg
IG1fd2ViRnJhbWUtPnNldENsaWVudChuZXdQYXJlbnQtPmNsaWVudCgpKTsKIH0KIAordm9pZCBG
cmFtZUxvYWRlckNsaWVudEltcGw6OnRyYW5zZmVyTG9hZGluZ1Jlc291cmNlVG9OZXdQYWdlKHVu
c2lnbmVkIGxvbmcsIERvY3VtZW50TG9hZGVyKiwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgUGFn
ZSopCit7Cit9CisKIFBhc3NSZWZQdHI8V2lkZ2V0PiBGcmFtZUxvYWRlckNsaWVudEltcGw6OmNy
ZWF0ZVBsdWdpbigKICAgICBjb25zdCBJbnRTaXplJiBzaXplLCAvLyBGSVhNRTogaG93IGRvIHdl
IHVzZSB0aGlzPwogICAgIEhUTUxQbHVnSW5FbGVtZW50KiBlbGVtZW50LApkaWZmIC0tZ2l0IGEv
V2ViS2l0L2Nocm9taXVtL3NyYy9GcmFtZUxvYWRlckNsaWVudEltcGwuaCBiL1dlYktpdC9jaHJv
bWl1bS9zcmMvRnJhbWVMb2FkZXJDbGllbnRJbXBsLmgKaW5kZXggMGIxNWRiNi4uZmVjZDA0YiAx
MDA2NDQKLS0tIGEvV2ViS2l0L2Nocm9taXVtL3NyYy9GcmFtZUxvYWRlckNsaWVudEltcGwuaAor
KysgYi9XZWJLaXQvY2hyb21pdW0vc3JjL0ZyYW1lTG9hZGVyQ2xpZW50SW1wbC5oCkBAIC0xODAs
NiArMTgwLDcgQEAgcHVibGljOgogICAgICAgICBjb25zdCBXVEY6OlN0cmluZyYgcmVmZXJyZXIs
IGJvb2wgYWxsb3dzU2Nyb2xsaW5nLAogICAgICAgICBpbnQgbWFyZ2luV2lkdGgsIGludCBtYXJn
aW5IZWlnaHQpOwogICAgIHZpcnR1YWwgdm9pZCBkaWRUcmFuc2ZlckNoaWxkRnJhbWVUb05ld0Rv
Y3VtZW50KFdlYkNvcmU6OlBhZ2UqKTsKKyAgICB2aXJ0dWFsIHZvaWQgdHJhbnNmZXJMb2FkaW5n
UmVzb3VyY2VUb05ld1BhZ2UodW5zaWduZWQgbG9uZywgV2ViQ29yZTo6RG9jdW1lbnRMb2FkZXIq
LCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBXZWJDb3JlOjpQYWdlKik7CiAgICAg
dmlydHVhbCBQYXNzUmVmUHRyPFdlYkNvcmU6OldpZGdldD4gY3JlYXRlUGx1Z2luKAogICAgICAg
ICBjb25zdCBXZWJDb3JlOjpJbnRTaXplJiwgV2ViQ29yZTo6SFRNTFBsdWdJbkVsZW1lbnQqLCBj
b25zdCBXZWJDb3JlOjpLVVJMJiwKICAgICAgICAgY29uc3QgVmVjdG9yPFdURjo6U3RyaW5nPiYs
IGNvbnN0IFZlY3RvcjxXVEY6OlN0cmluZz4mLApkaWZmIC0tZ2l0IGEvV2ViS2l0L2VmbC9DaGFu
Z2VMb2cgYi9XZWJLaXQvZWZsL0NoYW5nZUxvZwppbmRleCBhOGRmY2FmLi4yYzI4MWViIDEwMDY0
NAotLS0gYS9XZWJLaXQvZWZsL0NoYW5nZUxvZworKysgYi9XZWJLaXQvZWZsL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDE1IEBACisyMDEwLTEwLTEzICBKZW5uIEJyYWl0aHdhaXRlICA8amVubmJAY2hy
b21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIFJlc291cmNlIHRyYWNraW5nIGZhaWx1cmUgd2hlbiB0cnlpbmcgdG8gbW92ZSBhIGZyYW1l
IGJldHdlZW4gZG9jdW1lbnRzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD00NDcxMworCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJD
bGllbnRFZmwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXJDbGllbnRFZmw6OnRy
YW5zZmVyTG9hZGluZ1Jlc291cmNlVG9OZXdQYWdlKToKKyAgICAgICAgRW1wdHkgbWV0aG9kLgor
ICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50RWZsLmg6CisKIDIwMTAt
MTAtMTMgIEd5dXlvdW5nIEtpbSAgPGd5dXlvdW5nLmtpbUBzYW1zdW5nLmNvbT4KIAogICAgICAg
ICBSZXZpZXdlZCBieSBLZW5uZXRoIFJvaGRlIENocmlzdGlhbnNlbi4KZGlmZiAtLWdpdCBhL1dl
YktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRFZmwuY3BwIGIvV2ViS2l0
L2VmbC9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEVmbC5jcHAKaW5kZXggOGQ5NjE3
OS4uZmRkNmU2MiAxMDA2NDQKLS0tIGEvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9GcmFtZUxv
YWRlckNsaWVudEVmbC5jcHAKKysrIGIvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9GcmFtZUxv
YWRlckNsaWVudEVmbC5jcHAKQEAgLTM4Myw2ICszODMsMTAgQEAgdm9pZCBGcmFtZUxvYWRlckNs
aWVudEVmbDo6ZGlkVHJhbnNmZXJDaGlsZEZyYW1lVG9OZXdEb2N1bWVudChQYWdlKikKIHsKIH0K
IAordm9pZCBGcmFtZUxvYWRlckNsaWVudEVmbDo6dHJhbnNmZXJMb2FkaW5nUmVzb3VyY2VUb05l
d1BhZ2UodW5zaWduZWQgbG9uZywgRG9jdW1lbnRMb2FkZXIqLCBjb25zdCBSZXNvdXJjZVJlcXVl
c3QmLCBQYWdlKikKK3sKK30KKwogdm9pZCBGcmFtZUxvYWRlckNsaWVudEVmbDo6cmVkaXJlY3RE
YXRhVG9QbHVnaW4oV2lkZ2V0KiBwbHVnaW5XaWRnZXQpCiB7CiAgICAgQVNTRVJUKCFtX3BsdWdp
blZpZXcpOwpkaWZmIC0tZ2l0IGEvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRl
ckNsaWVudEVmbC5oIGIvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVu
dEVmbC5oCmluZGV4IGQyNTBiNzYuLjE3ZmJiYjUgMTAwNjQ0Ci0tLSBhL1dlYktpdC9lZmwvV2Vi
Q29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRFZmwuaAorKysgYi9XZWJLaXQvZWZsL1dlYkNv
cmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50RWZsLmgKQEAgLTEzNSw2ICsxMzUsNyBAQCBjbGFz
cyBGcmFtZUxvYWRlckNsaWVudEVmbCA6IHB1YmxpYyBGcmFtZUxvYWRlckNsaWVudCB7CiAgICAg
dmlydHVhbCBQYXNzUmVmUHRyPEZyYW1lPiBjcmVhdGVGcmFtZShjb25zdCBLVVJMJiB1cmwsIGNv
bnN0IFN0cmluZyYgbmFtZSwgSFRNTEZyYW1lT3duZXJFbGVtZW50KiBvd25lckVsZW1lbnQsCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgU3RyaW5nJiByZWZlcnJlciwgYm9v
bCBhbGxvd3NTY3JvbGxpbmcsIGludCBtYXJnaW5XaWR0aCwgaW50IG1hcmdpbkhlaWdodCk7CiAg
ICAgdmlydHVhbCB2b2lkIGRpZFRyYW5zZmVyQ2hpbGRGcmFtZVRvTmV3RG9jdW1lbnQoUGFnZSop
OworICAgIHZpcnR1YWwgdm9pZCB0cmFuc2ZlckxvYWRpbmdSZXNvdXJjZVRvTmV3UGFnZSh1bnNp
Z25lZCBsb25nLCBXZWJDb3JlOjpEb2N1bWVudExvYWRlciosIGNvbnN0IFJlc291cmNlUmVxdWVz
dCYsIFdlYkNvcmU6OlBhZ2UqKTsKIAogICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxXaWRnZXQ+IGNy
ZWF0ZVBsdWdpbihjb25zdCBJbnRTaXplJiwgSFRNTFBsdWdJbkVsZW1lbnQqLCBjb25zdCBLVVJM
JiwgY29uc3QgV1RGOjpWZWN0b3I8U3RyaW5nPiYsIGNvbnN0IFdURjo6VmVjdG9yPFN0cmluZz4m
LCBjb25zdCBTdHJpbmcmLCBib29sKTsKICAgICB2aXJ0dWFsIHZvaWQgcmVkaXJlY3REYXRhVG9Q
bHVnaW4oV2lkZ2V0KiBwbHVnaW5XaWRnZXQpOwpkaWZmIC0tZ2l0IGEvV2ViS2l0L2d0ay9DaGFu
Z2VMb2cgYi9XZWJLaXQvZ3RrL0NoYW5nZUxvZwppbmRleCA4MWQzYjQxLi45OGI0MDRmIDEwMDY0
NAotLS0gYS9XZWJLaXQvZ3RrL0NoYW5nZUxvZworKysgYi9XZWJLaXQvZ3RrL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDE1IEBACisyMDEwLTEwLTEzICBKZW5uIEJyYWl0aHdhaXRlICA8amVubmJAY2hy
b21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIFJlc291cmNlIHRyYWNraW5nIGZhaWx1cmUgd2hlbiB0cnlpbmcgdG8gbW92ZSBhIGZyYW1l
IGJldHdlZW4gZG9jdW1lbnRzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD00NDcxMworCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJD
bGllbnRHdGsuY3BwOgorICAgICAgICAoV2ViS2l0OjpGcmFtZUxvYWRlckNsaWVudDo6dHJhbnNm
ZXJMb2FkaW5nUmVzb3VyY2VUb05ld1BhZ2UpOgorICAgICAgICBFbXB0eSBtZXRob2QuCisgICAg
ICAgICogV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRHdGsuaDoKKwogMjAxMC0xMC0x
MyAgWGFuIExvcGV6ICA8eGxvcGV6QGlnYWxpYS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkg
R3VzdGF2byBOb3JvbmhhLgpkaWZmIC0tZ2l0IGEvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9G
cmFtZUxvYWRlckNsaWVudEd0ay5jcHAgYi9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0ZyYW1l
TG9hZGVyQ2xpZW50R3RrLmNwcAppbmRleCAxMzQwMWY1Li45YjA3MmNiIDEwMDY0NAotLS0gYS9X
ZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50R3RrLmNwcAorKysgYi9X
ZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50R3RrLmNwcApAQCAtNjE4
LDYgKzYxOCwxMCBAQCB2b2lkIEZyYW1lTG9hZGVyQ2xpZW50OjpkaWRUcmFuc2ZlckNoaWxkRnJh
bWVUb05ld0RvY3VtZW50KFdlYkNvcmU6OlBhZ2UqKQogICAgIEFTU0VSVChjb3JlKGdldFZpZXdG
cm9tRnJhbWUobV9mcmFtZSkpID09IGNvcmVGcmFtZS0+cGFnZSgpKTsKIH0KIAordm9pZCBGcmFt
ZUxvYWRlckNsaWVudDo6dHJhbnNmZXJMb2FkaW5nUmVzb3VyY2VUb05ld1BhZ2UodW5zaWduZWQg
bG9uZywgV2ViQ29yZTo6RG9jdW1lbnRMb2FkZXIqLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJl
cXVlc3QmLCBXZWJDb3JlOjpQYWdlKikKK3sKK30KKwogdm9pZCBGcmFtZUxvYWRlckNsaWVudDo6
cmVkaXJlY3REYXRhVG9QbHVnaW4oV2lkZ2V0KiBwbHVnaW5XaWRnZXQpCiB7CiAgICAgQVNTRVJU
KCFtX3BsdWdpblZpZXcpOwpkaWZmIC0tZ2l0IGEvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9G
cmFtZUxvYWRlckNsaWVudEd0ay5oIGIvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9GcmFtZUxv
YWRlckNsaWVudEd0ay5oCmluZGV4IDIwNmU3ODAuLjY2NmMyNWUgMTAwNjQ0Ci0tLSBhL1dlYktp
dC9ndGsvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRHdGsuaAorKysgYi9XZWJLaXQv
Z3RrL1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50R3RrLmgKQEAgLTExNSw2ICsxMTUs
NyBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKICAgICAgICAgdmlydHVhbCBQYXNzUmVmUHRyPFdlYkNv
cmU6OkZyYW1lPiBjcmVhdGVGcmFtZShjb25zdCBXZWJDb3JlOjpLVVJMJiB1cmwsIGNvbnN0IFdU
Rjo6U3RyaW5nJiBuYW1lLCBXZWJDb3JlOjpIVE1MRnJhbWVPd25lckVsZW1lbnQqIG93bmVyRWxl
bWVudCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgV1RGOjpTdHJp
bmcmIHJlZmVycmVyLCBib29sIGFsbG93c1Njcm9sbGluZywgaW50IG1hcmdpbldpZHRoLCBpbnQg
bWFyZ2luSGVpZ2h0KTsKICAgICAgICAgdmlydHVhbCB2b2lkIGRpZFRyYW5zZmVyQ2hpbGRGcmFt
ZVRvTmV3RG9jdW1lbnQoV2ViQ29yZTo6UGFnZSopOworICAgICAgICB2aXJ0dWFsIHZvaWQgdHJh
bnNmZXJMb2FkaW5nUmVzb3VyY2VUb05ld1BhZ2UodW5zaWduZWQgbG9uZywgV2ViQ29yZTo6RG9j
dW1lbnRMb2FkZXIqLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBXZWJDb3JlOjpQ
YWdlKik7CiAgICAgICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxXZWJDb3JlOjpXaWRnZXQ+IGNyZWF0
ZVBsdWdpbihjb25zdCBXZWJDb3JlOjpJbnRTaXplJiwgV2ViQ29yZTo6SFRNTFBsdWdJbkVsZW1l
bnQqLCBjb25zdCBXZWJDb3JlOjpLVVJMJiwgY29uc3QgV1RGOjpWZWN0b3I8V1RGOjpTdHJpbmc+
JiwgY29uc3QgV1RGOjpWZWN0b3I8V1RGOjpTdHJpbmc+JiwgY29uc3QgV1RGOjpTdHJpbmcmLCBi
b29sKTsKICAgICAgICAgdmlydHVhbCB2b2lkIHJlZGlyZWN0RGF0YVRvUGx1Z2luKFdlYkNvcmU6
OldpZGdldCogcGx1Z2luV2lkZ2V0KTsKICAgICAgICAgdmlydHVhbCBQYXNzUmVmUHRyPFdlYkNv
cmU6OldpZGdldD4gY3JlYXRlSmF2YUFwcGxldFdpZGdldChjb25zdCBXZWJDb3JlOjpJbnRTaXpl
JiwgV2ViQ29yZTo6SFRNTEFwcGxldEVsZW1lbnQqLCBjb25zdCBXZWJDb3JlOjpLVVJMJiBiYXNl
VVJMLCBjb25zdCBXVEY6OlZlY3RvcjxXVEY6OlN0cmluZz4mIHBhcmFtTmFtZXMsIGNvbnN0IFdU
Rjo6VmVjdG9yPFdURjo6U3RyaW5nPiYgcGFyYW1WYWx1ZXMpOwpkaWZmIC0tZ2l0IGEvV2ViS2l0
L2hhaWt1L0NoYW5nZUxvZyBiL1dlYktpdC9oYWlrdS9DaGFuZ2VMb2cKaW5kZXggZDU1Y2U3MS4u
ZWFkZTg3MyAxMDA2NDQKLS0tIGEvV2ViS2l0L2hhaWt1L0NoYW5nZUxvZworKysgYi9XZWJLaXQv
aGFpa3UvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTAtMTAtMTMgIEplbm4gQnJhaXRo
d2FpdGUgIDxqZW5uYkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgUmVzb3VyY2UgdHJhY2tpbmcgZmFpbHVyZSB3aGVuIHRyeWlu
ZyB0byBtb3ZlIGEgZnJhbWUgYmV0d2VlbiBkb2N1bWVudHMKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ0NzEzCisKKyAgICAgICAgKiBXZWJDb3JlU3Vw
cG9ydC9GcmFtZUxvYWRlckNsaWVudEhhaWt1LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1l
TG9hZGVyQ2xpZW50SGFpa3U6OnRyYW5zZmVyTG9hZGluZ1Jlc291cmNlVG9OZXdQYWdlKToKKyAg
ICAgICAgRW1wdHkgbWV0aG9kLgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVy
Q2xpZW50SGFpa3UuaDoKKwogMjAxMC0wOS0yOCAgSmVubiBCcmFpdGh3YWl0ZSAgPGplbm5iQGNo
cm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBEbWl0cnkgVGl0b3YuCmRpZmYgLS1n
aXQgYS9XZWJLaXQvaGFpa3UvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRIYWlrdS5j
cHAgYi9XZWJLaXQvaGFpa3UvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRIYWlrdS5j
cHAKaW5kZXggY2FlMGVkMS4uODlmOGUwZiAxMDA2NDQKLS0tIGEvV2ViS2l0L2hhaWt1L1dlYkNv
cmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50SGFpa3UuY3BwCisrKyBiL1dlYktpdC9oYWlrdS9X
ZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEhhaWt1LmNwcApAQCAtNzQ1LDYgKzc0NSwx
MCBAQCB2b2lkIEZyYW1lTG9hZGVyQ2xpZW50SGFpa3U6OmRpZFRyYW5zZmVyQ2hpbGRGcmFtZVRv
TmV3RG9jdW1lbnQoUGFnZSopCiB7CiB9CiAKK3ZvaWQgRnJhbWVMb2FkZXJDbGllbnRIYWlrdTo6
dHJhbnNmZXJMb2FkaW5nUmVzb3VyY2VUb05ld1BhZ2UodW5zaWduZWQgbG9uZywgRG9jdW1lbnRM
b2FkZXIqLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBQYWdlKikKK3sKK30KKwogT2JqZWN0Q29u
dGVudFR5cGUgRnJhbWVMb2FkZXJDbGllbnRIYWlrdTo6b2JqZWN0Q29udGVudFR5cGUoY29uc3Qg
S1VSTCYgdXJsLCBjb25zdCBTdHJpbmcmIG1pbWVUeXBlKQogewogICAgIG5vdEltcGxlbWVudGVk
KCk7CmRpZmYgLS1naXQgYS9XZWJLaXQvaGFpa3UvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJD
bGllbnRIYWlrdS5oIGIvV2ViS2l0L2hhaWt1L1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xp
ZW50SGFpa3UuaAppbmRleCAxNzAxY2IwLi5kYmM5ODgwIDEwMDY0NAotLS0gYS9XZWJLaXQvaGFp
a3UvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRIYWlrdS5oCisrKyBiL1dlYktpdC9o
YWlrdS9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEhhaWt1LmgKQEAgLTIyMiw2ICsy
MjIsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgSFRNTEZyYW1lT3duZXJFbGVtZW50KiwgY29uc3QgU3RyaW5nJiBy
ZWZlcnJlciwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBi
b29sIGFsbG93c1Njcm9sbGluZywgaW50IG1hcmdpbldpZHRoLCBpbnQgbWFyZ2luSGVpZ2h0KTsK
ICAgICAgICAgdmlydHVhbCB2b2lkIGRpZFRyYW5zZmVyQ2hpbGRGcmFtZVRvTmV3RG9jdW1lbnQo
V2ViQ29yZTo6UGFnZSopOworICAgICAgICB2aXJ0dWFsIHZvaWQgdHJhbnNmZXJMb2FkaW5nUmVz
b3VyY2VUb05ld1BhZ2UodW5zaWduZWQgbG9uZywgV2ViQ29yZTo6RG9jdW1lbnRMb2FkZXIqLCBj
b25zdCBSZXNvdXJjZVJlcXVlc3QmLCBXZWJDb3JlOjpQYWdlKik7CiAgICAgICAgIHZpcnR1YWwg
UGFzc1JlZlB0cjxXaWRnZXQ+IGNyZWF0ZVBsdWdpbihjb25zdCBJbnRTaXplJiwgSFRNTFBsdWdJ
bkVsZW1lbnQqLCBjb25zdCBLVVJMJiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiwgY29uc3QgVmVjdG9yPFN0cmlu
Zz4mLCBjb25zdCBTdHJpbmcmLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgYm9vbCBsb2FkTWFudWFsbHkpOwpkaWZmIC0tZ2l0IGEvV2ViS2l0L21hYy9D
aGFuZ2VMb2cgYi9XZWJLaXQvbWFjL0NoYW5nZUxvZwppbmRleCA1MGQ2YWMxLi41ZmFiMzQ1IDEw
MDY0NAotLS0gYS9XZWJLaXQvbWFjL0NoYW5nZUxvZworKysgYi9XZWJLaXQvbWFjL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDI0IEBACisyMDEwLTEwLTEzICBKZW5uIEJyYWl0aHdhaXRlICA8amVubmJA
Y2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIFJlc291cmNlIHRyYWNraW5nIGZhaWx1cmUgd2hlbiB0cnlpbmcgdG8gbW92ZSBhIGZy
YW1lIGJldHdlZW4gZG9jdW1lbnRzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD00NDcxMworCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVM
b2FkZXJDbGllbnQuaDoKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNs
aWVudC5tbToKKyAgICAgICAgKFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpkaWRUcmFuc2ZlckNoaWxk
RnJhbWVUb05ld0RvY3VtZW50KToKKyAgICAgICAgKFdlYkZyYW1lTG9hZGVyQ2xpZW50Ojp0cmFu
c2ZlckxvYWRpbmdSZXNvdXJjZVRvTmV3UGFnZSk6CisgICAgICAgIFVwZGF0ZSByZXNvdXJjZSB0
cmFja2luZyBmb3IgYSByZXNvdXJjZSBsb2FkIHRoYXQgaGFzIGJlZW4gdHJhbnNmZXJyZWQKKyAg
ICAgICAgdG8gYSBuZXcgcGFnZS4KKworICAgICAgICAqIFdlYlZpZXcvV2ViRGVsZWdhdGVJbXBs
ZW1lbnRhdGlvbkNhY2hpbmcuaDoKKyAgICAgICAgKiBXZWJWaWV3L1dlYlJlc291cmNlTG9hZERl
bGVnYXRlLmg6CisgICAgICAgIEFkZGVkIEFQSSBmb3IgV2ViUmVzb3VyY2VMb2FkRGVsZWdhdGUg
dG8gdHJhbnNmZXIgaW5mbyBhYm91dCBhIGxvYWRpbmcgcmVzb3VyY2UgZnJvbSBhbiBvbGQgV2Vi
Vmlldy4KKyAgICAgICAgKiBXZWJWaWV3L1dlYlZpZXcubW06CisgICAgICAgICgtW1dlYlZpZXcg
X2NhY2hlUmVzb3VyY2VMb2FkRGVsZWdhdGVJbXBsZW1lbnRhdGlvbnNdKToKKyAgICAgICAgQ2Fj
aGUgdGhlIG5ldyBmdW5jdGlvbiBmb3IgdHJhbnNmZXJyaW5nIGxvYWRpbmcgcmVzb3VyY2UuCisK
IDIwMTAtMTAtMTIgIEFuZHkgRXN0ZXMgIDxhZXN0ZXNAYXBwbGUuY29tPgogCiAgICAgICAgIFJ1
YmJlci1zdGFtcGVkIGJ5IERhcmluIEFkbGVyLgpkaWZmIC0tZ2l0IGEvV2ViS2l0L21hYy9XZWJD
b3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oIGIvV2ViS2l0L21hYy9XZWJDb3JlU3Vw
cG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oCmluZGV4IDBiYWE1NWMuLmI2N2YxMmEgMTAwNjQ0
Ci0tLSBhL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaAor
KysgYi9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmgKQEAg
LTE5NCw2ICsxOTQsNyBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxXZWJDb3Jl
OjpGcmFtZT4gY3JlYXRlRnJhbWUoY29uc3QgV2ViQ29yZTo6S1VSTCYgdXJsLCBjb25zdCBXVEY6
OlN0cmluZyYgbmFtZSwgV2ViQ29yZTo6SFRNTEZyYW1lT3duZXJFbGVtZW50KiwKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBXVEY6OlN0cmluZyYgcmVmZXJy
ZXIsIGJvb2wgYWxsb3dzU2Nyb2xsaW5nLCBpbnQgbWFyZ2luV2lkdGgsIGludCBtYXJnaW5IZWln
aHQpOwogICAgIHZpcnR1YWwgdm9pZCBkaWRUcmFuc2ZlckNoaWxkRnJhbWVUb05ld0RvY3VtZW50
KFdlYkNvcmU6OlBhZ2UqIG9sZFBhZ2UpOworICAgIHZpcnR1YWwgdm9pZCB0cmFuc2ZlckxvYWRp
bmdSZXNvdXJjZVRvTmV3UGFnZSh1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIFdlYkNvcmU6OkRv
Y3VtZW50TG9hZGVyKiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgV2ViQ29yZTo6
UGFnZSogb2xkUGFnZSk7CiAgICAgdmlydHVhbCBQYXNzUmVmUHRyPFdlYkNvcmU6OldpZGdldD4g
Y3JlYXRlUGx1Z2luKGNvbnN0IFdlYkNvcmU6OkludFNpemUmLCBXZWJDb3JlOjpIVE1MUGx1Z0lu
RWxlbWVudCosIGNvbnN0IFdlYkNvcmU6OktVUkwmLCBjb25zdCBWZWN0b3I8V1RGOjpTdHJpbmc+
JiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFZlY3Rv
cjxXVEY6OlN0cmluZz4mLCBjb25zdCBXVEY6OlN0cmluZyYsIGJvb2wpOwogICAgIHZpcnR1YWwg
dm9pZCByZWRpcmVjdERhdGFUb1BsdWdpbihXZWJDb3JlOjpXaWRnZXQqIHBsdWdpbldpZGdldCk7
CmRpZmYgLS1naXQgYS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xp
ZW50Lm1tIGIvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5t
bQppbmRleCA1OTM3MDIyLi42M2QwNzQ1IDEwMDY0NAotLS0gYS9XZWJLaXQvbWFjL1dlYkNvcmVT
dXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lm1tCisrKyBiL1dlYktpdC9tYWMvV2ViQ29yZVN1
cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQubW0KQEAgLTEzODYsMTEgKzEzODYsMzUgQEAgUGFz
c1JlZlB0cjxGcmFtZT4gV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmNyZWF0ZUZyYW1lKGNvbnN0IEtV
UkwmIHVybCwgY29uc3QgU3RyaW4KIAogdm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlkVHJh
bnNmZXJDaGlsZEZyYW1lVG9OZXdEb2N1bWVudChQYWdlKiBvbGRQYWdlKQogewotICAgIGlmIChv
bGRQYWdlID09IGNvcmUobV93ZWJGcmFtZS5nZXQoKSktPnBhZ2UoKSkKKyAgICBGcmFtZSogY29y
ZUZyYW1lID0gY29yZShtX3dlYkZyYW1lLmdldCgpKTsKKyAgICBpZiAob2xkUGFnZSA9PSBjb3Jl
RnJhbWUtPnBhZ2UoKSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgLy8gVXBkYXRlIHJlc291cmNl
IHRyYWNraW5nIG5vdyB0aGF0IGZyYW1lIGlzIGluIGEgZGlmZmVyZW50IHBhZ2UuCi0gICAgLy8g
VE9ETyhqZW5uYik6IHVwZGF0ZSByZXNvdXJjZSB0cmFja2luZyBbYnVnIDQ0NzEzXQorICAgIERv
Y3VtZW50TG9hZGVyKiBsb2FkZXIgPSBjb3JlRnJhbWUtPmxvYWRlcigpLT5kb2N1bWVudExvYWRl
cigpOworICAgIGxvYWRlci0+dHJhbnNmZXJMb2FkaW5nUmVzb3VyY2VzVG9OZXdQYWdlKG9sZFBh
Z2UpOworfQorCit2b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50Ojp0cmFuc2ZlckxvYWRpbmdSZXNv
dXJjZVRvTmV3UGFnZSh1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIERvY3VtZW50TG9hZGVyKiBs
b2FkZXIsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgUGFnZSogb2xkUGFnZSkKK3sK
KyAgICBGcmFtZSogY29yZUZyYW1lID0gY29yZShtX3dlYkZyYW1lLmdldCgpKTsKKyAgICBBU1NF
UlQob2xkUGFnZSAhPSBjb3JlRnJhbWUtPnBhZ2UoKSk7CisKKyAgICBXZWJWaWV3KiB3ZWJWaWV3
ID0gZ2V0V2ViVmlldyhtX3dlYkZyYW1lLmdldCgpKTsKKyAgICBBU1NFUlQoIVt3ZWJWaWV3IF9v
YmplY3RGb3JJZGVudGlmaWVyOmlkZW50aWZpZXJdKTsKKworICAgIGFzc2lnbklkZW50aWZpZXJU
b0luaXRpYWxSZXF1ZXN0KGlkZW50aWZpZXIsIGxvYWRlciwgcmVxdWVzdCk7CisKKyAgICBXZWJW
aWV3KiBvbGRXZWJWaWV3ID0ga2l0KG9sZFBhZ2UpOworICAgIGlkIG9sZFJlc291cmNlID0gW29s
ZFdlYlZpZXcgX29iamVjdEZvcklkZW50aWZpZXI6aWRlbnRpZmllcl07CisgICAgQVNTRVJUKG9s
ZFJlc291cmNlKTsKKworICAgIC8vIFRyYW5zZmVyIGluZm8gdGhhdCBtYXkgYmUgc3RvcmVkIGFi
b3V0IHRoZSByZXNvdXJjZSBmcm9tIHRoZSBvbGQgV2ViVmlldy4KKyAgICBXZWJSZXNvdXJjZURl
bGVnYXRlSW1wbGVtZW50YXRpb25DYWNoZSogaW1wbGVtZW50YXRpb25zID0gV2ViVmlld0dldFJl
c291cmNlTG9hZERlbGVnYXRlSW1wbGVtZW50YXRpb25zKHdlYlZpZXcpOworICAgIGlmIChpbXBs
ZW1lbnRhdGlvbnMtPnRyYW5zZmVyTG9hZGluZ1Jlc291cmNlRnJvbVdlYlZpZXdGdW5jKQorICAg
ICAgICBDYWxsUmVzb3VyY2VMb2FkRGVsZWdhdGUoaW1wbGVtZW50YXRpb25zLT50cmFuc2Zlckxv
YWRpbmdSZXNvdXJjZUZyb21XZWJWaWV3RnVuYywgd2ViVmlldywgQHNlbGVjdG9yKHdlYlZpZXc6
cmVzb3VyY2U6dHJhbnNmZXJMb2FkaW5nUmVzb3VyY2U6ZnJvbVdlYlZpZXc6KSwgW3dlYlZpZXcg
X29iamVjdEZvcklkZW50aWZpZXI6aWRlbnRpZmllcl0sIG9sZFJlc291cmNlLCBvbGRXZWJWaWV3
KTsKKworICAgIFtvbGRXZWJWaWV3IF9yZW1vdmVPYmplY3RGb3JJZGVudGlmaWVyOmlkZW50aWZp
ZXJdOwogfQogCiBPYmplY3RDb250ZW50VHlwZSBXZWJGcmFtZUxvYWRlckNsaWVudDo6b2JqZWN0
Q29udGVudFR5cGUoY29uc3QgS1VSTCYgdXJsLCBjb25zdCBTdHJpbmcmIG1pbWVUeXBlKQpkaWZm
IC0tZ2l0IGEvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkRlbGVnYXRlSW1wbGVtZW50YXRpb25DYWNo
aW5nLmggYi9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViRGVsZWdhdGVJbXBsZW1lbnRhdGlvbkNhY2hp
bmcuaAppbmRleCAyYWFkYzgzLi5iOWIwYzA2IDEwMDY0NAotLS0gYS9XZWJLaXQvbWFjL1dlYlZp
ZXcvV2ViRGVsZWdhdGVJbXBsZW1lbnRhdGlvbkNhY2hpbmcuaAorKysgYi9XZWJLaXQvbWFjL1dl
YlZpZXcvV2ViRGVsZWdhdGVJbXBsZW1lbnRhdGlvbkNhY2hpbmcuaApAQCAtNDgsNiArNDgsNyBA
QCBzdHJ1Y3QgV2ViUmVzb3VyY2VEZWxlZ2F0ZUltcGxlbWVudGF0aW9uQ2FjaGUgewogICAgIElN
UCB3aWxsQ2FjaGVSZXNwb25zZUZ1bmM7CiAgICAgSU1QIHBsdWdJbkZhaWxlZFdpdGhFcnJvckZ1
bmM7CiAgICAgSU1QIHNob3VsZFVzZUNyZWRlbnRpYWxTdG9yYWdlRnVuYzsKKyAgICBJTVAgdHJh
bnNmZXJMb2FkaW5nUmVzb3VyY2VGcm9tV2ViVmlld0Z1bmM7CiB9OwogCiBzdHJ1Y3QgV2ViRnJh
bWVMb2FkRGVsZWdhdGVJbXBsZW1lbnRhdGlvbkNhY2hlIHsKZGlmZiAtLWdpdCBhL1dlYktpdC9t
YWMvV2ViVmlldy9XZWJSZXNvdXJjZUxvYWREZWxlZ2F0ZS5oIGIvV2ViS2l0L21hYy9XZWJWaWV3
L1dlYlJlc291cmNlTG9hZERlbGVnYXRlLmgKaW5kZXggNzdkODRhZC4uMGU0Zjg3OCAxMDA2NDQK
LS0tIGEvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlJlc291cmNlTG9hZERlbGVnYXRlLmgKKysrIGIv
V2ViS2l0L21hYy9XZWJWaWV3L1dlYlJlc291cmNlTG9hZERlbGVnYXRlLmgKQEAgLTE2MSw2ICsx
NjEsMTYgQEAKICovCiAtICh2b2lkKXdlYlZpZXc6KFdlYlZpZXcgKilzZW5kZXIgcGx1Z0luRmFp
bGVkV2l0aEVycm9yOihOU0Vycm9yICopZXJyb3IgZGF0YVNvdXJjZTooV2ViRGF0YVNvdXJjZSAq
KWRhdGFTb3VyY2U7CiAKKy8qIQorICAgIEBtZXRob2Qgd2ViVmlldzpyZXNvdXJjZTp0cmFuc2Zl
ckxvYWRpbmdSZXNvdXJjZTpmcm9tV2ViVmlldzoKKyAgICBAZGlzY3Vzc2lvbiBUaGlzIG1lc3Nh
Z2UgaXMgc2VudCBhZnRlciBhIGZyYW1lIGhhcyBiZWVuIG1vdmVkIHRvIGEgbmV3IHBhZ2Ugd2l0
aG91dCBkaXNydXB0aW5nIHJlc291cmNlIGxvYWRzLiBBbnkgcmVzb3VyY2VzIHRoYXQgYXJlIGJl
aW5nIGxvYWRlZCBieSB0aGF0IGZyYW1lIGFyZSB0cmFuc2ZlcnJlZCB0byB0aGUgbmV3IHBhZ2Uu
IElmIHRoZSBXZWJSZXNvdXJjZUxvYWREZWxlZ2F0ZSBpbXBsZW1lbnRhdGlvbiBzdG9yZXMgYW55
IGluZm9ybWF0aW9uIGFib3V0IHRoZSBsb2FkaW5nIHJlc291cmNlLCB0aGF0IGluZm9ybWF0aW9u
IHNob3VsZCBiZSB0cmFuc2ZlcnJlZCBmcm9tIHRoZSBXZWJSZXNvdXJjZUxvYWREZWxlZ2F0ZSBv
ZiB0aGUgb2xkIFdlYlZpZXcuIFRoZSBvbGQgV2ViVmlldyBtdXN0IGNlYXNlIHRyYWNraW5nIG9m
IHRoZSByZXNvdXJjZSBsb2FkIGFmdGVyIHRoaXMgbm90aWZpY2F0aW9uLgorICAgIEBwYXJhbSB3
ZWJWaWV3IFRoZSBXZWJWaWV3IHdobyBpcyB0aGUgc2VuZGVyIG9mIHRoZSBtZXNzYWdlLgorICAg
IEBwYXJhbSBpZGVudGlmaWVyIEFuIGlkZW50aWZpZXIgdGhhdCBjYW4gYmUgdXNlZCB0byB0cmFj
ayB0aGUgcHJvZ3Jlc3Mgb2YgYSByZXNvdXJjZSBsb2FkIGFjcm9zcyBtdWx0aXBsZSBjYWxsIGJh
Y2tzLgorICAgIEBwYXJhbSBvbGRSZXNvdXJjZSBUaGUgaWRlbnRpZmllciB1c2VkIGJ5IHRoZSBv
bGQgV2ViVmlldyB0byB0cmFjayB0aGUgcHJvZ3Jlc3Mgb2YgYSByZXNvdXJjZSBsb2FkIGFjcm9z
cyBtdWx0aXBsZSBjYWxsIGJhY2tzLgorICAgIEBwYXJhbSBvbGRXZWJWaWV3IFRoZSBXZWJWaWV3
IGluIHRoZSBvbGQgcGFnZSB3aG8gd2FzIHRoZSBzZW5kZXIgb2YgdGhlIG1lc3NhZ2UuCisgKi8K
Ky0gKHZvaWQpd2ViVmlldzooV2ViVmlldyAqKXNlbmRlciByZXNvdXJjZTooaWQpaWRlbnRpZmll
ciB0cmFuc2ZlckxvYWRpbmdSZXNvdXJjZTooaWQpb2xkUmVzb3VyY2UgZnJvbVdlYlZpZXc6KFdl
YlZpZXcgKilvbGRXZWJWaWV3OworCiBAZW5kCiAKICN1bmRlZiBXZWJOU0ludGVnZXIKZGlmZiAt
LWdpdCBhL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tIGIvV2ViS2l0L21hYy9XZWJWaWV3
L1dlYlZpZXcubW0KaW5kZXggOWIyNjdlZi4uNWVkZjAyMCAxMDA2NDQKLS0tIGEvV2ViS2l0L21h
Yy9XZWJWaWV3L1dlYlZpZXcubW0KKysrIGIvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXcubW0K
QEAgLTE1MzQsNiArMTUzNCw3IEBAIHN0YXRpYyBpbmxpbmUgSU1QIGdldE1ldGhvZChpZCBvLCBT
RUwgcykKICAgICBjYWNoZS0+d2lsbENhY2hlUmVzcG9uc2VGdW5jID0gZ2V0TWV0aG9kKGRlbGVn
YXRlLCBAc2VsZWN0b3Iod2ViVmlldzpyZXNvdXJjZTp3aWxsQ2FjaGVSZXNwb25zZTpmcm9tRGF0
YVNvdXJjZTopKTsKICAgICBjYWNoZS0+d2lsbFNlbmRSZXF1ZXN0RnVuYyA9IGdldE1ldGhvZChk
ZWxlZ2F0ZSwgQHNlbGVjdG9yKHdlYlZpZXc6cmVzb3VyY2U6d2lsbFNlbmRSZXF1ZXN0OnJlZGly
ZWN0UmVzcG9uc2U6ZnJvbURhdGFTb3VyY2U6KSk7CiAgICAgY2FjaGUtPnNob3VsZFVzZUNyZWRl
bnRpYWxTdG9yYWdlRnVuYyA9IGdldE1ldGhvZChkZWxlZ2F0ZSwgQHNlbGVjdG9yKHdlYlZpZXc6
cmVzb3VyY2U6c2hvdWxkVXNlQ3JlZGVudGlhbFN0b3JhZ2VGb3JEYXRhU291cmNlOikpOworICAg
IGNhY2hlLT50cmFuc2ZlckxvYWRpbmdSZXNvdXJjZUZyb21XZWJWaWV3RnVuYyA9IGdldE1ldGhv
ZChkZWxlZ2F0ZSwgQHNlbGVjdG9yKHdlYlZpZXc6cmVzb3VyY2U6dHJhbnNmZXJMb2FkaW5nUmVz
b3VyY2U6ZnJvbVdlYlZpZXc6KSk7CiB9CiAKIC0gKHZvaWQpX2NhY2hlRnJhbWVMb2FkRGVsZWdh
dGVJbXBsZW1lbnRhdGlvbnMKZGlmZiAtLWdpdCBhL1dlYktpdC9xdC9DaGFuZ2VMb2cgYi9XZWJL
aXQvcXQvQ2hhbmdlTG9nCmluZGV4IDhlN2U1MTQuLjkwYTU5MzQgMTAwNjQ0Ci0tLSBhL1dlYktp
dC9xdC9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0L3F0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBA
CisyMDEwLTEwLTEzICBKZW5uIEJyYWl0aHdhaXRlICA8amVubmJAY2hyb21pdW0ub3JnPgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlc291cmNlIHRy
YWNraW5nIGZhaWx1cmUgd2hlbiB0cnlpbmcgdG8gbW92ZSBhIGZyYW1lIGJldHdlZW4gZG9jdW1l
bnRzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00NDcx
MworCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRRdC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRlckNsaWVudFF0Ojp0cmFuc2ZlckxvYWRpbmdSZXNv
dXJjZVRvTmV3UGFnZSk6CisgICAgICAgIEVtdHB5IG1ldGhvZC4KKyAgICAgICAgKiBXZWJDb3Jl
U3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudFF0Lmg6CisKIDIwMTAtMTAtMTMgIERpbnUgSmFjb2Ig
IDxkaW51LmphY29iQG5va2lhLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBBbmRyZWFzIEts
aW5nLgpkaWZmIC0tZ2l0IGEvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xp
ZW50UXQuY3BwIGIvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50UXQu
Y3BwCmluZGV4IDI4MTUxNzEuLmFlYzVlZTIgMTAwNjQ0Ci0tLSBhL1dlYktpdC9xdC9XZWJDb3Jl
U3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudFF0LmNwcAorKysgYi9XZWJLaXQvcXQvV2ViQ29yZVN1
cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRRdC5jcHAKQEAgLTEyNjMsNiArMTI2MywxMCBAQCB2b2lk
IEZyYW1lTG9hZGVyQ2xpZW50UXQ6OmRpZFRyYW5zZmVyQ2hpbGRGcmFtZVRvTmV3RG9jdW1lbnQo
UGFnZSopCiAgICAgfQogfQogCit2b2lkIEZyYW1lTG9hZGVyQ2xpZW50UXQ6OnRyYW5zZmVyTG9h
ZGluZ1Jlc291cmNlVG9OZXdQYWdlKHVuc2lnbmVkIGxvbmcsIERvY3VtZW50TG9hZGVyKiwgY29u
c3QgUmVzb3VyY2VSZXF1ZXN0JiwgUGFnZSopCit7Cit9CisKIE9iamVjdENvbnRlbnRUeXBlIEZy
YW1lTG9hZGVyQ2xpZW50UXQ6Om9iamVjdENvbnRlbnRUeXBlKGNvbnN0IEtVUkwmIHVybCwgY29u
c3QgU3RyaW5nJiBfbWltZVR5cGUpCiB7CiAvLyAgICBxRGVidWcoKTw8IiArKysrKysrKysrKysr
KysrIHVybCBpcyAiPDx1cmwucHJldHR5VVJMKCk8PCIsIG1pbWUgPSAiPDxfbWltZVR5cGU7CmRp
ZmYgLS1naXQgYS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRRdC5o
IGIvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50UXQuaAppbmRleCBl
YzZhM2I2Li40ZDgyOGJkIDEwMDY0NAotLS0gYS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRnJh
bWVMb2FkZXJDbGllbnRRdC5oCisrKyBiL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9GcmFtZUxv
YWRlckNsaWVudFF0LmgKQEAgLTE5OSw2ICsxOTksNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBQ
YXNzUmVmUHRyPEZyYW1lPiBjcmVhdGVGcmFtZShjb25zdCBLVVJMJiB1cmwsIGNvbnN0IFN0cmlu
ZyYgbmFtZSwgSFRNTEZyYW1lT3duZXJFbGVtZW50KiBvd25lckVsZW1lbnQsCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgY29uc3QgU3RyaW5nJiByZWZlcnJlciwgYm9vbCBhbGxvd3NT
Y3JvbGxpbmcsIGludCBtYXJnaW5XaWR0aCwgaW50IG1hcmdpbkhlaWdodCk7CiAgICAgdmlydHVh
bCB2b2lkIGRpZFRyYW5zZmVyQ2hpbGRGcmFtZVRvTmV3RG9jdW1lbnQoV2ViQ29yZTo6UGFnZSop
OworICAgIHZpcnR1YWwgdm9pZCB0cmFuc2ZlckxvYWRpbmdSZXNvdXJjZVRvTmV3UGFnZSh1bnNp
Z25lZCBsb25nLCBXZWJDb3JlOjpEb2N1bWVudExvYWRlciosIGNvbnN0IFdlYkNvcmU6OlJlc291
cmNlUmVxdWVzdCYsIFdlYkNvcmU6OlBhZ2UqKTsKICAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8V2lk
Z2V0PiBjcmVhdGVQbHVnaW4oY29uc3QgSW50U2l6ZSYsIEhUTUxQbHVnSW5FbGVtZW50KiwgY29u
c3QgS1VSTCYsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiwgY29uc3QgVmVjdG9yPFN0cmluZz4mLCBj
b25zdCBTdHJpbmcmLCBib29sKTsKICAgICB2aXJ0dWFsIHZvaWQgcmVkaXJlY3REYXRhVG9QbHVn
aW4oV2lkZ2V0KiBwbHVnaW5XaWRnZXQpOwogCmRpZmYgLS1naXQgYS9XZWJLaXQvd2luL0NoYW5n
ZUxvZyBiL1dlYktpdC93aW4vQ2hhbmdlTG9nCmluZGV4IDEzZjA2YWMuLjk5MDA3YTggMTAwNjQ0
Ci0tLSBhL1dlYktpdC93aW4vQ2hhbmdlTG9nCisrKyBiL1dlYktpdC93aW4vQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMTUgQEAKKzIwMTAtMTAtMTMgIEplbm4gQnJhaXRod2FpdGUgIDxqZW5uYkBjaHJv
bWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgUmVzb3VyY2UgdHJhY2tpbmcgZmFpbHVyZSB3aGVuIHRyeWluZyB0byBtb3ZlIGEgZnJhbWUg
YmV0d2VlbiBkb2N1bWVudHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTQ0NzEzCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRl
ckNsaWVudC5jcHA6CisgICAgICAgIChXZWJGcmFtZUxvYWRlckNsaWVudDo6dHJhbnNmZXJMb2Fk
aW5nUmVzb3VyY2VUb05ld1BhZ2UpOgorICAgICAgICBFbXB0eSBtZXRob2QuCisgICAgICAgICog
V2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaDoKKwogMjAxMC0xMC0xMiAgQWRh
bSBSb2JlbiAgPGFyb2JlbkBhcHBsZS5jb20+CiAKICAgICAgICAgQnVpbGQgVGVzdFdlYktpdEFQ
SSBvbiBXaW5kb3dzCmRpZmYgLS1naXQgYS9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkZy
YW1lTG9hZGVyQ2xpZW50LmNwcCBiL1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVM
b2FkZXJDbGllbnQuY3BwCmluZGV4IDRjNzgwMGYuLmIwNGNkMTQgMTAwNjQ0Ci0tLSBhL1dlYktp
dC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCisrKyBiL1dlYktp
dC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCkBAIC03MzMsNiAr
NzMzLDEwIEBAIHZvaWQgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpZFRyYW5zZmVyQ2hpbGRGcmFt
ZVRvTmV3RG9jdW1lbnQoUGFnZSopCiB7CiB9CiAKK3ZvaWQgV2ViRnJhbWVMb2FkZXJDbGllbnQ6
OnRyYW5zZmVyTG9hZGluZ1Jlc291cmNlVG9OZXdQYWdlKHVuc2lnbmVkIGxvbmcsIERvY3VtZW50
TG9hZGVyKiwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgUGFnZSopCit7Cit9CisKIFBhc3NSZWZQ
dHI8RnJhbWU+IFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpjcmVhdGVGcmFtZShjb25zdCBLVVJMJiBV
UkwsIGNvbnN0IFN0cmluZyYgbmFtZSwgSFRNTEZyYW1lT3duZXJFbGVtZW50KiBvd25lckVsZW1l
bnQsIGNvbnN0IFN0cmluZyYgcmVmZXJyZXIpCiB7CiAgICAgRnJhbWUqIGNvcmVGcmFtZSA9IGNv
cmUobV93ZWJGcmFtZSk7CmRpZmYgLS1naXQgYS9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dl
YkZyYW1lTG9hZGVyQ2xpZW50LmggYi9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1l
TG9hZGVyQ2xpZW50LmgKaW5kZXggN2VjMzQ0Yy4uNzdkNDNhMCAxMDA2NDQKLS0tIGEvV2ViS2l0
L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oCisrKyBiL1dlYktpdC93
aW4vV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaApAQCAtMTEzLDYgKzExMyw3
IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8V2ViQ29yZTo6RnJhbWU+IGNyZWF0
ZUZyYW1lKGNvbnN0IFdlYkNvcmU6OktVUkwmIHVybCwgY29uc3QgV1RGOjpTdHJpbmcmIG5hbWUs
IFdlYkNvcmU6OkhUTUxGcmFtZU93bmVyRWxlbWVudCogb3duZXJFbGVtZW50LAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFdURjo6U3RyaW5nJiByZWZlcnJlciwgYm9vbCBh
bGxvd3NTY3JvbGxpbmcsIGludCBtYXJnaW5XaWR0aCwgaW50IG1hcmdpbkhlaWdodCk7CiAgICAg
dmlydHVhbCB2b2lkIGRpZFRyYW5zZmVyQ2hpbGRGcmFtZVRvTmV3RG9jdW1lbnQoV2ViQ29yZTo6
UGFnZSopOworICAgIHZpcnR1YWwgdm9pZCB0cmFuc2ZlckxvYWRpbmdSZXNvdXJjZVRvTmV3UGFn
ZSh1bnNpZ25lZCBsb25nLCBXZWJDb3JlOjpEb2N1bWVudExvYWRlciosIGNvbnN0IFdlYkNvcmU6
OlJlc291cmNlUmVxdWVzdCYsIFdlYkNvcmU6OlBhZ2UqKTsKICAgICB2aXJ0dWFsIFBhc3NSZWZQ
dHI8V2ViQ29yZTo6V2lkZ2V0PiBjcmVhdGVQbHVnaW4oY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYs
IFdlYkNvcmU6OkhUTUxQbHVnSW5FbGVtZW50KiwgY29uc3QgV2ViQ29yZTo6S1VSTCYsIGNvbnN0
IFZlY3RvcjxXVEY6OlN0cmluZz4mLCBjb25zdCBWZWN0b3I8V1RGOjpTdHJpbmc+JiwgY29uc3Qg
V1RGOjpTdHJpbmcmLCBib29sIGxvYWRNYW51YWxseSk7CiAgICAgdmlydHVhbCB2b2lkIHJlZGly
ZWN0RGF0YVRvUGx1Z2luKFdlYkNvcmU6OldpZGdldCogcGx1Z2luV2lkZ2V0KTsKIApkaWZmIC0t
Z2l0IGEvV2ViS2l0L3dpbmNlL0NoYW5nZUxvZyBiL1dlYktpdC93aW5jZS9DaGFuZ2VMb2cKaW5k
ZXggYzg1ZjkwMi4uNTExMzQ1OCAxMDA2NDQKLS0tIGEvV2ViS2l0L3dpbmNlL0NoYW5nZUxvZwor
KysgYi9XZWJLaXQvd2luY2UvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTAtMTAtMTMg
IEplbm4gQnJhaXRod2FpdGUgIDxqZW5uYkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVzb3VyY2UgdHJhY2tpbmcgZmFpbHVy
ZSB3aGVuIHRyeWluZyB0byBtb3ZlIGEgZnJhbWUgYmV0d2VlbiBkb2N1bWVudHMKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ0NzEzCisKKyAgICAgICAg
KiBXZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudFdpbkNFLmNwcDoKKyAgICAgICAgKFdl
YktpdDo6RnJhbWVMb2FkZXJDbGllbnRXaW5DRTo6dHJhbnNmZXJMb2FkaW5nUmVzb3VyY2VUb05l
d1BhZ2UpOgorICAgICAgICBFbXB0eSBtZXRob2QuCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQv
RnJhbWVMb2FkZXJDbGllbnRXaW5DRS5oOgorCiAyMDEwLTA5LTI4ICBKZW5uIEJyYWl0aHdhaXRl
ICA8amVubmJAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IERtaXRyeSBUaXRv
di4KZGlmZiAtLWdpdCBhL1dlYktpdC93aW5jZS9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNs
aWVudFdpbkNFLmNwcCBiL1dlYktpdC93aW5jZS9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNs
aWVudFdpbkNFLmNwcAppbmRleCBlODQxYWI5Li42ODc4MWZiIDEwMDY0NAotLS0gYS9XZWJLaXQv
d2luY2UvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRXaW5DRS5jcHAKKysrIGIvV2Vi
S2l0L3dpbmNlL1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50V2luQ0UuY3BwCkBAIC0x
NjUsNiArMTY1LDEwIEBAIHZvaWQgRnJhbWVMb2FkZXJDbGllbnRXaW5DRTo6ZGlkVHJhbnNmZXJD
aGlsZEZyYW1lVG9OZXdEb2N1bWVudChQYWdlKikKIHsKIH0KIAordm9pZCBGcmFtZUxvYWRlckNs
aWVudFdpbkNFOjp0cmFuc2ZlckxvYWRpbmdSZXNvdXJjZVRvTmV3UGFnZSh1bnNpZ25lZCBsb25n
LCBEb2N1bWVudExvYWRlciosIGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIFBhZ2UqKQoreworfQor
CiB2b2lkIEZyYW1lTG9hZGVyQ2xpZW50V2luQ0U6OnJlZGlyZWN0RGF0YVRvUGx1Z2luKFdpZGdl
dCogcGx1Z2luV2lkZ2V0KQogewogICAgIEFTU0VSVCghbV9wbHVnaW5WaWV3KTsKZGlmZiAtLWdp
dCBhL1dlYktpdC93aW5jZS9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudFdpbkNFLmgg
Yi9XZWJLaXQvd2luY2UvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRXaW5DRS5oCmlu
ZGV4IGI2NGVmZWQuLjQ4OGYyYWYgMTAwNjQ0Ci0tLSBhL1dlYktpdC93aW5jZS9XZWJDb3JlU3Vw
cG9ydC9GcmFtZUxvYWRlckNsaWVudFdpbkNFLmgKKysrIGIvV2ViS2l0L3dpbmNlL1dlYkNvcmVT
dXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50V2luQ0UuaApAQCAtMTA5LDYgKzEwOSw3IEBAIHB1Ymxp
YzoKICAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8V2ViQ29yZTo6RnJhbWU+IGNyZWF0ZUZyYW1lKGNv
bnN0IFdlYkNvcmU6OktVUkwmIHVybCwgY29uc3QgV1RGOjpTdHJpbmcmIG5hbWUsIFdlYkNvcmU6
OkhUTUxGcmFtZU93bmVyRWxlbWVudCogb3duZXJFbGVtZW50LAogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGNvbnN0IFdURjo6U3RyaW5nJiByZWZlcnJlciwgYm9vbCBhbGxvd3NTY3Jv
bGxpbmcsIGludCBtYXJnaW5XaWR0aCwgaW50IG1hcmdpbkhlaWdodCk7CiAgICAgdmlydHVhbCB2
b2lkIGRpZFRyYW5zZmVyQ2hpbGRGcmFtZVRvTmV3RG9jdW1lbnQoV2ViQ29yZTo6UGFnZSopOwor
ICAgIHZpcnR1YWwgdm9pZCB0cmFuc2ZlckxvYWRpbmdSZXNvdXJjZVRvTmV3UGFnZSh1bnNpZ25l
ZCBsb25nLCBXZWJDb3JlOjpEb2N1bWVudExvYWRlciosIGNvbnN0IFdlYkNvcmU6OlJlc291cmNl
UmVxdWVzdCYsIFdlYkNvcmU6OlBhZ2UqKTsKICAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8V2ViQ29y
ZTo6V2lkZ2V0PiBjcmVhdGVQbHVnaW4oY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYsIFdlYkNvcmU6
OkhUTUxQbHVnSW5FbGVtZW50KiwgY29uc3QgV2ViQ29yZTo6S1VSTCYsIGNvbnN0IFdURjo6VmVj
dG9yPFdURjo6U3RyaW5nPiYsIGNvbnN0IFdURjo6VmVjdG9yPFdURjo6U3RyaW5nPiYsIGNvbnN0
IFdURjo6U3RyaW5nJiwgYm9vbCk7CiAgICAgdmlydHVhbCB2b2lkIHJlZGlyZWN0RGF0YVRvUGx1
Z2luKFdlYkNvcmU6OldpZGdldCogcGx1Z2luV2lkZ2V0KTsKICAgICB2aXJ0dWFsIFBhc3NSZWZQ
dHI8V2ViQ29yZTo6V2lkZ2V0PiBjcmVhdGVKYXZhQXBwbGV0V2lkZ2V0KGNvbnN0IFdlYkNvcmU6
OkludFNpemUmLCBXZWJDb3JlOjpIVE1MQXBwbGV0RWxlbWVudCosIGNvbnN0IFdlYkNvcmU6OktV
UkwmIGJhc2VVUkwsIGNvbnN0IFdURjo6VmVjdG9yPFdURjo6U3RyaW5nPiYgcGFyYW1OYW1lcywg
Y29uc3QgV1RGOjpWZWN0b3I8V1RGOjpTdHJpbmc+JiBwYXJhbVZhbHVlcyk7CmRpZmYgLS1naXQg
YS9XZWJLaXQvd3gvQ2hhbmdlTG9nIGIvV2ViS2l0L3d4L0NoYW5nZUxvZwppbmRleCBhYmJjODdi
Li5kNzU5ZjgzIDEwMDY0NAotLS0gYS9XZWJLaXQvd3gvQ2hhbmdlTG9nCisrKyBiL1dlYktpdC93
eC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAxMC0xMC0xMyAgSmVubiBCcmFpdGh3YWl0
ZSAgPGplbm5iQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBSZXNvdXJjZSB0cmFja2luZyBmYWlsdXJlIHdoZW4gdHJ5aW5nIHRv
IG1vdmUgYSBmcmFtZSBiZXR3ZWVuIGRvY3VtZW50cworICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDQ3MTMKKworICAgICAgICAqIFdlYktpdFN1cHBvcnQv
RnJhbWVMb2FkZXJDbGllbnRXeC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRlckNs
aWVudFd4Ojp0cmFuc2ZlckxvYWRpbmdSZXNvdXJjZVRvTmV3UGFnZSk6CisgICAgICAgIEVtcHR5
IG1ldGhvZC4KKyAgICAgICAgKiBXZWJLaXRTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50V3guaDoK
KwogMjAxMC0wOS0yOCAgSmVubiBCcmFpdGh3YWl0ZSAgPGplbm5iQGNocm9taXVtLm9yZz4KIAog
ICAgICAgICBSZXZpZXdlZCBieSBEbWl0cnkgVGl0b3YuCmRpZmYgLS1naXQgYS9XZWJLaXQvd3gv
V2ViS2l0U3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudFd4LmNwcCBiL1dlYktpdC93eC9XZWJLaXRT
dXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50V3guY3BwCmluZGV4IDkzYTYyY2EuLjMxMzUzYmMgMTAw
NjQ0Ci0tLSBhL1dlYktpdC93eC9XZWJLaXRTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50V3guY3Bw
CisrKyBiL1dlYktpdC93eC9XZWJLaXRTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50V3guY3BwCkBA
IC04NjQsNiArODY0LDEwIEBAIHZvaWQgRnJhbWVMb2FkZXJDbGllbnRXeDo6ZGlkVHJhbnNmZXJD
aGlsZEZyYW1lVG9OZXdEb2N1bWVudChQYWdlKikKIHsKIH0KIAordm9pZCBGcmFtZUxvYWRlckNs
aWVudFd4Ojp0cmFuc2ZlckxvYWRpbmdSZXNvdXJjZVRvTmV3UGFnZSh1bnNpZ25lZCBsb25nLCBE
b2N1bWVudExvYWRlciosIGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIFBhZ2UqKQoreworfQorCiBP
YmplY3RDb250ZW50VHlwZSBGcmFtZUxvYWRlckNsaWVudFd4OjpvYmplY3RDb250ZW50VHlwZShj
b25zdCBLVVJMJiB1cmwsIGNvbnN0IFN0cmluZyYgbWltZVR5cGUpCiB7CiAgICAgbm90SW1wbGVt
ZW50ZWQoKTsKZGlmZiAtLWdpdCBhL1dlYktpdC93eC9XZWJLaXRTdXBwb3J0L0ZyYW1lTG9hZGVy
Q2xpZW50V3guaCBiL1dlYktpdC93eC9XZWJLaXRTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50V3gu
aAppbmRleCA5YzI2MGZlLi5iMjkzNGRiIDEwMDY0NAotLS0gYS9XZWJLaXQvd3gvV2ViS2l0U3Vw
cG9ydC9GcmFtZUxvYWRlckNsaWVudFd4LmgKKysrIGIvV2ViS2l0L3d4L1dlYktpdFN1cHBvcnQv
RnJhbWVMb2FkZXJDbGllbnRXeC5oCkBAIC0yMDQsNiArMjA0LDcgQEAgbmFtZXNwYWNlIFdlYkNv
cmUgewogICAgICAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8RnJhbWU+IGNyZWF0ZUZyYW1lKGNvbnN0
IEtVUkwmIHVybCwgY29uc3QgU3RyaW5nJiBuYW1lLCBIVE1MRnJhbWVPd25lckVsZW1lbnQqIG93
bmVyRWxlbWVudCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgU3Ry
aW5nJiByZWZlcnJlciwgYm9vbCBhbGxvd3NTY3JvbGxpbmcsIGludCBtYXJnaW5XaWR0aCwgaW50
IG1hcmdpbkhlaWdodCk7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBkaWRUcmFuc2ZlckNoaWxkRnJh
bWVUb05ld0RvY3VtZW50KFBhZ2UqKTsKKyAgICAgICAgdmlydHVhbCB2b2lkIHRyYW5zZmVyTG9h
ZGluZ1Jlc291cmNlVG9OZXdQYWdlKHVuc2lnbmVkIGxvbmcsIERvY3VtZW50TG9hZGVyKiwgY29u
c3QgUmVzb3VyY2VSZXF1ZXN0JiwgUGFnZSopOwogICAgICAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8
V2lkZ2V0PiBjcmVhdGVQbHVnaW4oY29uc3QgSW50U2l6ZSYsIEhUTUxQbHVnSW5FbGVtZW50Kiwg
Y29uc3QgS1VSTCYsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiwgY29uc3QgVmVjdG9yPFN0cmluZz4m
LCBjb25zdCBTdHJpbmcmLCBib29sIGxvYWRNYW51YWxseSkgOwogICAgICAgICB2aXJ0dWFsIHZv
aWQgcmVkaXJlY3REYXRhVG9QbHVnaW4oV2lkZ2V0KiBwbHVnaW5XaWRnZXQpOwogICAgICAgICB2
aXJ0dWFsIFJlc291cmNlRXJyb3IgcGx1Z2luV2lsbEhhbmRsZUxvYWRFcnJvcihjb25zdCBSZXNv
dXJjZVJlc3BvbnNlJik7CmRpZmYgLS1naXQgYS9XZWJLaXQyL0NoYW5nZUxvZyBiL1dlYktpdDIv
Q2hhbmdlTG9nCmluZGV4IGJjOTliM2QuLjEyNzhjODggMTAwNjQ0Ci0tLSBhL1dlYktpdDIvQ2hh
bmdlTG9nCisrKyBiL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTAtMTAt
MTMgIEplbm4gQnJhaXRod2FpdGUgIDxqZW5uYkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVzb3VyY2UgdHJhY2tpbmcgZmFp
bHVyZSB3aGVuIHRyeWluZyB0byBtb3ZlIGEgZnJhbWUgYmV0d2VlbiBkb2N1bWVudHMKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ0NzEzCisKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcDoK
KyAgICAgICAgKFdlYktpdDo6V2ViRnJhbWVMb2FkZXJDbGllbnQ6OnRyYW5zZmVyTG9hZGluZ1Jl
c291cmNlVG9OZXdQYWdlKToKKyAgICAgICAgRW1wdHkgbWV0aG9kLgorICAgICAgICAqIFdlYlBy
b2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaDoKKwogMjAxMC0xMC0x
MyAgQnJlbnQgRnVsZ2hhbSAgPGJmdWxnaGFtQHdlYmtpdC5vcmc+CiAKICAgICAgICAgVW5yZXZp
ZXdlZCBidWlsZCBmaXhlcyBhZnRlciByNjk1MzguCmRpZmYgLS1naXQgYS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwIGIvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcAppbmRleCBk
ZWI5MGUzLi44M2I0ZmZmIDEwMDY0NAotLS0gYS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCisrKyBiL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAKQEAgLTk2Nyw2ICs5NjcsMTEg
QEAgdm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlkVHJhbnNmZXJDaGlsZEZyYW1lVG9OZXdE
b2N1bWVudChQYWdlKikKICAgICBub3RJbXBsZW1lbnRlZCgpOwogfQogCit2b2lkIFdlYkZyYW1l
TG9hZGVyQ2xpZW50Ojp0cmFuc2ZlckxvYWRpbmdSZXNvdXJjZVRvTmV3UGFnZSh1bnNpZ25lZCBs
b25nLCBEb2N1bWVudExvYWRlciosIGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIFBhZ2UqKQorewor
ICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKIFBhc3NSZWZQdHI8V2lkZ2V0PiBXZWJGcmFtZUxv
YWRlckNsaWVudDo6Y3JlYXRlUGx1Z2luKGNvbnN0IEludFNpemUmLCBIVE1MUGx1Z0luRWxlbWVu
dCogcGx1Z2luRWxlbWVudCwgY29uc3QgS1VSTCYgdXJsLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYg
cGFyYW1OYW1lcywgY29uc3QgVmVjdG9yPFN0cmluZz4mIHBhcmFtVmFsdWVzLCBjb25zdCBTdHJp
bmcmIG1pbWVUeXBlLCBib29sIGxvYWRNYW51YWxseSkKIHsKICAgICBBU1NFUlQocGFyYW1OYW1l
cy5zaXplKCkgPT0gcGFyYW1WYWx1ZXMuc2l6ZSgpKTsKZGlmZiAtLWdpdCBhL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oIGIvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmgKaW5kZXggMzQ5
ZDdiMy4uYmEzZGU5MCAxMDA2NDQKLS0tIGEvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmgKKysrIGIvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNv
cmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmgKQEAgLTE3Niw2ICsxNzYsNyBAQCBwcml2
YXRlOgogICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxXZWJDb3JlOjpGcmFtZT4gY3JlYXRlRnJhbWUo
Y29uc3QgV2ViQ29yZTo6S1VSTCYgdXJsLCBjb25zdCBTdHJpbmcmIG5hbWUsIFdlYkNvcmU6OkhU
TUxGcmFtZU93bmVyRWxlbWVudCogb3duZXJFbGVtZW50LAogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgY29uc3QgU3RyaW5nJiByZWZlcnJlciwgYm9vbCBhbGxvd3NT
Y3JvbGxpbmcsIGludCBtYXJnaW5XaWR0aCwgaW50IG1hcmdpbkhlaWdodCk7CiAgICAgdmlydHVh
bCB2b2lkIGRpZFRyYW5zZmVyQ2hpbGRGcmFtZVRvTmV3RG9jdW1lbnQoV2ViQ29yZTo6UGFnZSop
OworICAgIHZpcnR1YWwgdm9pZCB0cmFuc2ZlckxvYWRpbmdSZXNvdXJjZVRvTmV3UGFnZSh1bnNp
Z25lZCBsb25nLCBXZWJDb3JlOjpEb2N1bWVudExvYWRlciosIGNvbnN0IFdlYkNvcmU6OlJlc291
cmNlUmVxdWVzdCYsIFdlYkNvcmU6OlBhZ2UqKTsKICAgICAKICAgICB2aXJ0dWFsIFBhc3NSZWZQ
dHI8V2ViQ29yZTo6V2lkZ2V0PiBjcmVhdGVQbHVnaW4oY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYs
IFdlYkNvcmU6OkhUTUxQbHVnSW5FbGVtZW50KiwgY29uc3QgV2ViQ29yZTo6S1VSTCYsIGNvbnN0
IFZlY3RvcjxTdHJpbmc+JiwgY29uc3QgVmVjdG9yPFN0cmluZz4mLCBjb25zdCBTdHJpbmcmLCBi
b29sIGxvYWRNYW51YWxseSk7CiAgICAgdmlydHVhbCB2b2lkIHJlZGlyZWN0RGF0YVRvUGx1Z2lu
KFdlYkNvcmU6OldpZGdldCogcGx1Z2luV2lkZ2V0KTsK
</data>
<flag name="review"
          id="60535"
          type_id="1"
          status="-"
          setter="jennb"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>70760</attachid>
            <date>2010-10-14 11:35:03 -0700</date>
            <delta_ts>2010-10-20 10:45:29 -0700</delta_ts>
            <desc>updated patch</desc>
            <filename>patch44713-2.txt</filename>
            <type>text/plain</type>
            <size>38995</size>
            <attacher name="Jenn Braithwaite">jennb</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBiZjYxOGVlLi5lYzhlOTRkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTAtMTAt
MTMgIEplbm4gQnJhaXRod2FpdGUgIDxqZW5uYkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVzb3VyY2UgdHJhY2tpbmcgZmFp
bHVyZSB3aGVuIHRyeWluZyB0byBtb3ZlIGEgZnJhbWUgYmV0d2VlbiBkb2N1bWVudHMKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ0NzEzCisKKyAgICAg
ICAgKiBmYXN0L2ZyYW1lcy9pZnJhbWUtcmVwYXJlbnRpbmctZmFpbC1sb2FkLWV4cGVjdGVkLnR4
dDogQWRkZWQuCisgICAgICAgICogZmFzdC9mcmFtZXMvaWZyYW1lLXJlcGFyZW50aW5nLWZhaWwt
bG9hZC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvU2tpcHBlZDoKKyAgICAg
ICAgUmUtZW5hYmxlZCB0ZXN0IHRoYXQgZmFpbGVkIGR1ZSB0byB0aGlzIGJ1Zy4KKwogMjAxMC0x
MC0xMyAgUm9iZXJ0IEhvZ2FuICA8cm9iZXJ0QHdlYmtpdC5vcmc+CiAKICAgICAgICAgUnViYmVy
LXN0YW1wZWQgYnkgQ3NhYmEgT3N6dHJvZ29uYWMuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9m
YXN0L2ZyYW1lcy9pZnJhbWUtcmVwYXJlbnRpbmctZmFpbC1sb2FkLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2Zhc3QvZnJhbWVzL2lmcmFtZS1yZXBhcmVudGluZy1mYWlsLWxvYWQtZXhwZWN0
ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjFlMGQ2MjMKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2ZyYW1lcy9pZnJhbWUtcmVwYXJlbnRpbmct
ZmFpbC1sb2FkLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxIEBACitUaGlzIHRlc3QgYWRvcHRzIGFu
IGlmcmFtZSBpbnRvIGEgc2Vjb25kIHBhZ2UsIHRoZW4gY2xvc2VzIHRoYXQgcGFnZSwgY2FuY2Vs
bGluZyB0aGF0IGlmcmFtZSBsb2FkLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9mcmFt
ZXMvaWZyYW1lLXJlcGFyZW50aW5nLWZhaWwtbG9hZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9m
cmFtZXMvaWZyYW1lLXJlcGFyZW50aW5nLWZhaWwtbG9hZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAuLjU5MjQyMDcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9mYXN0L2ZyYW1lcy9pZnJhbWUtcmVwYXJlbnRpbmctZmFpbC1sb2FkLmh0bWwKQEAgLTAsMCAr
MSwyMiBAQAorPGh0bWw+Cis8c2NyaXB0PgoraWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxl
cikgeworICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAgICBsYXlvdXRU
ZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7CisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIu
c2V0Q2FuT3BlbldpbmRvd3ModHJ1ZSk7Cit9CisKK2Z1bmN0aW9uIHRlc3QoKQoreworICAgIHZh
ciB3ID0gd2luZG93Lm9wZW4oImFib3V0OmJsYW5rIik7CisgICAgdmFyIGYgPSB3LmRvY3VtZW50
LmFkb3B0Tm9kZShkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgiaWZyYW1lIilbMF0pOwor
ICAgIHcuZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChmKTsKKyAgICB3LmNsb3NlKCk7CisgICAg
aWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICAgICAgbGF5b3V0VGVzdENvbnRy
b2xsZXIubm90aWZ5RG9uZSgpOworfQorPC9zY3JpcHQ+Cis8Ym9keSBvbmxvYWQ9InRlc3QoKSI+
Cis8aWZyYW1lIHNyYz0iZGF0YTp0ZXh0L2h0bWwsZm9vIj48L2lmcmFtZT4KKzxwPlRoaXMgdGVz
dCBhZG9wdHMgYW4gaWZyYW1lIGludG8gYSBzZWNvbmQgcGFnZSwgdGhlbiBjbG9zZXMgdGhhdCBw
YWdlLCBjYW5jZWxsaW5nIHRoYXQgaWZyYW1lIGxvYWQuPC9wPgorPC9ib2R5PgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1NraXBwZWQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9tYWMvU2tpcHBlZAppbmRleCA5ODllZWJjLi4yODM2Yzk1IDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9tYWMvU2tpcHBlZAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMv
U2tpcHBlZApAQCAtMzAzLDkgKzMwMyw2IEBAIG1lZGlhL2NvbnRleHQtbWVudS1hY3Rpb25zLmh0
bWwKICMgRmlsZVN5c3RlbSBBUEkgaXMgbm90IHN1cHBvcnRlZC4KIGZhc3QvZmlsZXN5c3RlbQog
Ci0jIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00NDcxMwotZmFzdC9m
cmFtZXMvaWZyYW1lLXJlcGFyZW50aW5nLWFkb3B0LW5vZGUuaHRtbAotCiAjIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00NjIyMwogIyBUaGUgV2ViS2l0IHBsdWdpbiBp
bXBsZW1lbnRhdGlvbiBkb2VzIG5vdCBzdXBwb3J0IGlmcmFtZSBzaGltcy4KIHBsdWdpbnMvaWZy
YW1lLXNoaW1zLmh0bWwKZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9D
aGFuZ2VMb2cKaW5kZXggM2JmOGFjNS4uNjBjMjVhNiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFu
Z2VMb2cKKysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMiBAQAorMjAxMC0xMC0x
MyAgSmVubiBCcmFpdGh3YWl0ZSAgPGplbm5iQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZXNvdXJjZSB0cmFja2luZyBmYWls
dXJlIHdoZW4gdHJ5aW5nIHRvIG1vdmUgYSBmcmFtZSBiZXR3ZWVuIGRvY3VtZW50cworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDQ3MTMKKworICAgICAg
ICBUZXN0OiBmYXN0L2ZyYW1lcy9pZnJhbWUtcmVwYXJlbnRpbmctZmFpbC1sb2FkLmh0bWwKKwor
ICAgICAgICAqIGxvYWRlci9Eb2N1bWVudExvYWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpE
b2N1bWVudExvYWRlcjo6dHJhbnNmZXJMb2FkaW5nUmVzb3VyY2VzVG9OZXdQYWdlKToKKyAgICAg
ICAgQWRkZWQgbWV0aG9kIHRoYXQgbm90aWZpZXMgdGhlIGNsaWVudCB0byB1cGRhdGUgcmVzb3Vy
Y2UgdHJhY2tpbmcgZm9yCisgICAgICAgIGxvYWRpbmcgcmVzb3VyY2VzIHRoYXQgaGF2ZSBiZWVu
IHRyYW5zZmVycmVkIHRvIGEgbmV3IGFwZ2UuCisgICAgICAgICogbG9hZGVyL0RvY3VtZW50TG9h
ZGVyLmg6CisgICAgICAgICogbG9hZGVyL0VtcHR5Q2xpZW50cy5oOgorICAgICAgICAoV2ViQ29y
ZTo6RW1wdHlGcmFtZUxvYWRlckNsaWVudDo6dHJhbnNmZXJMb2FkaW5nUmVzb3VyY2VUb05ld1Bh
Z2UpOgorICAgICAgICBFbXB0eSBtZXRob2QuCisgICAgICAgICogbG9hZGVyL0ZyYW1lTG9hZGVy
Lmg6CisgICAgICAgICogbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcDoKKyAgICAgICAgQWRkZWQgbWV0
aG9kIHRoYXQgdHJpZ2dlcnMgcmVzb3VyY2UgdHJhY2tpbmcgdXBkYXRlcy4gVGhpcyB3cmFwcwor
ICAgICAgICB0aGUgRG9jdW1lbnRMb2FkZXIgbWV0aG9kIGFzIGl0IGFwcGVhcnMgRG9jdW1lbnRM
b2FkZXIgaXMgb3BhcXVlCisgICAgICAgIHRvIEZyYW1lLgorICAgICAgICAqIGxvYWRlci9GcmFt
ZUxvYWRlckNsaWVudC5oOgorICAgICAgICBBZGRlZCBBUEkgdG8gbm90aWZ5IHRoZSBjbGllbnQg
dG8gdXBkYXRlIHJlc291cmNlIHRyYWNraW5nIGZvcgorICAgICAgICBhIGxvYWRpbmcgcmVzb3Vy
Y2UgdGhhdCBoYXMgYmVlbiB0cmFuc2ZlcnJlZCB0byBhIG5ldyBwYWdlLgorICAgICAgICAqIHBh
Z2UvRnJhbWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWU6OnRyYW5zZmVyQ2hpbGRGcmFt
ZVRvTmV3RG9jdW1lbnQpOgorICAgICAgICBVcGRhdGUgcmVzb3VyY2UgdHJhY2tpbmcgaWYgcGFn
ZSBoYXMgY2hhbmdlZC4KKwogMjAxMC0xMC0xMyAgR2F2aW4gQmFycmFjbG91Z2ggIDxiYXJyYWNs
b3VnaEBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgT2xpdmVyIEh1bnQuCmRpZmYg
LS1naXQgYS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudExvYWRlci5jcHAgYi9XZWJDb3JlL2xvYWRl
ci9Eb2N1bWVudExvYWRlci5jcHAKaW5kZXggN2VlN2JjYy4uMmZkMmJmMyAxMDA2NDQKLS0tIGEv
V2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIuY3BwCisrKyBiL1dlYkNvcmUvbG9hZGVyL0Rv
Y3VtZW50TG9hZGVyLmNwcApAQCAtNzg3LDYgKzc4NywyOCBAQCB2b2lkIERvY3VtZW50TG9hZGVy
OjpzdWJyZXNvdXJjZUxvYWRlckZpbmlzaGVkTG9hZGluZ09uZVBhcnQoUmVzb3VyY2VMb2FkZXIq
IGxvYQogICAgICAgICBmcmFtZS0+bG9hZGVyKCktPmNoZWNrTG9hZENvbXBsZXRlKCk7ICAgIAog
fQogCit2b2lkIERvY3VtZW50TG9hZGVyOjp0cmFuc2ZlckxvYWRpbmdSZXNvdXJjZXNUb05ld1Bh
Z2UoUGFnZSogb2xkUGFnZSkKK3sKKyAgICBpZiAob2xkUGFnZSA9PSBtX2ZyYW1lLT5wYWdlKCkp
CisgICAgICAgIHJldHVybjsKKworICAgIEZyYW1lTG9hZGVyQ2xpZW50KiBmcmFtZUxvYWRlckNs
aWVudCA9IGZyYW1lTG9hZGVyKCktPmNsaWVudCgpOworICAgIGNvbnN0IFJlc291cmNlUmVxdWVz
dCYgcmVxdWVzdCA9IG9yaWdpbmFsUmVxdWVzdCgpOworICAgIGlmIChpc0xvYWRpbmdNYWluUmVz
b3VyY2UoKSkgeworICAgICAgICBmcmFtZUxvYWRlckNsaWVudC0+dHJhbnNmZXJMb2FkaW5nUmVz
b3VyY2VUb05ld1BhZ2UoCisgICAgICAgICAgICBtX21haW5SZXNvdXJjZUxvYWRlci0+aWRlbnRp
ZmllcigpLCB0aGlzLCByZXF1ZXN0LCBvbGRQYWdlKTsKKyAgICB9CisKKyAgICBpZiAoaXNMb2Fk
aW5nU3VicmVzb3VyY2VzKCkpIHsKKyAgICAgICAgUmVzb3VyY2VMb2FkZXJTZXQ6OmNvbnN0X2l0
ZXJhdG9yIGl0ID0gbV9zdWJyZXNvdXJjZUxvYWRlcnMuYmVnaW4oKTsKKyAgICAgICAgUmVzb3Vy
Y2VMb2FkZXJTZXQ6OmNvbnN0X2l0ZXJhdG9yIGVuZCA9IG1fc3VicmVzb3VyY2VMb2FkZXJzLmVu
ZCgpOworICAgICAgICBmb3IgKDsgaXQgIT0gZW5kOyArK2l0KSB7CisgICAgICAgICAgICBmcmFt
ZUxvYWRlckNsaWVudC0+dHJhbnNmZXJMb2FkaW5nUmVzb3VyY2VUb05ld1BhZ2UoCisgICAgICAg
ICAgICAgICAgKCppdCktPmlkZW50aWZpZXIoKSwgdGhpcywgcmVxdWVzdCwgb2xkUGFnZSk7Cisg
ICAgICAgIH0KKyAgICB9Cit9CisKIHZvaWQgRG9jdW1lbnRMb2FkZXI6Omljb25Mb2FkRGVjaXNp
b25BdmFpbGFibGUoKQogewogICAgIGlmIChtX2ZyYW1lKQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9s
b2FkZXIvRG9jdW1lbnRMb2FkZXIuaCBiL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50TG9hZGVyLmgK
aW5kZXggNTA4NzliNy4uOTMwYTQ5MCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9sb2FkZXIvRG9jdW1l
bnRMb2FkZXIuaAorKysgYi9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudExvYWRlci5oCkBAIC00Niw2
ICs0Niw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICBjbGFzcyBGcmFtZTsKICAgICBjbGFz
cyBGcmFtZUxvYWRlcjsKICAgICBjbGFzcyBNYWluUmVzb3VyY2VMb2FkZXI7CisgICAgY2xhc3Mg
UGFnZTsKICAgICBjbGFzcyBSZXNvdXJjZUxvYWRlcjsKICAgICBjbGFzcyBTY2hlZHVsZVBhaXI7
CiAgICAgY2xhc3MgU2hhcmVkQnVmZmVyOwpAQCAtMTk1LDcgKzE5Niw5IEBAIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKICAgICAgICAgdm9pZCByZW1vdmVQbHVnSW5TdHJlYW1Mb2FkZXIoUmVzb3VyY2VM
b2FkZXIqKTsKIAogICAgICAgICB2b2lkIHN1YnJlc291cmNlTG9hZGVyRmluaXNoZWRMb2FkaW5n
T25lUGFydChSZXNvdXJjZUxvYWRlciopOwotICAgICAgICAKKworICAgICAgICB2b2lkIHRyYW5z
ZmVyTG9hZGluZ1Jlc291cmNlc1RvTmV3UGFnZShQYWdlKiBvbGRQYWdlKTsKKwogICAgICAgICB2
b2lkIHNldERlZmVyTWFpblJlc291cmNlRGF0YUxvYWQoYm9vbCBkZWZlcikgeyBtX2RlZmVyTWFp
blJlc291cmNlRGF0YUxvYWQgPSBkZWZlcjsgfQogICAgICAgICBib29sIGRlZmVyTWFpblJlc291
cmNlRGF0YUxvYWQoKSBjb25zdCB7IHJldHVybiBtX2RlZmVyTWFpblJlc291cmNlRGF0YUxvYWQ7
IH0KICAgICAgICAgCmRpZmYgLS1naXQgYS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuaCBi
L1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5oCmluZGV4IGZkMjAyNTguLmQ2MDc2YjkgMTAw
NjQ0Ci0tLSBhL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5oCisrKyBiL1dlYkNvcmUvbG9h
ZGVyL0VtcHR5Q2xpZW50cy5oCkBAIC0zMzcsNiArMzM3LDcgQEAgcHVibGljOgogICAgIHZpcnR1
YWwgdm9pZCBkaWRSdW5JbnNlY3VyZUNvbnRlbnQoU2VjdXJpdHlPcmlnaW4qKSB7IH0KICAgICB2
aXJ0dWFsIFBhc3NSZWZQdHI8RnJhbWU+IGNyZWF0ZUZyYW1lKGNvbnN0IEtVUkwmLCBjb25zdCBT
dHJpbmcmLCBIVE1MRnJhbWVPd25lckVsZW1lbnQqLCBjb25zdCBTdHJpbmcmLCBib29sLCBpbnQs
IGludCkgeyByZXR1cm4gMDsgfQogICAgIHZpcnR1YWwgdm9pZCBkaWRUcmFuc2ZlckNoaWxkRnJh
bWVUb05ld0RvY3VtZW50KFBhZ2UqKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgdHJhbnNmZXJMb2Fk
aW5nUmVzb3VyY2VUb05ld1BhZ2UodW5zaWduZWQgbG9uZywgRG9jdW1lbnRMb2FkZXIqLCBjb25z
dCBSZXNvdXJjZVJlcXVlc3QmLCBQYWdlKikgeyB9CiAgICAgdmlydHVhbCBQYXNzUmVmUHRyPFdp
ZGdldD4gY3JlYXRlUGx1Z2luKGNvbnN0IEludFNpemUmLCBIVE1MUGx1Z0luRWxlbWVudCosIGNv
bnN0IEtVUkwmLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYsIGNvbnN0IFZlY3RvcjxTdHJpbmc+Jiwg
Y29uc3QgU3RyaW5nJiwgYm9vbCkgeyByZXR1cm4gMDsgfQogICAgIHZpcnR1YWwgUGFzc1JlZlB0
cjxXaWRnZXQ+IGNyZWF0ZUphdmFBcHBsZXRXaWRnZXQoY29uc3QgSW50U2l6ZSYsIEhUTUxBcHBs
ZXRFbGVtZW50KiwgY29uc3QgS1VSTCYsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiwgY29uc3QgVmVj
dG9yPFN0cmluZz4mKSB7IHJldHVybiAwOyB9CiAjaWYgRU5BQkxFKFBMVUdJTl9QUk9YWV9GT1Jf
VklERU8pCmRpZmYgLS1naXQgYS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAgYi9XZWJD
b3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAKaW5kZXggMmY5MzEwMi4uZDExNjBiMyAxMDA2NDQK
LS0tIGEvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCisrKyBiL1dlYkNvcmUvbG9hZGVy
L0ZyYW1lTG9hZGVyLmNwcApAQCAtMTc0Myw2ICsxNzQzLDEzIEBAIGJvb2wgRnJhbWVMb2FkZXI6
OmZyYW1lSGFzTG9hZGVkKCkgY29uc3QKICAgICByZXR1cm4gbV9zdGF0ZU1hY2hpbmUuY29tbWl0
dGVkRmlyc3RSZWFsRG9jdW1lbnRMb2FkKCkgfHwgKG1fcHJvdmlzaW9uYWxEb2N1bWVudExvYWRl
ciAmJiAhbV9zdGF0ZU1hY2hpbmUuY3JlYXRpbmdJbml0aWFsRW1wdHlEb2N1bWVudCgpKTsgCiB9
CiAKK3ZvaWQgRnJhbWVMb2FkZXI6OnRyYW5zZmVyTG9hZGluZ1Jlc291cmNlc1RvTmV3UGFnZShQ
YWdlKiBvbGRQYWdlKQoreworICAgIEFTU0VSVChvbGRQYWdlICE9IG1fZnJhbWUtPnBhZ2UoKSk7
CisgICAgaWYgKGlzTG9hZGluZygpKQorICAgICAgICBhY3RpdmVEb2N1bWVudExvYWRlcigpLT50
cmFuc2ZlckxvYWRpbmdSZXNvdXJjZXNUb05ld1BhZ2Uob2xkUGFnZSk7Cit9CisKIHZvaWQgRnJh
bWVMb2FkZXI6OnNldERvY3VtZW50TG9hZGVyKERvY3VtZW50TG9hZGVyKiBsb2FkZXIpCiB7CiAg
ICAgaWYgKCFsb2FkZXIgJiYgIW1fZG9jdW1lbnRMb2FkZXIpCmRpZmYgLS1naXQgYS9XZWJDb3Jl
L2xvYWRlci9GcmFtZUxvYWRlci5oIGIvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuaAppbmRl
eCAyYWY2YjZmLi41NDNmZGJmIDEwMDY0NAotLS0gYS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRl
ci5oCisrKyBiL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmgKQEAgLTY4LDYgKzY4LDcgQEAg
Y2xhc3MgSFRNTEZvcm1FbGVtZW50OwogY2xhc3MgSWNvbkxvYWRlcjsKIGNsYXNzIE5hdmlnYXRp
b25BY3Rpb247CiBjbGFzcyBOZXR3b3JraW5nQ29udGV4dDsKK2NsYXNzIFBhZ2U7CiBjbGFzcyBQ
cm90ZWN0aW9uU3BhY2U7CiBjbGFzcyBSZXNvdXJjZUVycm9yOwogY2xhc3MgUmVzb3VyY2VMb2Fk
ZXI7CkBAIC0xMzMsNiArMTM0LDcgQEAgcHVibGljOgogICAgIGJvb2wgaXNMb2FkaW5nTWFpblJl
c291cmNlKCkgY29uc3QgeyByZXR1cm4gbV9pc0xvYWRpbmdNYWluUmVzb3VyY2U7IH0KICAgICBi
b29sIGlzTG9hZGluZygpIGNvbnN0OwogICAgIGJvb2wgZnJhbWVIYXNMb2FkZWQoKSBjb25zdDsK
KyAgICB2b2lkIHRyYW5zZmVyTG9hZGluZ1Jlc291cmNlc1RvTmV3UGFnZShQYWdlKiBvbGRQYWdl
KTsKIAogICAgIGludCBudW1QZW5kaW5nT3JMb2FkaW5nUmVxdWVzdHMoYm9vbCByZWN1cnNlKSBj
b25zdDsKICAgICBTdHJpbmcgcmVmZXJyZXIoKSBjb25zdDsKZGlmZiAtLWdpdCBhL1dlYkNvcmUv
bG9hZGVyL0ZyYW1lTG9hZGVyQ2xpZW50LmggYi9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlckNs
aWVudC5oCmluZGV4IDg1Y2YwMTguLmZiYzlmMzggMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvbG9hZGVy
L0ZyYW1lTG9hZGVyQ2xpZW50LmgKKysrIGIvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXJDbGll
bnQuaApAQCAtMjMxLDYgKzIzMSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgdmly
dHVhbCBQYXNzUmVmUHRyPEZyYW1lPiBjcmVhdGVGcmFtZShjb25zdCBLVVJMJiB1cmwsIGNvbnN0
IFN0cmluZyYgbmFtZSwgSFRNTEZyYW1lT3duZXJFbGVtZW50KiBvd25lckVsZW1lbnQsCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFN0cmluZyYgcmVmZXJyZXIsIGJv
b2wgYWxsb3dzU2Nyb2xsaW5nLCBpbnQgbWFyZ2luV2lkdGgsIGludCBtYXJnaW5IZWlnaHQpID0g
MDsKICAgICAgICAgdmlydHVhbCB2b2lkIGRpZFRyYW5zZmVyQ2hpbGRGcmFtZVRvTmV3RG9jdW1l
bnQoUGFnZSogb2xkUGFnZSkgPSAwOworICAgICAgICB2aXJ0dWFsIHZvaWQgdHJhbnNmZXJMb2Fk
aW5nUmVzb3VyY2VUb05ld1BhZ2UodW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBEb2N1bWVudExv
YWRlciosIGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIFBhZ2UqIG9sZFBhZ2UpID0gMDsKICAgICAg
ICAgdmlydHVhbCBQYXNzUmVmUHRyPFdpZGdldD4gY3JlYXRlUGx1Z2luKGNvbnN0IEludFNpemUm
LCBIVE1MUGx1Z0luRWxlbWVudCosIGNvbnN0IEtVUkwmLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYs
IGNvbnN0IFZlY3RvcjxTdHJpbmc+JiwgY29uc3QgU3RyaW5nJiwgYm9vbCBsb2FkTWFudWFsbHkp
ID0gMDsKICAgICAgICAgdmlydHVhbCB2b2lkIHJlZGlyZWN0RGF0YVRvUGx1Z2luKFdpZGdldCog
cGx1Z2luV2lkZ2V0KSA9IDA7CiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGFnZS9GcmFtZS5jcHAg
Yi9XZWJDb3JlL3BhZ2UvRnJhbWUuY3BwCmluZGV4IDE4NmQ1NjQuLmMwYjYzNGIgMTAwNjQ0Ci0t
LSBhL1dlYkNvcmUvcGFnZS9GcmFtZS5jcHAKKysrIGIvV2ViQ29yZS9wYWdlL0ZyYW1lLmNwcApA
QCAtNzQ0LDYgKzc0NCwxMCBAQCB2b2lkIEZyYW1lOjp0cmFuc2ZlckNoaWxkRnJhbWVUb05ld0Rv
Y3VtZW50KCkKICAgICAgICAgLy8gTGV0IGV4dGVybmFsIGNsaWVudHMgdXBkYXRlIHRoZW1zZWx2
ZXMuCiAgICAgICAgIGxvYWRlcigpLT5jbGllbnQoKS0+ZGlkVHJhbnNmZXJDaGlsZEZyYW1lVG9O
ZXdEb2N1bWVudChvbGRQYWdlKTsKIAorICAgICAgICAvLyBVcGRhdGUgcmVzb3VyY2UgdHJhY2tp
bmcgbm93IHRoYXQgZnJhbWUgaXMgaW4gYSBkaWZmZXJlbnQgcGFnZS4KKyAgICAgICAgaWYgKG9s
ZFBhZ2UgIT0gbmV3UGFnZSkKKyAgICAgICAgICAgIGxvYWRlcigpLT50cmFuc2ZlckxvYWRpbmdS
ZXNvdXJjZXNUb05ld1BhZ2Uob2xkUGFnZSk7CisKICAgICAgICAgLy8gRG8gdGhlIHNhbWUgZm9y
IGFsbCB0aGUgY2hpbGRyZW4uCiAgICAgICAgIGZvciAoRnJhbWUqIGNoaWxkID0gdHJlZSgpLT5m
aXJzdENoaWxkKCk7IGNoaWxkOyBjaGlsZCA9IGNoaWxkLT50cmVlKCktPm5leHRTaWJsaW5nKCkp
CiAgICAgICAgICAgICBjaGlsZC0+dHJhbnNmZXJDaGlsZEZyYW1lVG9OZXdEb2N1bWVudCgpOwpk
aWZmIC0tZ2l0IGEvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZyBiL1dlYktpdC9jaHJvbWl1bS9D
aGFuZ2VMb2cKaW5kZXggMThiOGM5Yi4uNDE5YjdiYSAxMDA2NDQKLS0tIGEvV2ViS2l0L2Nocm9t
aXVtL0NoYW5nZUxvZworKysgYi9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MTUgQEAKKzIwMTAtMTAtMTMgIEplbm4gQnJhaXRod2FpdGUgIDxqZW5uYkBjaHJvbWl1bS5vcmc+
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVzb3Vy
Y2UgdHJhY2tpbmcgZmFpbHVyZSB3aGVuIHRyeWluZyB0byBtb3ZlIGEgZnJhbWUgYmV0d2VlbiBk
b2N1bWVudHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTQ0NzEzCisKKyAgICAgICAgKiBzcmMvRnJhbWVMb2FkZXJDbGllbnRJbXBsLmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6RnJhbWVMb2FkZXJDbGllbnRJbXBsOjp0cmFuc2ZlckxvYWRpbmdSZXNvdXJj
ZVRvTmV3UGFnZSk6CisgICAgICAgIEVtcHR5IG1ldGhvZC4KKyAgICAgICAgKiBzcmMvRnJhbWVM
b2FkZXJDbGllbnRJbXBsLmg6CisKIDIwMTAtMTAtMTMgIEdhdmluIEJhcnJhY2xvdWdoICA8YmFy
cmFjbG91Z2hAYXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IE9saXZlciBIdW50Lgpk
aWZmIC0tZ2l0IGEvV2ViS2l0L2Nocm9taXVtL3NyYy9GcmFtZUxvYWRlckNsaWVudEltcGwuY3Bw
IGIvV2ViS2l0L2Nocm9taXVtL3NyYy9GcmFtZUxvYWRlckNsaWVudEltcGwuY3BwCmluZGV4IGZi
Nzk4ZjYuLmMzOTk4MmEgMTAwNjQ0Ci0tLSBhL1dlYktpdC9jaHJvbWl1bS9zcmMvRnJhbWVMb2Fk
ZXJDbGllbnRJbXBsLmNwcAorKysgYi9XZWJLaXQvY2hyb21pdW0vc3JjL0ZyYW1lTG9hZGVyQ2xp
ZW50SW1wbC5jcHAKQEAgLTEzODEsNiArMTM4MSwxMCBAQCB2b2lkIEZyYW1lTG9hZGVyQ2xpZW50
SW1wbDo6ZGlkVHJhbnNmZXJDaGlsZEZyYW1lVG9OZXdEb2N1bWVudChQYWdlKikKICAgICBtX3dl
YkZyYW1lLT5zZXRDbGllbnQobmV3UGFyZW50LT5jbGllbnQoKSk7CiB9CiAKK3ZvaWQgRnJhbWVM
b2FkZXJDbGllbnRJbXBsOjp0cmFuc2ZlckxvYWRpbmdSZXNvdXJjZVRvTmV3UGFnZSh1bnNpZ25l
ZCBsb25nLCBEb2N1bWVudExvYWRlciosIGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIFBhZ2UqKQor
eworfQorCiBQYXNzUmVmUHRyPFdpZGdldD4gRnJhbWVMb2FkZXJDbGllbnRJbXBsOjpjcmVhdGVQ
bHVnaW4oCiAgICAgY29uc3QgSW50U2l6ZSYgc2l6ZSwgLy8gRklYTUU6IGhvdyBkbyB3ZSB1c2Ug
dGhpcz8KICAgICBIVE1MUGx1Z0luRWxlbWVudCogZWxlbWVudCwKZGlmZiAtLWdpdCBhL1dlYktp
dC9jaHJvbWl1bS9zcmMvRnJhbWVMb2FkZXJDbGllbnRJbXBsLmggYi9XZWJLaXQvY2hyb21pdW0v
c3JjL0ZyYW1lTG9hZGVyQ2xpZW50SW1wbC5oCmluZGV4IDBiMTVkYjYuLmZlY2QwNGIgMTAwNjQ0
Ci0tLSBhL1dlYktpdC9jaHJvbWl1bS9zcmMvRnJhbWVMb2FkZXJDbGllbnRJbXBsLmgKKysrIGIv
V2ViS2l0L2Nocm9taXVtL3NyYy9GcmFtZUxvYWRlckNsaWVudEltcGwuaApAQCAtMTgwLDYgKzE4
MCw3IEBAIHB1YmxpYzoKICAgICAgICAgY29uc3QgV1RGOjpTdHJpbmcmIHJlZmVycmVyLCBib29s
IGFsbG93c1Njcm9sbGluZywKICAgICAgICAgaW50IG1hcmdpbldpZHRoLCBpbnQgbWFyZ2luSGVp
Z2h0KTsKICAgICB2aXJ0dWFsIHZvaWQgZGlkVHJhbnNmZXJDaGlsZEZyYW1lVG9OZXdEb2N1bWVu
dChXZWJDb3JlOjpQYWdlKik7CisgICAgdmlydHVhbCB2b2lkIHRyYW5zZmVyTG9hZGluZ1Jlc291
cmNlVG9OZXdQYWdlKHVuc2lnbmVkIGxvbmcsIFdlYkNvcmU6OkRvY3VtZW50TG9hZGVyKiwgY29u
c3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgV2ViQ29yZTo6UGFnZSopOwogICAgIHZpcnR1
YWwgUGFzc1JlZlB0cjxXZWJDb3JlOjpXaWRnZXQ+IGNyZWF0ZVBsdWdpbigKICAgICAgICAgY29u
c3QgV2ViQ29yZTo6SW50U2l6ZSYsIFdlYkNvcmU6OkhUTUxQbHVnSW5FbGVtZW50KiwgY29uc3Qg
V2ViQ29yZTo6S1VSTCYsCiAgICAgICAgIGNvbnN0IFZlY3RvcjxXVEY6OlN0cmluZz4mLCBjb25z
dCBWZWN0b3I8V1RGOjpTdHJpbmc+JiwKZGlmZiAtLWdpdCBhL1dlYktpdC9lZmwvQ2hhbmdlTG9n
IGIvV2ViS2l0L2VmbC9DaGFuZ2VMb2cKaW5kZXggYThkZmNhZi4uMmMyODFlYiAxMDA2NDQKLS0t
IGEvV2ViS2l0L2VmbC9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0L2VmbC9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNSBAQAorMjAxMC0xMC0xMyAgSmVubiBCcmFpdGh3YWl0ZSAgPGplbm5iQGNocm9taXVt
Lm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBS
ZXNvdXJjZSB0cmFja2luZyBmYWlsdXJlIHdoZW4gdHJ5aW5nIHRvIG1vdmUgYSBmcmFtZSBiZXR3
ZWVuIGRvY3VtZW50cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9NDQ3MTMKKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50
RWZsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyQ2xpZW50RWZsOjp0cmFuc2Zl
ckxvYWRpbmdSZXNvdXJjZVRvTmV3UGFnZSk6CisgICAgICAgIEVtcHR5IG1ldGhvZC4KKyAgICAg
ICAgKiBXZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEVmbC5oOgorCiAyMDEwLTEwLTEz
ICBHeXV5b3VuZyBLaW0gIDxneXV5b3VuZy5raW1Ac2Ftc3VuZy5jb20+CiAKICAgICAgICAgUmV2
aWV3ZWQgYnkgS2VubmV0aCBSb2hkZSBDaHJpc3RpYW5zZW4uCmRpZmYgLS1naXQgYS9XZWJLaXQv
ZWZsL1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50RWZsLmNwcCBiL1dlYktpdC9lZmwv
V2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRFZmwuY3BwCmluZGV4IDhkOTYxNzkuLmZk
ZDZlNjIgMTAwNjQ0Ci0tLSBhL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJD
bGllbnRFZmwuY3BwCisrKyBiL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJD
bGllbnRFZmwuY3BwCkBAIC0zODMsNiArMzgzLDEwIEBAIHZvaWQgRnJhbWVMb2FkZXJDbGllbnRF
Zmw6OmRpZFRyYW5zZmVyQ2hpbGRGcmFtZVRvTmV3RG9jdW1lbnQoUGFnZSopCiB7CiB9CiAKK3Zv
aWQgRnJhbWVMb2FkZXJDbGllbnRFZmw6OnRyYW5zZmVyTG9hZGluZ1Jlc291cmNlVG9OZXdQYWdl
KHVuc2lnbmVkIGxvbmcsIERvY3VtZW50TG9hZGVyKiwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0Jiwg
UGFnZSopCit7Cit9CisKIHZvaWQgRnJhbWVMb2FkZXJDbGllbnRFZmw6OnJlZGlyZWN0RGF0YVRv
UGx1Z2luKFdpZGdldCogcGx1Z2luV2lkZ2V0KQogewogICAgIEFTU0VSVCghbV9wbHVnaW5WaWV3
KTsKZGlmZiAtLWdpdCBhL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGll
bnRFZmwuaCBiL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRFZmwu
aAppbmRleCBkMjUwYjc2Li4xN2ZiYmI1IDEwMDY0NAotLS0gYS9XZWJLaXQvZWZsL1dlYkNvcmVT
dXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50RWZsLmgKKysrIGIvV2ViS2l0L2VmbC9XZWJDb3JlU3Vw
cG9ydC9GcmFtZUxvYWRlckNsaWVudEVmbC5oCkBAIC0xMzUsNiArMTM1LDcgQEAgY2xhc3MgRnJh
bWVMb2FkZXJDbGllbnRFZmwgOiBwdWJsaWMgRnJhbWVMb2FkZXJDbGllbnQgewogICAgIHZpcnR1
YWwgUGFzc1JlZlB0cjxGcmFtZT4gY3JlYXRlRnJhbWUoY29uc3QgS1VSTCYgdXJsLCBjb25zdCBT
dHJpbmcmIG5hbWUsIEhUTUxGcmFtZU93bmVyRWxlbWVudCogb3duZXJFbGVtZW50LAogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFN0cmluZyYgcmVmZXJyZXIsIGJvb2wgYWxs
b3dzU2Nyb2xsaW5nLCBpbnQgbWFyZ2luV2lkdGgsIGludCBtYXJnaW5IZWlnaHQpOwogICAgIHZp
cnR1YWwgdm9pZCBkaWRUcmFuc2ZlckNoaWxkRnJhbWVUb05ld0RvY3VtZW50KFBhZ2UqKTsKKyAg
ICB2aXJ0dWFsIHZvaWQgdHJhbnNmZXJMb2FkaW5nUmVzb3VyY2VUb05ld1BhZ2UodW5zaWduZWQg
bG9uZywgV2ViQ29yZTo6RG9jdW1lbnRMb2FkZXIqLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBX
ZWJDb3JlOjpQYWdlKik7CiAKICAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8V2lkZ2V0PiBjcmVhdGVQ
bHVnaW4oY29uc3QgSW50U2l6ZSYsIEhUTUxQbHVnSW5FbGVtZW50KiwgY29uc3QgS1VSTCYsIGNv
bnN0IFdURjo6VmVjdG9yPFN0cmluZz4mLCBjb25zdCBXVEY6OlZlY3RvcjxTdHJpbmc+JiwgY29u
c3QgU3RyaW5nJiwgYm9vbCk7CiAgICAgdmlydHVhbCB2b2lkIHJlZGlyZWN0RGF0YVRvUGx1Z2lu
KFdpZGdldCogcGx1Z2luV2lkZ2V0KTsKZGlmZiAtLWdpdCBhL1dlYktpdC9ndGsvQ2hhbmdlTG9n
IGIvV2ViS2l0L2d0ay9DaGFuZ2VMb2cKaW5kZXggODFkM2I0MS4uOThiNDA0ZiAxMDA2NDQKLS0t
IGEvV2ViS2l0L2d0ay9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0L2d0ay9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNSBAQAorMjAxMC0xMC0xMyAgSmVubiBCcmFpdGh3YWl0ZSAgPGplbm5iQGNocm9taXVt
Lm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBS
ZXNvdXJjZSB0cmFja2luZyBmYWlsdXJlIHdoZW4gdHJ5aW5nIHRvIG1vdmUgYSBmcmFtZSBiZXR3
ZWVuIGRvY3VtZW50cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9NDQ3MTMKKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50
R3RrLmNwcDoKKyAgICAgICAgKFdlYktpdDo6RnJhbWVMb2FkZXJDbGllbnQ6OnRyYW5zZmVyTG9h
ZGluZ1Jlc291cmNlVG9OZXdQYWdlKToKKyAgICAgICAgRW1wdHkgbWV0aG9kLgorICAgICAgICAq
IFdlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50R3RrLmg6CisKIDIwMTAtMTAtMTMgIFhh
biBMb3BleiAgPHhsb3BlekBpZ2FsaWEuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEd1c3Rh
dm8gTm9yb25oYS4KZGlmZiAtLWdpdCBhL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRnJhbWVM
b2FkZXJDbGllbnRHdGsuY3BwIGIvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRl
ckNsaWVudEd0ay5jcHAKaW5kZXggMTM0MDFmNS4uOWIwNzJjYiAxMDA2NDQKLS0tIGEvV2ViS2l0
L2d0ay9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEd0ay5jcHAKKysrIGIvV2ViS2l0
L2d0ay9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEd0ay5jcHAKQEAgLTYxOCw2ICs2
MTgsMTAgQEAgdm9pZCBGcmFtZUxvYWRlckNsaWVudDo6ZGlkVHJhbnNmZXJDaGlsZEZyYW1lVG9O
ZXdEb2N1bWVudChXZWJDb3JlOjpQYWdlKikKICAgICBBU1NFUlQoY29yZShnZXRWaWV3RnJvbUZy
YW1lKG1fZnJhbWUpKSA9PSBjb3JlRnJhbWUtPnBhZ2UoKSk7CiB9CiAKK3ZvaWQgRnJhbWVMb2Fk
ZXJDbGllbnQ6OnRyYW5zZmVyTG9hZGluZ1Jlc291cmNlVG9OZXdQYWdlKHVuc2lnbmVkIGxvbmcs
IFdlYkNvcmU6OkRvY3VtZW50TG9hZGVyKiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0
JiwgV2ViQ29yZTo6UGFnZSopCit7Cit9CisKIHZvaWQgRnJhbWVMb2FkZXJDbGllbnQ6OnJlZGly
ZWN0RGF0YVRvUGx1Z2luKFdpZGdldCogcGx1Z2luV2lkZ2V0KQogewogICAgIEFTU0VSVCghbV9w
bHVnaW5WaWV3KTsKZGlmZiAtLWdpdCBhL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRnJhbWVM
b2FkZXJDbGllbnRHdGsuaCBiL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJD
bGllbnRHdGsuaAppbmRleCAyMDZlNzgwLi42NjZjMjVlIDEwMDY0NAotLS0gYS9XZWJLaXQvZ3Rr
L1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50R3RrLmgKKysrIGIvV2ViS2l0L2d0ay9X
ZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEd0ay5oCkBAIC0xMTUsNiArMTE1LDcgQEAg
bmFtZXNwYWNlIFdlYktpdCB7CiAgICAgICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxXZWJDb3JlOjpG
cmFtZT4gY3JlYXRlRnJhbWUoY29uc3QgV2ViQ29yZTo6S1VSTCYgdXJsLCBjb25zdCBXVEY6OlN0
cmluZyYgbmFtZSwgV2ViQ29yZTo6SFRNTEZyYW1lT3duZXJFbGVtZW50KiBvd25lckVsZW1lbnQs
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFdURjo6U3RyaW5nJiBy
ZWZlcnJlciwgYm9vbCBhbGxvd3NTY3JvbGxpbmcsIGludCBtYXJnaW5XaWR0aCwgaW50IG1hcmdp
bkhlaWdodCk7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBkaWRUcmFuc2ZlckNoaWxkRnJhbWVUb05l
d0RvY3VtZW50KFdlYkNvcmU6OlBhZ2UqKTsKKyAgICAgICAgdmlydHVhbCB2b2lkIHRyYW5zZmVy
TG9hZGluZ1Jlc291cmNlVG9OZXdQYWdlKHVuc2lnbmVkIGxvbmcsIFdlYkNvcmU6OkRvY3VtZW50
TG9hZGVyKiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgV2ViQ29yZTo6UGFnZSop
OwogICAgICAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8V2ViQ29yZTo6V2lkZ2V0PiBjcmVhdGVQbHVn
aW4oY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYsIFdlYkNvcmU6OkhUTUxQbHVnSW5FbGVtZW50Kiwg
Y29uc3QgV2ViQ29yZTo6S1VSTCYsIGNvbnN0IFdURjo6VmVjdG9yPFdURjo6U3RyaW5nPiYsIGNv
bnN0IFdURjo6VmVjdG9yPFdURjo6U3RyaW5nPiYsIGNvbnN0IFdURjo6U3RyaW5nJiwgYm9vbCk7
CiAgICAgICAgIHZpcnR1YWwgdm9pZCByZWRpcmVjdERhdGFUb1BsdWdpbihXZWJDb3JlOjpXaWRn
ZXQqIHBsdWdpbldpZGdldCk7CiAgICAgICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxXZWJDb3JlOjpX
aWRnZXQ+IGNyZWF0ZUphdmFBcHBsZXRXaWRnZXQoY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYsIFdl
YkNvcmU6OkhUTUxBcHBsZXRFbGVtZW50KiwgY29uc3QgV2ViQ29yZTo6S1VSTCYgYmFzZVVSTCwg
Y29uc3QgV1RGOjpWZWN0b3I8V1RGOjpTdHJpbmc+JiBwYXJhbU5hbWVzLCBjb25zdCBXVEY6OlZl
Y3RvcjxXVEY6OlN0cmluZz4mIHBhcmFtVmFsdWVzKTsKZGlmZiAtLWdpdCBhL1dlYktpdC9oYWlr
dS9DaGFuZ2VMb2cgYi9XZWJLaXQvaGFpa3UvQ2hhbmdlTG9nCmluZGV4IGQ1NWNlNzEuLmVhZGU4
NzMgMTAwNjQ0Ci0tLSBhL1dlYktpdC9oYWlrdS9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0L2hhaWt1
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDEwLTEwLTEzICBKZW5uIEJyYWl0aHdhaXRl
ICA8amVubmJAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIFJlc291cmNlIHRyYWNraW5nIGZhaWx1cmUgd2hlbiB0cnlpbmcgdG8g
bW92ZSBhIGZyYW1lIGJldHdlZW4gZG9jdW1lbnRzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD00NDcxMworCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQv
RnJhbWVMb2FkZXJDbGllbnRIYWlrdS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRl
ckNsaWVudEhhaWt1Ojp0cmFuc2ZlckxvYWRpbmdSZXNvdXJjZVRvTmV3UGFnZSk6CisgICAgICAg
IEVtcHR5IG1ldGhvZC4KKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVu
dEhhaWt1Lmg6CisKIDIwMTAtMDktMjggIEplbm4gQnJhaXRod2FpdGUgIDxqZW5uYkBjaHJvbWl1
bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRG1pdHJ5IFRpdG92LgpkaWZmIC0tZ2l0IGEv
V2ViS2l0L2hhaWt1L1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50SGFpa3UuY3BwIGIv
V2ViS2l0L2hhaWt1L1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50SGFpa3UuY3BwCmlu
ZGV4IGNhZTBlZDEuLjg5ZjhlMGYgMTAwNjQ0Ci0tLSBhL1dlYktpdC9oYWlrdS9XZWJDb3JlU3Vw
cG9ydC9GcmFtZUxvYWRlckNsaWVudEhhaWt1LmNwcAorKysgYi9XZWJLaXQvaGFpa3UvV2ViQ29y
ZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRIYWlrdS5jcHAKQEAgLTc0NSw2ICs3NDUsMTAgQEAg
dm9pZCBGcmFtZUxvYWRlckNsaWVudEhhaWt1OjpkaWRUcmFuc2ZlckNoaWxkRnJhbWVUb05ld0Rv
Y3VtZW50KFBhZ2UqKQogewogfQogCit2b2lkIEZyYW1lTG9hZGVyQ2xpZW50SGFpa3U6OnRyYW5z
ZmVyTG9hZGluZ1Jlc291cmNlVG9OZXdQYWdlKHVuc2lnbmVkIGxvbmcsIERvY3VtZW50TG9hZGVy
KiwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgUGFnZSopCit7Cit9CisKIE9iamVjdENvbnRlbnRU
eXBlIEZyYW1lTG9hZGVyQ2xpZW50SGFpa3U6Om9iamVjdENvbnRlbnRUeXBlKGNvbnN0IEtVUkwm
IHVybCwgY29uc3QgU3RyaW5nJiBtaW1lVHlwZSkKIHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwpk
aWZmIC0tZ2l0IGEvV2ViS2l0L2hhaWt1L1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50
SGFpa3UuaCBiL1dlYktpdC9oYWlrdS9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEhh
aWt1LmgKaW5kZXggMTcwMWNiMC4uZGJjOTg4MCAxMDA2NDQKLS0tIGEvV2ViS2l0L2hhaWt1L1dl
YkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50SGFpa3UuaAorKysgYi9XZWJLaXQvaGFpa3Uv
V2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRIYWlrdS5oCkBAIC0yMjIsNiArMjIyLDcg
QEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIEhUTUxGcmFtZU93bmVyRWxlbWVudCosIGNvbnN0IFN0cmluZyYgcmVmZXJy
ZXIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbCBh
bGxvd3NTY3JvbGxpbmcsIGludCBtYXJnaW5XaWR0aCwgaW50IG1hcmdpbkhlaWdodCk7CiAgICAg
ICAgIHZpcnR1YWwgdm9pZCBkaWRUcmFuc2ZlckNoaWxkRnJhbWVUb05ld0RvY3VtZW50KFdlYkNv
cmU6OlBhZ2UqKTsKKyAgICAgICAgdmlydHVhbCB2b2lkIHRyYW5zZmVyTG9hZGluZ1Jlc291cmNl
VG9OZXdQYWdlKHVuc2lnbmVkIGxvbmcsIFdlYkNvcmU6OkRvY3VtZW50TG9hZGVyKiwgY29uc3Qg
UmVzb3VyY2VSZXF1ZXN0JiwgV2ViQ29yZTo6UGFnZSopOwogICAgICAgICB2aXJ0dWFsIFBhc3NS
ZWZQdHI8V2lkZ2V0PiBjcmVhdGVQbHVnaW4oY29uc3QgSW50U2l6ZSYsIEhUTUxQbHVnSW5FbGVt
ZW50KiwgY29uc3QgS1VSTCYsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBjb25zdCBWZWN0b3I8U3RyaW5nPiYsIGNvbnN0IFZlY3RvcjxTdHJpbmc+Jiwg
Y29uc3QgU3RyaW5nJiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGJvb2wgbG9hZE1hbnVhbGx5KTsKZGlmZiAtLWdpdCBhL1dlYktpdC9tYWMvQ2hhbmdl
TG9nIGIvV2ViS2l0L21hYy9DaGFuZ2VMb2cKaW5kZXggNTBkNmFjMS4uYmE5M2Q3ZCAxMDA2NDQK
LS0tIGEvV2ViS2l0L21hYy9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0L21hYy9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwyNSBAQAorMjAxMC0xMC0xMyAgSmVubiBCcmFpdGh3YWl0ZSAgPGplbm5iQGNocm9t
aXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBSZXNvdXJjZSB0cmFja2luZyBmYWlsdXJlIHdoZW4gdHJ5aW5nIHRvIG1vdmUgYSBmcmFtZSBi
ZXR3ZWVuIGRvY3VtZW50cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9NDQ3MTMKKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVy
Q2xpZW50Lmg6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQu
bW06CisgICAgICAgIChXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlkVHJhbnNmZXJDaGlsZEZyYW1l
VG9OZXdEb2N1bWVudCk6CisgICAgICAgIEVtcHR5IG1ldGhvZC4KKyAgICAgICAgKFdlYkZyYW1l
TG9hZGVyQ2xpZW50Ojp0cmFuc2ZlckxvYWRpbmdSZXNvdXJjZVRvTmV3UGFnZSk6CisgICAgICAg
IFVwZGF0ZSByZXNvdXJjZSB0cmFja2luZyBmb3IgYSByZXNvdXJjZSBsb2FkIHRoYXQgaGFzIGJl
ZW4gdHJhbnNmZXJyZWQKKyAgICAgICAgdG8gYSBuZXcgcGFnZS4KKworICAgICAgICAqIFdlYlZp
ZXcvV2ViRGVsZWdhdGVJbXBsZW1lbnRhdGlvbkNhY2hpbmcuaDoKKyAgICAgICAgKiBXZWJWaWV3
L1dlYlJlc291cmNlTG9hZERlbGVnYXRlLmg6CisgICAgICAgIEFkZGVkIEFQSSBmb3IgV2ViUmVz
b3VyY2VMb2FkRGVsZWdhdGUgdG8gdHJhbnNmZXIgaW5mbyBhYm91dCBhIGxvYWRpbmcgcmVzb3Vy
Y2UgZnJvbSBhbiBvbGQgV2ViVmlldy4KKyAgICAgICAgKiBXZWJWaWV3L1dlYlZpZXcubW06Cisg
ICAgICAgICgtW1dlYlZpZXcgX2NhY2hlUmVzb3VyY2VMb2FkRGVsZWdhdGVJbXBsZW1lbnRhdGlv
bnNdKToKKyAgICAgICAgQ2FjaGUgdGhlIG5ldyBmdW5jdGlvbiBmb3IgdHJhbnNmZXJyaW5nIGxv
YWRpbmcgcmVzb3VyY2UuCisKIDIwMTAtMTAtMTIgIEFuZHkgRXN0ZXMgIDxhZXN0ZXNAYXBwbGUu
Y29tPgogCiAgICAgICAgIFJ1YmJlci1zdGFtcGVkIGJ5IERhcmluIEFkbGVyLgpkaWZmIC0tZ2l0
IGEvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oIGIvV2Vi
S2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oCmluZGV4IDBiYWE1
NWMuLmI2N2YxMmEgMTAwNjQ0Ci0tLSBhL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJh
bWVMb2FkZXJDbGllbnQuaAorKysgYi9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1l
TG9hZGVyQ2xpZW50LmgKQEAgLTE5NCw2ICsxOTQsNyBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwg
UGFzc1JlZlB0cjxXZWJDb3JlOjpGcmFtZT4gY3JlYXRlRnJhbWUoY29uc3QgV2ViQ29yZTo6S1VS
TCYgdXJsLCBjb25zdCBXVEY6OlN0cmluZyYgbmFtZSwgV2ViQ29yZTo6SFRNTEZyYW1lT3duZXJF
bGVtZW50KiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBX
VEY6OlN0cmluZyYgcmVmZXJyZXIsIGJvb2wgYWxsb3dzU2Nyb2xsaW5nLCBpbnQgbWFyZ2luV2lk
dGgsIGludCBtYXJnaW5IZWlnaHQpOwogICAgIHZpcnR1YWwgdm9pZCBkaWRUcmFuc2ZlckNoaWxk
RnJhbWVUb05ld0RvY3VtZW50KFdlYkNvcmU6OlBhZ2UqIG9sZFBhZ2UpOworICAgIHZpcnR1YWwg
dm9pZCB0cmFuc2ZlckxvYWRpbmdSZXNvdXJjZVRvTmV3UGFnZSh1bnNpZ25lZCBsb25nIGlkZW50
aWZpZXIsIFdlYkNvcmU6OkRvY3VtZW50TG9hZGVyKiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VS
ZXF1ZXN0JiwgV2ViQ29yZTo6UGFnZSogb2xkUGFnZSk7CiAgICAgdmlydHVhbCBQYXNzUmVmUHRy
PFdlYkNvcmU6OldpZGdldD4gY3JlYXRlUGx1Z2luKGNvbnN0IFdlYkNvcmU6OkludFNpemUmLCBX
ZWJDb3JlOjpIVE1MUGx1Z0luRWxlbWVudCosIGNvbnN0IFdlYkNvcmU6OktVUkwmLCBjb25zdCBW
ZWN0b3I8V1RGOjpTdHJpbmc+JiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGNvbnN0IFZlY3RvcjxXVEY6OlN0cmluZz4mLCBjb25zdCBXVEY6OlN0cmluZyYsIGJv
b2wpOwogICAgIHZpcnR1YWwgdm9pZCByZWRpcmVjdERhdGFUb1BsdWdpbihXZWJDb3JlOjpXaWRn
ZXQqIHBsdWdpbldpZGdldCk7CmRpZmYgLS1naXQgYS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0
L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lm1tIGIvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJG
cmFtZUxvYWRlckNsaWVudC5tbQppbmRleCA1OTM3MDIyLi4yNTM1ZTk0IDEwMDY0NAotLS0gYS9X
ZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lm1tCisrKyBiL1dl
YktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQubW0KQEAgLTEzODYs
MTEgKzEzODYsMjggQEAgUGFzc1JlZlB0cjxGcmFtZT4gV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmNy
ZWF0ZUZyYW1lKGNvbnN0IEtVUkwmIHVybCwgY29uc3QgU3RyaW4KIAogdm9pZCBXZWJGcmFtZUxv
YWRlckNsaWVudDo6ZGlkVHJhbnNmZXJDaGlsZEZyYW1lVG9OZXdEb2N1bWVudChQYWdlKiBvbGRQ
YWdlKQogewotICAgIGlmIChvbGRQYWdlID09IGNvcmUobV93ZWJGcmFtZS5nZXQoKSktPnBhZ2Uo
KSkKLSAgICAgICAgcmV0dXJuOworfQorCit2b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50Ojp0cmFu
c2ZlckxvYWRpbmdSZXNvdXJjZVRvTmV3UGFnZSh1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIERv
Y3VtZW50TG9hZGVyKiBsb2FkZXIsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgUGFn
ZSogb2xkUGFnZSkKK3sKKyAgICBGcmFtZSogY29yZUZyYW1lID0gY29yZShtX3dlYkZyYW1lLmdl
dCgpKTsKKyAgICBBU1NFUlQob2xkUGFnZSAhPSBjb3JlRnJhbWUtPnBhZ2UoKSk7CisKKyAgICBX
ZWJWaWV3KiB3ZWJWaWV3ID0gZ2V0V2ViVmlldyhtX3dlYkZyYW1lLmdldCgpKTsKKyAgICBBU1NF
UlQoIVt3ZWJWaWV3IF9vYmplY3RGb3JJZGVudGlmaWVyOmlkZW50aWZpZXJdKTsKKworICAgIGFz
c2lnbklkZW50aWZpZXJUb0luaXRpYWxSZXF1ZXN0KGlkZW50aWZpZXIsIGxvYWRlciwgcmVxdWVz
dCk7CisKKyAgICBXZWJWaWV3KiBvbGRXZWJWaWV3ID0ga2l0KG9sZFBhZ2UpOworICAgIGlkIG9s
ZFJlc291cmNlID0gW29sZFdlYlZpZXcgX29iamVjdEZvcklkZW50aWZpZXI6aWRlbnRpZmllcl07
CisgICAgQVNTRVJUKG9sZFJlc291cmNlKTsKKworICAgIC8vIFRyYW5zZmVyIGluZm8gdGhhdCBt
YXkgYmUgc3RvcmVkIGFib3V0IHRoZSByZXNvdXJjZSBmcm9tIHRoZSBvbGQgV2ViVmlldy4KKyAg
ICBXZWJSZXNvdXJjZURlbGVnYXRlSW1wbGVtZW50YXRpb25DYWNoZSogaW1wbGVtZW50YXRpb25z
ID0gV2ViVmlld0dldFJlc291cmNlTG9hZERlbGVnYXRlSW1wbGVtZW50YXRpb25zKHdlYlZpZXcp
OworICAgIGlmIChpbXBsZW1lbnRhdGlvbnMtPnRyYW5zZmVyTG9hZGluZ1Jlc291cmNlRnJvbVdl
YlZpZXdGdW5jKQorICAgICAgICBDYWxsUmVzb3VyY2VMb2FkRGVsZWdhdGUoaW1wbGVtZW50YXRp
b25zLT50cmFuc2ZlckxvYWRpbmdSZXNvdXJjZUZyb21XZWJWaWV3RnVuYywgd2ViVmlldywgQHNl
bGVjdG9yKHdlYlZpZXc6cmVzb3VyY2U6dHJhbnNmZXJMb2FkaW5nUmVzb3VyY2U6ZnJvbVdlYlZp
ZXc6KSwgW3dlYlZpZXcgX29iamVjdEZvcklkZW50aWZpZXI6aWRlbnRpZmllcl0sIG9sZFJlc291
cmNlLCBvbGRXZWJWaWV3KTsKIAotICAgIC8vIFVwZGF0ZSByZXNvdXJjZSB0cmFja2luZyBub3cg
dGhhdCBmcmFtZSBpcyBpbiBhIGRpZmZlcmVudCBwYWdlLgotICAgIC8vIFRPRE8oamVubmIpOiB1
cGRhdGUgcmVzb3VyY2UgdHJhY2tpbmcgW2J1ZyA0NDcxM10KKyAgICBbb2xkV2ViVmlldyBfcmVt
b3ZlT2JqZWN0Rm9ySWRlbnRpZmllcjppZGVudGlmaWVyXTsKIH0KIAogT2JqZWN0Q29udGVudFR5
cGUgV2ViRnJhbWVMb2FkZXJDbGllbnQ6Om9iamVjdENvbnRlbnRUeXBlKGNvbnN0IEtVUkwmIHVy
bCwgY29uc3QgU3RyaW5nJiBtaW1lVHlwZSkKZGlmZiAtLWdpdCBhL1dlYktpdC9tYWMvV2ViVmll
dy9XZWJEZWxlZ2F0ZUltcGxlbWVudGF0aW9uQ2FjaGluZy5oIGIvV2ViS2l0L21hYy9XZWJWaWV3
L1dlYkRlbGVnYXRlSW1wbGVtZW50YXRpb25DYWNoaW5nLmgKaW5kZXggMmFhZGM4My4uYjliMGMw
NiAxMDA2NDQKLS0tIGEvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkRlbGVnYXRlSW1wbGVtZW50YXRp
b25DYWNoaW5nLmgKKysrIGIvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkRlbGVnYXRlSW1wbGVtZW50
YXRpb25DYWNoaW5nLmgKQEAgLTQ4LDYgKzQ4LDcgQEAgc3RydWN0IFdlYlJlc291cmNlRGVsZWdh
dGVJbXBsZW1lbnRhdGlvbkNhY2hlIHsKICAgICBJTVAgd2lsbENhY2hlUmVzcG9uc2VGdW5jOwog
ICAgIElNUCBwbHVnSW5GYWlsZWRXaXRoRXJyb3JGdW5jOwogICAgIElNUCBzaG91bGRVc2VDcmVk
ZW50aWFsU3RvcmFnZUZ1bmM7CisgICAgSU1QIHRyYW5zZmVyTG9hZGluZ1Jlc291cmNlRnJvbVdl
YlZpZXdGdW5jOwogfTsKIAogc3RydWN0IFdlYkZyYW1lTG9hZERlbGVnYXRlSW1wbGVtZW50YXRp
b25DYWNoZSB7CmRpZmYgLS1naXQgYS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViUmVzb3VyY2VMb2Fk
RGVsZWdhdGUuaCBiL1dlYktpdC9tYWMvV2ViVmlldy9XZWJSZXNvdXJjZUxvYWREZWxlZ2F0ZS5o
CmluZGV4IDc3ZDg0YWQuLjBlNGY4NzggMTAwNjQ0Ci0tLSBhL1dlYktpdC9tYWMvV2ViVmlldy9X
ZWJSZXNvdXJjZUxvYWREZWxlZ2F0ZS5oCisrKyBiL1dlYktpdC9tYWMvV2ViVmlldy9XZWJSZXNv
dXJjZUxvYWREZWxlZ2F0ZS5oCkBAIC0xNjEsNiArMTYxLDE2IEBACiAqLwogLSAodm9pZCl3ZWJW
aWV3OihXZWJWaWV3ICopc2VuZGVyIHBsdWdJbkZhaWxlZFdpdGhFcnJvcjooTlNFcnJvciAqKWVy
cm9yIGRhdGFTb3VyY2U6KFdlYkRhdGFTb3VyY2UgKilkYXRhU291cmNlOwogCisvKiEKKyAgICBA
bWV0aG9kIHdlYlZpZXc6cmVzb3VyY2U6dHJhbnNmZXJMb2FkaW5nUmVzb3VyY2U6ZnJvbVdlYlZp
ZXc6CisgICAgQGRpc2N1c3Npb24gVGhpcyBtZXNzYWdlIGlzIHNlbnQgYWZ0ZXIgYSBmcmFtZSBo
YXMgYmVlbiBtb3ZlZCB0byBhIG5ldyBwYWdlIHdpdGhvdXQgZGlzcnVwdGluZyByZXNvdXJjZSBs
b2Fkcy4gQW55IHJlc291cmNlcyB0aGF0IGFyZSBiZWluZyBsb2FkZWQgYnkgdGhhdCBmcmFtZSBh
cmUgdHJhbnNmZXJyZWQgdG8gdGhlIG5ldyBwYWdlLiBJZiB0aGUgV2ViUmVzb3VyY2VMb2FkRGVs
ZWdhdGUgaW1wbGVtZW50YXRpb24gc3RvcmVzIGFueSBpbmZvcm1hdGlvbiBhYm91dCB0aGUgbG9h
ZGluZyByZXNvdXJjZSwgdGhhdCBpbmZvcm1hdGlvbiBzaG91bGQgYmUgdHJhbnNmZXJyZWQgZnJv
bSB0aGUgV2ViUmVzb3VyY2VMb2FkRGVsZWdhdGUgb2YgdGhlIG9sZCBXZWJWaWV3LiBUaGUgb2xk
IFdlYlZpZXcgbXVzdCBjZWFzZSB0cmFja2luZyBvZiB0aGUgcmVzb3VyY2UgbG9hZCBhZnRlciB0
aGlzIG5vdGlmaWNhdGlvbi4KKyAgICBAcGFyYW0gd2ViVmlldyBUaGUgV2ViVmlldyB3aG8gaXMg
dGhlIHNlbmRlciBvZiB0aGUgbWVzc2FnZS4KKyAgICBAcGFyYW0gaWRlbnRpZmllciBBbiBpZGVu
dGlmaWVyIHRoYXQgY2FuIGJlIHVzZWQgdG8gdHJhY2sgdGhlIHByb2dyZXNzIG9mIGEgcmVzb3Vy
Y2UgbG9hZCBhY3Jvc3MgbXVsdGlwbGUgY2FsbCBiYWNrcy4KKyAgICBAcGFyYW0gb2xkUmVzb3Vy
Y2UgVGhlIGlkZW50aWZpZXIgdXNlZCBieSB0aGUgb2xkIFdlYlZpZXcgdG8gdHJhY2sgdGhlIHBy
b2dyZXNzIG9mIGEgcmVzb3VyY2UgbG9hZCBhY3Jvc3MgbXVsdGlwbGUgY2FsbCBiYWNrcy4KKyAg
ICBAcGFyYW0gb2xkV2ViVmlldyBUaGUgV2ViVmlldyBpbiB0aGUgb2xkIHBhZ2Ugd2hvIHdhcyB0
aGUgc2VuZGVyIG9mIHRoZSBtZXNzYWdlLgorICovCistICh2b2lkKXdlYlZpZXc6KFdlYlZpZXcg
KilzZW5kZXIgcmVzb3VyY2U6KGlkKWlkZW50aWZpZXIgdHJhbnNmZXJMb2FkaW5nUmVzb3VyY2U6
KGlkKW9sZFJlc291cmNlIGZyb21XZWJWaWV3OihXZWJWaWV3ICopb2xkV2ViVmlldzsKKwogQGVu
ZAogCiAjdW5kZWYgV2ViTlNJbnRlZ2VyCmRpZmYgLS1naXQgYS9XZWJLaXQvbWFjL1dlYlZpZXcv
V2ViVmlldy5tbSBiL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCmluZGV4IDliMjY3ZWYu
LjVlZGYwMjAgMTAwNjQ0Ci0tLSBhL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCisrKyBi
L1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCkBAIC0xNTM0LDYgKzE1MzQsNyBAQCBzdGF0
aWMgaW5saW5lIElNUCBnZXRNZXRob2QoaWQgbywgU0VMIHMpCiAgICAgY2FjaGUtPndpbGxDYWNo
ZVJlc3BvbnNlRnVuYyA9IGdldE1ldGhvZChkZWxlZ2F0ZSwgQHNlbGVjdG9yKHdlYlZpZXc6cmVz
b3VyY2U6d2lsbENhY2hlUmVzcG9uc2U6ZnJvbURhdGFTb3VyY2U6KSk7CiAgICAgY2FjaGUtPndp
bGxTZW5kUmVxdWVzdEZ1bmMgPSBnZXRNZXRob2QoZGVsZWdhdGUsIEBzZWxlY3Rvcih3ZWJWaWV3
OnJlc291cmNlOndpbGxTZW5kUmVxdWVzdDpyZWRpcmVjdFJlc3BvbnNlOmZyb21EYXRhU291cmNl
OikpOwogICAgIGNhY2hlLT5zaG91bGRVc2VDcmVkZW50aWFsU3RvcmFnZUZ1bmMgPSBnZXRNZXRo
b2QoZGVsZWdhdGUsIEBzZWxlY3Rvcih3ZWJWaWV3OnJlc291cmNlOnNob3VsZFVzZUNyZWRlbnRp
YWxTdG9yYWdlRm9yRGF0YVNvdXJjZTopKTsKKyAgICBjYWNoZS0+dHJhbnNmZXJMb2FkaW5nUmVz
b3VyY2VGcm9tV2ViVmlld0Z1bmMgPSBnZXRNZXRob2QoZGVsZWdhdGUsIEBzZWxlY3Rvcih3ZWJW
aWV3OnJlc291cmNlOnRyYW5zZmVyTG9hZGluZ1Jlc291cmNlOmZyb21XZWJWaWV3OikpOwogfQog
CiAtICh2b2lkKV9jYWNoZUZyYW1lTG9hZERlbGVnYXRlSW1wbGVtZW50YXRpb25zCmRpZmYgLS1n
aXQgYS9XZWJLaXQvcXQvQ2hhbmdlTG9nIGIvV2ViS2l0L3F0L0NoYW5nZUxvZwppbmRleCA4ZTdl
NTE0Li45MGE1OTM0IDEwMDY0NAotLS0gYS9XZWJLaXQvcXQvQ2hhbmdlTG9nCisrKyBiL1dlYktp
dC9xdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAxMC0xMC0xMyAgSmVubiBCcmFpdGh3
YWl0ZSAgPGplbm5iQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBSZXNvdXJjZSB0cmFja2luZyBmYWlsdXJlIHdoZW4gdHJ5aW5n
IHRvIG1vdmUgYSBmcmFtZSBiZXR3ZWVuIGRvY3VtZW50cworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDQ3MTMKKworICAgICAgICAqIFdlYkNvcmVTdXBw
b3J0L0ZyYW1lTG9hZGVyQ2xpZW50UXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2Fk
ZXJDbGllbnRRdDo6dHJhbnNmZXJMb2FkaW5nUmVzb3VyY2VUb05ld1BhZ2UpOgorICAgICAgICBF
bXRweSBtZXRob2QuCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRR
dC5oOgorCiAyMDEwLTEwLTEzICBEaW51IEphY29iICA8ZGludS5qYWNvYkBub2tpYS5jb20+CiAK
ICAgICAgICAgUmV2aWV3ZWQgYnkgQW5kcmVhcyBLbGluZy4KZGlmZiAtLWdpdCBhL1dlYktpdC9x
dC9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudFF0LmNwcCBiL1dlYktpdC9xdC9XZWJD
b3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudFF0LmNwcAppbmRleCAyODE1MTcxLi5hZWM1ZWUy
IDEwMDY0NAotLS0gYS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRR
dC5jcHAKKysrIGIvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50UXQu
Y3BwCkBAIC0xMjYzLDYgKzEyNjMsMTAgQEAgdm9pZCBGcmFtZUxvYWRlckNsaWVudFF0OjpkaWRU
cmFuc2ZlckNoaWxkRnJhbWVUb05ld0RvY3VtZW50KFBhZ2UqKQogICAgIH0KIH0KIAordm9pZCBG
cmFtZUxvYWRlckNsaWVudFF0Ojp0cmFuc2ZlckxvYWRpbmdSZXNvdXJjZVRvTmV3UGFnZSh1bnNp
Z25lZCBsb25nLCBEb2N1bWVudExvYWRlciosIGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIFBhZ2Uq
KQoreworfQorCiBPYmplY3RDb250ZW50VHlwZSBGcmFtZUxvYWRlckNsaWVudFF0OjpvYmplY3RD
b250ZW50VHlwZShjb25zdCBLVVJMJiB1cmwsIGNvbnN0IFN0cmluZyYgX21pbWVUeXBlKQogewog
Ly8gICAgcURlYnVnKCk8PCIgKysrKysrKysrKysrKysrKyB1cmwgaXMgIjw8dXJsLnByZXR0eVVS
TCgpPDwiLCBtaW1lID0gIjw8X21pbWVUeXBlOwpkaWZmIC0tZ2l0IGEvV2ViS2l0L3F0L1dlYkNv
cmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50UXQuaCBiL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9y
dC9GcmFtZUxvYWRlckNsaWVudFF0LmgKaW5kZXggZWM2YTNiNi4uNGQ4MjhiZCAxMDA2NDQKLS0t
IGEvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50UXQuaAorKysgYi9X
ZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRRdC5oCkBAIC0xOTksNiAr
MTk5LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxGcmFtZT4gY3JlYXRlRnJh
bWUoY29uc3QgS1VSTCYgdXJsLCBjb25zdCBTdHJpbmcmIG5hbWUsIEhUTUxGcmFtZU93bmVyRWxl
bWVudCogb3duZXJFbGVtZW50LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0
IFN0cmluZyYgcmVmZXJyZXIsIGJvb2wgYWxsb3dzU2Nyb2xsaW5nLCBpbnQgbWFyZ2luV2lkdGgs
IGludCBtYXJnaW5IZWlnaHQpOwogICAgIHZpcnR1YWwgdm9pZCBkaWRUcmFuc2ZlckNoaWxkRnJh
bWVUb05ld0RvY3VtZW50KFdlYkNvcmU6OlBhZ2UqKTsKKyAgICB2aXJ0dWFsIHZvaWQgdHJhbnNm
ZXJMb2FkaW5nUmVzb3VyY2VUb05ld1BhZ2UodW5zaWduZWQgbG9uZywgV2ViQ29yZTo6RG9jdW1l
bnRMb2FkZXIqLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBXZWJDb3JlOjpQYWdl
Kik7CiAgICAgdmlydHVhbCBQYXNzUmVmUHRyPFdpZGdldD4gY3JlYXRlUGx1Z2luKGNvbnN0IElu
dFNpemUmLCBIVE1MUGx1Z0luRWxlbWVudCosIGNvbnN0IEtVUkwmLCBjb25zdCBWZWN0b3I8U3Ry
aW5nPiYsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiwgY29uc3QgU3RyaW5nJiwgYm9vbCk7CiAgICAg
dmlydHVhbCB2b2lkIHJlZGlyZWN0RGF0YVRvUGx1Z2luKFdpZGdldCogcGx1Z2luV2lkZ2V0KTsK
IApkaWZmIC0tZ2l0IGEvV2ViS2l0L3dpbi9DaGFuZ2VMb2cgYi9XZWJLaXQvd2luL0NoYW5nZUxv
ZwppbmRleCAxM2YwNmFjLi45OTAwN2E4IDEwMDY0NAotLS0gYS9XZWJLaXQvd2luL0NoYW5nZUxv
ZworKysgYi9XZWJLaXQvd2luL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDEwLTEwLTEz
ICBKZW5uIEJyYWl0aHdhaXRlICA8amVubmJAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlc291cmNlIHRyYWNraW5nIGZhaWx1
cmUgd2hlbiB0cnlpbmcgdG8gbW92ZSBhIGZyYW1lIGJldHdlZW4gZG9jdW1lbnRzCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00NDcxMworCisgICAgICAg
ICogV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwOgorICAgICAgICAoV2Vi
RnJhbWVMb2FkZXJDbGllbnQ6OnRyYW5zZmVyTG9hZGluZ1Jlc291cmNlVG9OZXdQYWdlKToKKyAg
ICAgICAgRW1wdHkgbWV0aG9kLgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9h
ZGVyQ2xpZW50Lmg6CisKIDIwMTAtMTAtMTIgIEFkYW0gUm9iZW4gIDxhcm9iZW5AYXBwbGUuY29t
PgogCiAgICAgICAgIEJ1aWxkIFRlc3RXZWJLaXRBUEkgb24gV2luZG93cwpkaWZmIC0tZ2l0IGEv
V2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAgYi9XZWJL
aXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcAppbmRleCA0Yzc4
MDBmLi5iMDRjZDE0IDEwMDY0NAotLS0gYS9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkZy
YW1lTG9hZGVyQ2xpZW50LmNwcAorKysgYi9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkZy
YW1lTG9hZGVyQ2xpZW50LmNwcApAQCAtNzMzLDYgKzczMywxMCBAQCB2b2lkIFdlYkZyYW1lTG9h
ZGVyQ2xpZW50OjpkaWRUcmFuc2ZlckNoaWxkRnJhbWVUb05ld0RvY3VtZW50KFBhZ2UqKQogewog
fQogCit2b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50Ojp0cmFuc2ZlckxvYWRpbmdSZXNvdXJjZVRv
TmV3UGFnZSh1bnNpZ25lZCBsb25nLCBEb2N1bWVudExvYWRlciosIGNvbnN0IFJlc291cmNlUmVx
dWVzdCYsIFBhZ2UqKQoreworfQorCiBQYXNzUmVmUHRyPEZyYW1lPiBXZWJGcmFtZUxvYWRlckNs
aWVudDo6Y3JlYXRlRnJhbWUoY29uc3QgS1VSTCYgVVJMLCBjb25zdCBTdHJpbmcmIG5hbWUsIEhU
TUxGcmFtZU93bmVyRWxlbWVudCogb3duZXJFbGVtZW50LCBjb25zdCBTdHJpbmcmIHJlZmVycmVy
KQogewogICAgIEZyYW1lKiBjb3JlRnJhbWUgPSBjb3JlKG1fd2ViRnJhbWUpOwpkaWZmIC0tZ2l0
IGEvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oIGIvV2Vi
S2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oCmluZGV4IDdlYzM0
NGMuLjc3ZDQzYTAgMTAwNjQ0Ci0tLSBhL1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRnJh
bWVMb2FkZXJDbGllbnQuaAorKysgYi9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1l
TG9hZGVyQ2xpZW50LmgKQEAgLTExMyw2ICsxMTMsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBQ
YXNzUmVmUHRyPFdlYkNvcmU6OkZyYW1lPiBjcmVhdGVGcmFtZShjb25zdCBXZWJDb3JlOjpLVVJM
JiB1cmwsIGNvbnN0IFdURjo6U3RyaW5nJiBuYW1lLCBXZWJDb3JlOjpIVE1MRnJhbWVPd25lckVs
ZW1lbnQqIG93bmVyRWxlbWVudCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25z
dCBXVEY6OlN0cmluZyYgcmVmZXJyZXIsIGJvb2wgYWxsb3dzU2Nyb2xsaW5nLCBpbnQgbWFyZ2lu
V2lkdGgsIGludCBtYXJnaW5IZWlnaHQpOwogICAgIHZpcnR1YWwgdm9pZCBkaWRUcmFuc2ZlckNo
aWxkRnJhbWVUb05ld0RvY3VtZW50KFdlYkNvcmU6OlBhZ2UqKTsKKyAgICB2aXJ0dWFsIHZvaWQg
dHJhbnNmZXJMb2FkaW5nUmVzb3VyY2VUb05ld1BhZ2UodW5zaWduZWQgbG9uZywgV2ViQ29yZTo6
RG9jdW1lbnRMb2FkZXIqLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBXZWJDb3Jl
OjpQYWdlKik7CiAgICAgdmlydHVhbCBQYXNzUmVmUHRyPFdlYkNvcmU6OldpZGdldD4gY3JlYXRl
UGx1Z2luKGNvbnN0IFdlYkNvcmU6OkludFNpemUmLCBXZWJDb3JlOjpIVE1MUGx1Z0luRWxlbWVu
dCosIGNvbnN0IFdlYkNvcmU6OktVUkwmLCBjb25zdCBWZWN0b3I8V1RGOjpTdHJpbmc+JiwgY29u
c3QgVmVjdG9yPFdURjo6U3RyaW5nPiYsIGNvbnN0IFdURjo6U3RyaW5nJiwgYm9vbCBsb2FkTWFu
dWFsbHkpOwogICAgIHZpcnR1YWwgdm9pZCByZWRpcmVjdERhdGFUb1BsdWdpbihXZWJDb3JlOjpX
aWRnZXQqIHBsdWdpbldpZGdldCk7CiAKZGlmZiAtLWdpdCBhL1dlYktpdC93aW5jZS9DaGFuZ2VM
b2cgYi9XZWJLaXQvd2luY2UvQ2hhbmdlTG9nCmluZGV4IGM4NWY5MDIuLjUxMTM0NTggMTAwNjQ0
Ci0tLSBhL1dlYktpdC93aW5jZS9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0L3dpbmNlL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDE1IEBACisyMDEwLTEwLTEzICBKZW5uIEJyYWl0aHdhaXRlICA8amVubmJA
Y2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIFJlc291cmNlIHRyYWNraW5nIGZhaWx1cmUgd2hlbiB0cnlpbmcgdG8gbW92ZSBhIGZy
YW1lIGJldHdlZW4gZG9jdW1lbnRzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD00NDcxMworCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2Fk
ZXJDbGllbnRXaW5DRS5jcHA6CisgICAgICAgIChXZWJLaXQ6OkZyYW1lTG9hZGVyQ2xpZW50V2lu
Q0U6OnRyYW5zZmVyTG9hZGluZ1Jlc291cmNlVG9OZXdQYWdlKToKKyAgICAgICAgRW1wdHkgbWV0
aG9kLgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50V2luQ0UuaDoK
KwogMjAxMC0wOS0yOCAgSmVubiBCcmFpdGh3YWl0ZSAgPGplbm5iQGNocm9taXVtLm9yZz4KIAog
ICAgICAgICBSZXZpZXdlZCBieSBEbWl0cnkgVGl0b3YuCmRpZmYgLS1naXQgYS9XZWJLaXQvd2lu
Y2UvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRXaW5DRS5jcHAgYi9XZWJLaXQvd2lu
Y2UvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRXaW5DRS5jcHAKaW5kZXggZTg0MWFi
OS4uNjg3ODFmYiAxMDA2NDQKLS0tIGEvV2ViS2l0L3dpbmNlL1dlYkNvcmVTdXBwb3J0L0ZyYW1l
TG9hZGVyQ2xpZW50V2luQ0UuY3BwCisrKyBiL1dlYktpdC93aW5jZS9XZWJDb3JlU3VwcG9ydC9G
cmFtZUxvYWRlckNsaWVudFdpbkNFLmNwcApAQCAtMTY1LDYgKzE2NSwxMCBAQCB2b2lkIEZyYW1l
TG9hZGVyQ2xpZW50V2luQ0U6OmRpZFRyYW5zZmVyQ2hpbGRGcmFtZVRvTmV3RG9jdW1lbnQoUGFn
ZSopCiB7CiB9CiAKK3ZvaWQgRnJhbWVMb2FkZXJDbGllbnRXaW5DRTo6dHJhbnNmZXJMb2FkaW5n
UmVzb3VyY2VUb05ld1BhZ2UodW5zaWduZWQgbG9uZywgRG9jdW1lbnRMb2FkZXIqLCBjb25zdCBS
ZXNvdXJjZVJlcXVlc3QmLCBQYWdlKikKK3sKK30KKwogdm9pZCBGcmFtZUxvYWRlckNsaWVudFdp
bkNFOjpyZWRpcmVjdERhdGFUb1BsdWdpbihXaWRnZXQqIHBsdWdpbldpZGdldCkKIHsKICAgICBB
U1NFUlQoIW1fcGx1Z2luVmlldyk7CmRpZmYgLS1naXQgYS9XZWJLaXQvd2luY2UvV2ViQ29yZVN1
cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRXaW5DRS5oIGIvV2ViS2l0L3dpbmNlL1dlYkNvcmVTdXBw
b3J0L0ZyYW1lTG9hZGVyQ2xpZW50V2luQ0UuaAppbmRleCBiNjRlZmVkLi40ODhmMmFmIDEwMDY0
NAotLS0gYS9XZWJLaXQvd2luY2UvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRXaW5D
RS5oCisrKyBiL1dlYktpdC93aW5jZS9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudFdp
bkNFLmgKQEAgLTEwOSw2ICsxMDksNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBQYXNzUmVmUHRy
PFdlYkNvcmU6OkZyYW1lPiBjcmVhdGVGcmFtZShjb25zdCBXZWJDb3JlOjpLVVJMJiB1cmwsIGNv
bnN0IFdURjo6U3RyaW5nJiBuYW1lLCBXZWJDb3JlOjpIVE1MRnJhbWVPd25lckVsZW1lbnQqIG93
bmVyRWxlbWVudCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBXVEY6OlN0
cmluZyYgcmVmZXJyZXIsIGJvb2wgYWxsb3dzU2Nyb2xsaW5nLCBpbnQgbWFyZ2luV2lkdGgsIGlu
dCBtYXJnaW5IZWlnaHQpOwogICAgIHZpcnR1YWwgdm9pZCBkaWRUcmFuc2ZlckNoaWxkRnJhbWVU
b05ld0RvY3VtZW50KFdlYkNvcmU6OlBhZ2UqKTsKKyAgICB2aXJ0dWFsIHZvaWQgdHJhbnNmZXJM
b2FkaW5nUmVzb3VyY2VUb05ld1BhZ2UodW5zaWduZWQgbG9uZywgV2ViQ29yZTo6RG9jdW1lbnRM
b2FkZXIqLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBXZWJDb3JlOjpQYWdlKik7
CiAgICAgdmlydHVhbCBQYXNzUmVmUHRyPFdlYkNvcmU6OldpZGdldD4gY3JlYXRlUGx1Z2luKGNv
bnN0IFdlYkNvcmU6OkludFNpemUmLCBXZWJDb3JlOjpIVE1MUGx1Z0luRWxlbWVudCosIGNvbnN0
IFdlYkNvcmU6OktVUkwmLCBjb25zdCBXVEY6OlZlY3RvcjxXVEY6OlN0cmluZz4mLCBjb25zdCBX
VEY6OlZlY3RvcjxXVEY6OlN0cmluZz4mLCBjb25zdCBXVEY6OlN0cmluZyYsIGJvb2wpOwogICAg
IHZpcnR1YWwgdm9pZCByZWRpcmVjdERhdGFUb1BsdWdpbihXZWJDb3JlOjpXaWRnZXQqIHBsdWdp
bldpZGdldCk7CiAgICAgdmlydHVhbCBQYXNzUmVmUHRyPFdlYkNvcmU6OldpZGdldD4gY3JlYXRl
SmF2YUFwcGxldFdpZGdldChjb25zdCBXZWJDb3JlOjpJbnRTaXplJiwgV2ViQ29yZTo6SFRNTEFw
cGxldEVsZW1lbnQqLCBjb25zdCBXZWJDb3JlOjpLVVJMJiBiYXNlVVJMLCBjb25zdCBXVEY6OlZl
Y3RvcjxXVEY6OlN0cmluZz4mIHBhcmFtTmFtZXMsIGNvbnN0IFdURjo6VmVjdG9yPFdURjo6U3Ry
aW5nPiYgcGFyYW1WYWx1ZXMpOwpkaWZmIC0tZ2l0IGEvV2ViS2l0L3d4L0NoYW5nZUxvZyBiL1dl
YktpdC93eC9DaGFuZ2VMb2cKaW5kZXggYWJiYzg3Yi4uZDc1OWY4MyAxMDA2NDQKLS0tIGEvV2Vi
S2l0L3d4L0NoYW5nZUxvZworKysgYi9XZWJLaXQvd3gvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUg
QEAKKzIwMTAtMTAtMTMgIEplbm4gQnJhaXRod2FpdGUgIDxqZW5uYkBjaHJvbWl1bS5vcmc+CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVzb3VyY2Ug
dHJhY2tpbmcgZmFpbHVyZSB3aGVuIHRyeWluZyB0byBtb3ZlIGEgZnJhbWUgYmV0d2VlbiBkb2N1
bWVudHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ0
NzEzCisKKyAgICAgICAgKiBXZWJLaXRTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50V3guY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXJDbGllbnRXeDo6dHJhbnNmZXJMb2FkaW5nUmVz
b3VyY2VUb05ld1BhZ2UpOgorICAgICAgICBFbXB0eSBtZXRob2QuCisgICAgICAgICogV2ViS2l0
U3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudFd4Lmg6CisKIDIwMTAtMDktMjggIEplbm4gQnJhaXRo
d2FpdGUgIDxqZW5uYkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRG1pdHJ5
IFRpdG92LgpkaWZmIC0tZ2l0IGEvV2ViS2l0L3d4L1dlYktpdFN1cHBvcnQvRnJhbWVMb2FkZXJD
bGllbnRXeC5jcHAgYi9XZWJLaXQvd3gvV2ViS2l0U3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudFd4
LmNwcAppbmRleCA5M2E2MmNhLi4zMTM1M2JjIDEwMDY0NAotLS0gYS9XZWJLaXQvd3gvV2ViS2l0
U3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudFd4LmNwcAorKysgYi9XZWJLaXQvd3gvV2ViS2l0U3Vw
cG9ydC9GcmFtZUxvYWRlckNsaWVudFd4LmNwcApAQCAtODY0LDYgKzg2NCwxMCBAQCB2b2lkIEZy
YW1lTG9hZGVyQ2xpZW50V3g6OmRpZFRyYW5zZmVyQ2hpbGRGcmFtZVRvTmV3RG9jdW1lbnQoUGFn
ZSopCiB7CiB9CiAKK3ZvaWQgRnJhbWVMb2FkZXJDbGllbnRXeDo6dHJhbnNmZXJMb2FkaW5nUmVz
b3VyY2VUb05ld1BhZ2UodW5zaWduZWQgbG9uZywgRG9jdW1lbnRMb2FkZXIqLCBjb25zdCBSZXNv
dXJjZVJlcXVlc3QmLCBQYWdlKikKK3sKK30KKwogT2JqZWN0Q29udGVudFR5cGUgRnJhbWVMb2Fk
ZXJDbGllbnRXeDo6b2JqZWN0Q29udGVudFR5cGUoY29uc3QgS1VSTCYgdXJsLCBjb25zdCBTdHJp
bmcmIG1pbWVUeXBlKQogewogICAgIG5vdEltcGxlbWVudGVkKCk7CmRpZmYgLS1naXQgYS9XZWJL
aXQvd3gvV2ViS2l0U3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudFd4LmggYi9XZWJLaXQvd3gvV2Vi
S2l0U3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudFd4LmgKaW5kZXggOWMyNjBmZS4uYjI5MzRkYiAx
MDA2NDQKLS0tIGEvV2ViS2l0L3d4L1dlYktpdFN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRXeC5o
CisrKyBiL1dlYktpdC93eC9XZWJLaXRTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50V3guaApAQCAt
MjA0LDYgKzIwNCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgdmlydHVhbCBQYXNz
UmVmUHRyPEZyYW1lPiBjcmVhdGVGcmFtZShjb25zdCBLVVJMJiB1cmwsIGNvbnN0IFN0cmluZyYg
bmFtZSwgSFRNTEZyYW1lT3duZXJFbGVtZW50KiBvd25lckVsZW1lbnQsCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFN0cmluZyYgcmVmZXJyZXIsIGJvb2wgYWxsb3dz
U2Nyb2xsaW5nLCBpbnQgbWFyZ2luV2lkdGgsIGludCBtYXJnaW5IZWlnaHQpOwogICAgICAgICB2
aXJ0dWFsIHZvaWQgZGlkVHJhbnNmZXJDaGlsZEZyYW1lVG9OZXdEb2N1bWVudChQYWdlKik7Cisg
ICAgICAgIHZpcnR1YWwgdm9pZCB0cmFuc2ZlckxvYWRpbmdSZXNvdXJjZVRvTmV3UGFnZSh1bnNp
Z25lZCBsb25nLCBEb2N1bWVudExvYWRlciosIGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIFBhZ2Uq
KTsKICAgICAgICAgdmlydHVhbCBQYXNzUmVmUHRyPFdpZGdldD4gY3JlYXRlUGx1Z2luKGNvbnN0
IEludFNpemUmLCBIVE1MUGx1Z0luRWxlbWVudCosIGNvbnN0IEtVUkwmLCBjb25zdCBWZWN0b3I8
U3RyaW5nPiYsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiwgY29uc3QgU3RyaW5nJiwgYm9vbCBsb2Fk
TWFudWFsbHkpIDsKICAgICAgICAgdmlydHVhbCB2b2lkIHJlZGlyZWN0RGF0YVRvUGx1Z2luKFdp
ZGdldCogcGx1Z2luV2lkZ2V0KTsKICAgICAgICAgdmlydHVhbCBSZXNvdXJjZUVycm9yIHBsdWdp
bldpbGxIYW5kbGVMb2FkRXJyb3IoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYpOwpkaWZmIC0tZ2l0
IGEvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCBiYzk5YjNkLi4x
Mjc4Yzg4IDEwMDY0NAotLS0gYS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9XZWJLaXQyL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDEwLTEwLTEzICBKZW5uIEJyYWl0aHdhaXRlICA8amVu
bmJAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIFJlc291cmNlIHRyYWNraW5nIGZhaWx1cmUgd2hlbiB0cnlpbmcgdG8gbW92ZSBh
IGZyYW1lIGJldHdlZW4gZG9jdW1lbnRzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD00NDcxMworCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkZyYW1l
TG9hZGVyQ2xpZW50Ojp0cmFuc2ZlckxvYWRpbmdSZXNvdXJjZVRvTmV3UGFnZSk6CisgICAgICAg
IEVtcHR5IG1ldGhvZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZy
YW1lTG9hZGVyQ2xpZW50Lmg6CisKIDIwMTAtMTAtMTMgIEJyZW50IEZ1bGdoYW0gIDxiZnVsZ2hh
bUB3ZWJraXQub3JnPgogCiAgICAgICAgIFVucmV2aWV3ZWQgYnVpbGQgZml4ZXMgYWZ0ZXIgcjY5
NTM4LgpkaWZmIC0tZ2l0IGEvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZy
YW1lTG9hZGVyQ2xpZW50LmNwcCBiL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9X
ZWJGcmFtZUxvYWRlckNsaWVudC5jcHAKaW5kZXggZGViOTBlMy4uODNiNGZmZiAxMDA2NDQKLS0t
IGEvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50
LmNwcAorKysgYi9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2Fk
ZXJDbGllbnQuY3BwCkBAIC05NjcsNiArOTY3LDExIEBAIHZvaWQgV2ViRnJhbWVMb2FkZXJDbGll
bnQ6OmRpZFRyYW5zZmVyQ2hpbGRGcmFtZVRvTmV3RG9jdW1lbnQoUGFnZSopCiAgICAgbm90SW1w
bGVtZW50ZWQoKTsKIH0KIAordm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6dHJhbnNmZXJMb2Fk
aW5nUmVzb3VyY2VUb05ld1BhZ2UodW5zaWduZWQgbG9uZywgRG9jdW1lbnRMb2FkZXIqLCBjb25z
dCBSZXNvdXJjZVJlcXVlc3QmLCBQYWdlKikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQor
CiBQYXNzUmVmUHRyPFdpZGdldD4gV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmNyZWF0ZVBsdWdpbihj
b25zdCBJbnRTaXplJiwgSFRNTFBsdWdJbkVsZW1lbnQqIHBsdWdpbkVsZW1lbnQsIGNvbnN0IEtV
UkwmIHVybCwgY29uc3QgVmVjdG9yPFN0cmluZz4mIHBhcmFtTmFtZXMsIGNvbnN0IFZlY3RvcjxT
dHJpbmc+JiBwYXJhbVZhbHVlcywgY29uc3QgU3RyaW5nJiBtaW1lVHlwZSwgYm9vbCBsb2FkTWFu
dWFsbHkpCiB7CiAgICAgQVNTRVJUKHBhcmFtTmFtZXMuc2l6ZSgpID09IHBhcmFtVmFsdWVzLnNp
emUoKSk7CmRpZmYgLS1naXQgYS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2Vi
RnJhbWVMb2FkZXJDbGllbnQuaCBiL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9X
ZWJGcmFtZUxvYWRlckNsaWVudC5oCmluZGV4IDM0OWQ3YjMuLmJhM2RlOTAgMTAwNjQ0Ci0tLSBh
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5o
CisrKyBiL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNs
aWVudC5oCkBAIC0xNzYsNiArMTc2LDcgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIFBhc3NSZWZQ
dHI8V2ViQ29yZTo6RnJhbWU+IGNyZWF0ZUZyYW1lKGNvbnN0IFdlYkNvcmU6OktVUkwmIHVybCwg
Y29uc3QgU3RyaW5nJiBuYW1lLCBXZWJDb3JlOjpIVE1MRnJhbWVPd25lckVsZW1lbnQqIG93bmVy
RWxlbWVudCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0
IFN0cmluZyYgcmVmZXJyZXIsIGJvb2wgYWxsb3dzU2Nyb2xsaW5nLCBpbnQgbWFyZ2luV2lkdGgs
IGludCBtYXJnaW5IZWlnaHQpOwogICAgIHZpcnR1YWwgdm9pZCBkaWRUcmFuc2ZlckNoaWxkRnJh
bWVUb05ld0RvY3VtZW50KFdlYkNvcmU6OlBhZ2UqKTsKKyAgICB2aXJ0dWFsIHZvaWQgdHJhbnNm
ZXJMb2FkaW5nUmVzb3VyY2VUb05ld1BhZ2UodW5zaWduZWQgbG9uZywgV2ViQ29yZTo6RG9jdW1l
bnRMb2FkZXIqLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBXZWJDb3JlOjpQYWdl
Kik7CiAgICAgCiAgICAgdmlydHVhbCBQYXNzUmVmUHRyPFdlYkNvcmU6OldpZGdldD4gY3JlYXRl
UGx1Z2luKGNvbnN0IFdlYkNvcmU6OkludFNpemUmLCBXZWJDb3JlOjpIVE1MUGx1Z0luRWxlbWVu
dCosIGNvbnN0IFdlYkNvcmU6OktVUkwmLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYsIGNvbnN0IFZl
Y3RvcjxTdHJpbmc+JiwgY29uc3QgU3RyaW5nJiwgYm9vbCBsb2FkTWFudWFsbHkpOwogICAgIHZp
cnR1YWwgdm9pZCByZWRpcmVjdERhdGFUb1BsdWdpbihXZWJDb3JlOjpXaWRnZXQqIHBsdWdpbldp
ZGdldCk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>71306</attachid>
            <date>2010-10-20 10:45:29 -0700</date>
            <delta_ts>2010-10-25 16:09:26 -0700</delta_ts>
            <desc>updated patch</desc>
            <filename>patch44713-3.txt</filename>
            <type>text/plain</type>
            <size>39387</size>
            <attacher name="Jenn Braithwaite">jennb</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBiZjYxOGVlLi5lYzhlOTRkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTAtMTAt
MTMgIEplbm4gQnJhaXRod2FpdGUgIDxqZW5uYkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVzb3VyY2UgdHJhY2tpbmcgZmFp
bHVyZSB3aGVuIHRyeWluZyB0byBtb3ZlIGEgZnJhbWUgYmV0d2VlbiBkb2N1bWVudHMKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ0NzEzCisKKyAgICAg
ICAgKiBmYXN0L2ZyYW1lcy9pZnJhbWUtcmVwYXJlbnRpbmctZmFpbC1sb2FkLWV4cGVjdGVkLnR4
dDogQWRkZWQuCisgICAgICAgICogZmFzdC9mcmFtZXMvaWZyYW1lLXJlcGFyZW50aW5nLWZhaWwt
bG9hZC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvU2tpcHBlZDoKKyAgICAg
ICAgUmUtZW5hYmxlZCB0ZXN0IHRoYXQgZmFpbGVkIGR1ZSB0byB0aGlzIGJ1Zy4KKwogMjAxMC0x
MC0xMyAgUm9iZXJ0IEhvZ2FuICA8cm9iZXJ0QHdlYmtpdC5vcmc+CiAKICAgICAgICAgUnViYmVy
LXN0YW1wZWQgYnkgQ3NhYmEgT3N6dHJvZ29uYWMuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9m
YXN0L2ZyYW1lcy9pZnJhbWUtcmVwYXJlbnRpbmctZmFpbC1sb2FkLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2Zhc3QvZnJhbWVzL2lmcmFtZS1yZXBhcmVudGluZy1mYWlsLWxvYWQtZXhwZWN0
ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjJlMWNlZTAKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2ZyYW1lcy9pZnJhbWUtcmVwYXJlbnRpbmct
ZmFpbC1sb2FkLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxIEBACitUaGlzIHRlc3QgYWRvcHRzIGFu
IGlmcmFtZSBpbnRvIGEgc2Vjb25kIHBhZ2UsIHRoZW4gY2xvc2VzIHRoYXQgcGFnZSwgY2FuY2Vs
bGluZyB0aGF0IGlmcmFtZSBsb2FkLiBUaGUgY2FuY2VsbGVkIGxvYWQgaXMgdHJlYXRlZCBhcyBh
IGZhaWxlZCBsb2FkLiBUaGlzIHRlc3Qgd2lsbCBjcmFzaCBpZiByZXNvdXJjZSB0cmFja2luZyBo
YXMgbm90IGJlZW4gdXBkYXRlZCBhZnRlciB0aGUgaWZyYW1lIGhhcyBiZWVuIGFkb3B0ZWQgdG8g
YSBkaWZmZXJlbnQgcGFnZSBiZWNhdXNlIHRoZSBmYWlsZWQgbG9hZCB3aWxsIGJlIHJlcG9ydGVk
IHRvIHRoZSB3cm9uZyBwbGFjZS4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZnJhbWVz
L2lmcmFtZS1yZXBhcmVudGluZy1mYWlsLWxvYWQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZnJh
bWVzL2lmcmFtZS1yZXBhcmVudGluZy1mYWlsLWxvYWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwLi5kNjZjNGRhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
ZmFzdC9mcmFtZXMvaWZyYW1lLXJlcGFyZW50aW5nLWZhaWwtbG9hZC5odG1sCkBAIC0wLDAgKzEs
MjIgQEAKKzxodG1sPgorPHNjcmlwdD4KK2lmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIp
IHsKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisgICAgbGF5b3V0VGVz
dENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOworICAgIGxheW91dFRlc3RDb250cm9sbGVyLnNl
dENhbk9wZW5XaW5kb3dzKHRydWUpOworfQorCitmdW5jdGlvbiB0ZXN0KCkKK3sKKyAgICB2YXIg
dyA9IHdpbmRvdy5vcGVuKCJhYm91dDpibGFuayIpOworICAgIHZhciBmID0gdy5kb2N1bWVudC5h
ZG9wdE5vZGUoZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImlmcmFtZSIpWzBdKTsKKyAg
ICB3LmRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZik7CisgICAgdy5jbG9zZSgpOworICAgIGlm
ICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgICAgIGxheW91dFRlc3RDb250cm9s
bGVyLm5vdGlmeURvbmUoKTsKK30KKzwvc2NyaXB0PgorPGJvZHkgb25sb2FkPSJ0ZXN0KCkiPgor
PGlmcmFtZSBzcmM9ImRhdGE6dGV4dC9odG1sLGZvbyI+PC9pZnJhbWU+Cis8cD5UaGlzIHRlc3Qg
YWRvcHRzIGFuIGlmcmFtZSBpbnRvIGEgc2Vjb25kIHBhZ2UsIHRoZW4gY2xvc2VzIHRoYXQgcGFn
ZSwgY2FuY2VsbGluZyB0aGF0IGlmcmFtZSBsb2FkLiBUaGUgY2FuY2VsbGVkIGxvYWQgaXMgdHJl
YXRlZCBhcyBhIGZhaWxlZCBsb2FkLiBUaGlzIHRlc3Qgd2lsbCBjcmFzaCBpZiByZXNvdXJjZSB0
cmFja2luZyBoYXMgbm90IGJlZW4gdXBkYXRlZCBhZnRlciB0aGUgaWZyYW1lIGhhcyBiZWVuIGFk
b3B0ZWQgdG8gYSBkaWZmZXJlbnQgcGFnZSBiZWNhdXNlIHRoZSBmYWlsZWQgbG9hZCB3aWxsIGJl
IHJlcG9ydGVkIHRvIHRoZSB3cm9uZyBwbGFjZS48L3A+Cis8L2JvZHk+CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvU2tpcHBlZCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21h
Yy9Ta2lwcGVkCmluZGV4IDk4OWVlYmMuLjI4MzZjOTUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L3BsYXRmb3JtL21hYy9Ta2lwcGVkCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9Ta2lw
cGVkCkBAIC0zMDMsOSArMzAzLDYgQEAgbWVkaWEvY29udGV4dC1tZW51LWFjdGlvbnMuaHRtbAog
IyBGaWxlU3lzdGVtIEFQSSBpcyBub3Qgc3VwcG9ydGVkLgogZmFzdC9maWxlc3lzdGVtCiAKLSMg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ0NzEzCi1mYXN0L2ZyYW1l
cy9pZnJhbWUtcmVwYXJlbnRpbmctYWRvcHQtbm9kZS5odG1sCi0KICMgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ2MjIzCiAjIFRoZSBXZWJLaXQgcGx1Z2luIGltcGxl
bWVudGF0aW9uIGRvZXMgbm90IHN1cHBvcnQgaWZyYW1lIHNoaW1zLgogcGx1Z2lucy9pZnJhbWUt
c2hpbXMuaHRtbApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9DaGFuZ2VMb2cgYi9XZWJDb3JlL0NoYW5n
ZUxvZwppbmRleCAzYmY4YWM1Li5iNDAwNDhiIDEwMDY0NAotLS0gYS9XZWJDb3JlL0NoYW5nZUxv
ZworKysgYi9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisyMDEwLTEwLTEzICBK
ZW5uIEJyYWl0aHdhaXRlICA8amVubmJAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlc291cmNlIHRyYWNraW5nIGZhaWx1cmUg
d2hlbiB0cnlpbmcgdG8gbW92ZSBhIGZyYW1lIGJldHdlZW4gZG9jdW1lbnRzCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00NDcxMworCisgICAgICAgIFRl
c3Q6IGZhc3QvZnJhbWVzL2lmcmFtZS1yZXBhcmVudGluZy1mYWlsLWxvYWQuaHRtbAorCisgICAg
ICAgICogbG9hZGVyL0RvY3VtZW50TG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3Vt
ZW50TG9hZGVyOjp0cmFuc2ZlckxvYWRpbmdSZXNvdXJjZXNGcm9tUGFnZSk6CisgICAgICAgIEFk
ZGVkIG1ldGhvZCB0aGF0IG5vdGlmaWVzIHRoZSBjbGllbnQgdG8gdXBkYXRlIHJlc291cmNlIHRy
YWNraW5nIGZvcgorICAgICAgICBsb2FkaW5nIHJlc291cmNlcyB0aGF0IGhhdmUgYmVlbiB0cmFu
c2ZlcnJlZCB0byBhIGRpZmZlcmVudCBwYWdlLgorICAgICAgICAqIGxvYWRlci9Eb2N1bWVudExv
YWRlci5oOgorICAgICAgICAqIGxvYWRlci9FbXB0eUNsaWVudHMuaDoKKyAgICAgICAgKFdlYkNv
cmU6OkVtcHR5RnJhbWVMb2FkZXJDbGllbnQ6OnRyYW5zZmVyTG9hZGluZ1Jlc291cmNlRnJvbVBh
Z2UpOgorICAgICAgICBFbXB0eSBtZXRob2QuCisgICAgICAgICogbG9hZGVyL0ZyYW1lTG9hZGVy
Lmg6CisgICAgICAgICogbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcDoKKyAgICAgICAgQWRkZWQgbWV0
aG9kIHRoYXQgdHJpZ2dlcnMgcmVzb3VyY2UgdHJhY2tpbmcgdXBkYXRlcy4gVGhpcyB3cmFwcwor
ICAgICAgICB0aGUgRG9jdW1lbnRMb2FkZXIgbWV0aG9kIGFzIGl0IGFwcGVhcnMgRG9jdW1lbnRM
b2FkZXIgaXMgb3BhcXVlCisgICAgICAgIHRvIEZyYW1lLgorICAgICAgICAqIGxvYWRlci9GcmFt
ZUxvYWRlckNsaWVudC5oOgorICAgICAgICBBZGRlZCBBUEkgdG8gbm90aWZ5IHRoZSBjbGllbnQg
dG8gdXBkYXRlIHJlc291cmNlIHRyYWNraW5nIGZvcgorICAgICAgICBhIGxvYWRpbmcgcmVzb3Vy
Y2UgdGhhdCBoYXMgYmVlbiB0cmFuc2ZlcnJlZCB0byBhIGRpZmZlcmVudCBwYWdlLgorICAgICAg
ICAqIHBhZ2UvRnJhbWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWU6OnRyYW5zZmVyQ2hp
bGRGcmFtZVRvTmV3RG9jdW1lbnQpOgorICAgICAgICBVcGRhdGUgcmVzb3VyY2UgdHJhY2tpbmcg
aWYgcGFnZSBoYXMgY2hhbmdlZC4KKwogMjAxMC0xMC0xMyAgR2F2aW4gQmFycmFjbG91Z2ggIDxi
YXJyYWNsb3VnaEBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgT2xpdmVyIEh1bnQu
CmRpZmYgLS1naXQgYS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudExvYWRlci5jcHAgYi9XZWJDb3Jl
L2xvYWRlci9Eb2N1bWVudExvYWRlci5jcHAKaW5kZXggN2VlN2JjYy4uMzBiODBlYiAxMDA2NDQK
LS0tIGEvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIuY3BwCisrKyBiL1dlYkNvcmUvbG9h
ZGVyL0RvY3VtZW50TG9hZGVyLmNwcApAQCAtNzg3LDYgKzc4NywyNyBAQCB2b2lkIERvY3VtZW50
TG9hZGVyOjpzdWJyZXNvdXJjZUxvYWRlckZpbmlzaGVkTG9hZGluZ09uZVBhcnQoUmVzb3VyY2VM
b2FkZXIqIGxvYQogICAgICAgICBmcmFtZS0+bG9hZGVyKCktPmNoZWNrTG9hZENvbXBsZXRlKCk7
ICAgIAogfQogCit2b2lkIERvY3VtZW50TG9hZGVyOjp0cmFuc2ZlckxvYWRpbmdSZXNvdXJjZXNG
cm9tUGFnZShQYWdlKiBvbGRQYWdlKQoreworICAgIEFTU0VSVChvbGRQYWdlICE9IG1fZnJhbWUt
PnBhZ2UoKSk7CisKKyAgICBGcmFtZUxvYWRlckNsaWVudCogZnJhbWVMb2FkZXJDbGllbnQgPSBm
cmFtZUxvYWRlcigpLT5jbGllbnQoKTsKKyAgICBjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVl
c3QgPSBvcmlnaW5hbFJlcXVlc3QoKTsKKyAgICBpZiAoaXNMb2FkaW5nTWFpblJlc291cmNlKCkp
IHsKKyAgICAgICAgZnJhbWVMb2FkZXJDbGllbnQtPnRyYW5zZmVyTG9hZGluZ1Jlc291cmNlRnJv
bVBhZ2UoCisgICAgICAgICAgICBtX21haW5SZXNvdXJjZUxvYWRlci0+aWRlbnRpZmllcigpLCB0
aGlzLCByZXF1ZXN0LCBvbGRQYWdlKTsKKyAgICB9CisKKyAgICBpZiAoaXNMb2FkaW5nU3VicmVz
b3VyY2VzKCkpIHsKKyAgICAgICAgUmVzb3VyY2VMb2FkZXJTZXQ6OmNvbnN0X2l0ZXJhdG9yIGl0
ID0gbV9zdWJyZXNvdXJjZUxvYWRlcnMuYmVnaW4oKTsKKyAgICAgICAgUmVzb3VyY2VMb2FkZXJT
ZXQ6OmNvbnN0X2l0ZXJhdG9yIGVuZCA9IG1fc3VicmVzb3VyY2VMb2FkZXJzLmVuZCgpOworICAg
ICAgICBmb3IgKDsgaXQgIT0gZW5kOyArK2l0KSB7CisgICAgICAgICAgICBmcmFtZUxvYWRlckNs
aWVudC0+dHJhbnNmZXJMb2FkaW5nUmVzb3VyY2VGcm9tUGFnZSgKKyAgICAgICAgICAgICAgICAo
Kml0KS0+aWRlbnRpZmllcigpLCB0aGlzLCByZXF1ZXN0LCBvbGRQYWdlKTsKKyAgICAgICAgfQor
ICAgIH0KK30KKwogdm9pZCBEb2N1bWVudExvYWRlcjo6aWNvbkxvYWREZWNpc2lvbkF2YWlsYWJs
ZSgpCiB7CiAgICAgaWYgKG1fZnJhbWUpCmRpZmYgLS1naXQgYS9XZWJDb3JlL2xvYWRlci9Eb2N1
bWVudExvYWRlci5oIGIvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIuaAppbmRleCA1MDg3
OWI3Li5lMWY3NWVkIDEwMDY0NAotLS0gYS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudExvYWRlci5o
CisrKyBiL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50TG9hZGVyLmgKQEAgLTQ2LDYgKzQ2LDcgQEAg
bmFtZXNwYWNlIFdlYkNvcmUgewogICAgIGNsYXNzIEZyYW1lOwogICAgIGNsYXNzIEZyYW1lTG9h
ZGVyOwogICAgIGNsYXNzIE1haW5SZXNvdXJjZUxvYWRlcjsKKyAgICBjbGFzcyBQYWdlOwogICAg
IGNsYXNzIFJlc291cmNlTG9hZGVyOwogICAgIGNsYXNzIFNjaGVkdWxlUGFpcjsKICAgICBjbGFz
cyBTaGFyZWRCdWZmZXI7CkBAIC0xOTUsNyArMTk2LDkgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewog
ICAgICAgICB2b2lkIHJlbW92ZVBsdWdJblN0cmVhbUxvYWRlcihSZXNvdXJjZUxvYWRlciopOwog
CiAgICAgICAgIHZvaWQgc3VicmVzb3VyY2VMb2FkZXJGaW5pc2hlZExvYWRpbmdPbmVQYXJ0KFJl
c291cmNlTG9hZGVyKik7Ci0gICAgICAgIAorCisgICAgICAgIHZvaWQgdHJhbnNmZXJMb2FkaW5n
UmVzb3VyY2VzRnJvbVBhZ2UoUGFnZSopOworCiAgICAgICAgIHZvaWQgc2V0RGVmZXJNYWluUmVz
b3VyY2VEYXRhTG9hZChib29sIGRlZmVyKSB7IG1fZGVmZXJNYWluUmVzb3VyY2VEYXRhTG9hZCA9
IGRlZmVyOyB9CiAgICAgICAgIGJvb2wgZGVmZXJNYWluUmVzb3VyY2VEYXRhTG9hZCgpIGNvbnN0
IHsgcmV0dXJuIG1fZGVmZXJNYWluUmVzb3VyY2VEYXRhTG9hZDsgfQogICAgICAgICAKZGlmZiAt
LWdpdCBhL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5oIGIvV2ViQ29yZS9sb2FkZXIvRW1w
dHlDbGllbnRzLmgKaW5kZXggZmQyMDI1OC4uZjA0ODE3YiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9s
b2FkZXIvRW1wdHlDbGllbnRzLmgKKysrIGIvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmgK
QEAgLTMzNyw2ICszMzcsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGRpZFJ1bkluc2Vj
dXJlQ29udGVudChTZWN1cml0eU9yaWdpbiopIHsgfQogICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxG
cmFtZT4gY3JlYXRlRnJhbWUoY29uc3QgS1VSTCYsIGNvbnN0IFN0cmluZyYsIEhUTUxGcmFtZU93
bmVyRWxlbWVudCosIGNvbnN0IFN0cmluZyYsIGJvb2wsIGludCwgaW50KSB7IHJldHVybiAwOyB9
CiAgICAgdmlydHVhbCB2b2lkIGRpZFRyYW5zZmVyQ2hpbGRGcmFtZVRvTmV3RG9jdW1lbnQoUGFn
ZSopIHsgfQorICAgIHZpcnR1YWwgdm9pZCB0cmFuc2ZlckxvYWRpbmdSZXNvdXJjZUZyb21QYWdl
KHVuc2lnbmVkIGxvbmcsIERvY3VtZW50TG9hZGVyKiwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0Jiwg
UGFnZSopIHsgfQogICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxXaWRnZXQ+IGNyZWF0ZVBsdWdpbihj
b25zdCBJbnRTaXplJiwgSFRNTFBsdWdJbkVsZW1lbnQqLCBjb25zdCBLVVJMJiwgY29uc3QgVmVj
dG9yPFN0cmluZz4mLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYsIGNvbnN0IFN0cmluZyYsIGJvb2wp
IHsgcmV0dXJuIDA7IH0KICAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8V2lkZ2V0PiBjcmVhdGVKYXZh
QXBwbGV0V2lkZ2V0KGNvbnN0IEludFNpemUmLCBIVE1MQXBwbGV0RWxlbWVudCosIGNvbnN0IEtV
UkwmLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JikgeyByZXR1
cm4gMDsgfQogI2lmIEVOQUJMRShQTFVHSU5fUFJPWFlfRk9SX1ZJREVPKQpkaWZmIC0tZ2l0IGEv
V2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwIGIvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2Fk
ZXIuY3BwCmluZGV4IDJmOTMxMDIuLjU3M2Y5NjggMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvbG9hZGVy
L0ZyYW1lTG9hZGVyLmNwcAorKysgYi9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAKQEAg
LTE3NDMsNiArMTc0MywxMyBAQCBib29sIEZyYW1lTG9hZGVyOjpmcmFtZUhhc0xvYWRlZCgpIGNv
bnN0CiAgICAgcmV0dXJuIG1fc3RhdGVNYWNoaW5lLmNvbW1pdHRlZEZpcnN0UmVhbERvY3VtZW50
TG9hZCgpIHx8IChtX3Byb3Zpc2lvbmFsRG9jdW1lbnRMb2FkZXIgJiYgIW1fc3RhdGVNYWNoaW5l
LmNyZWF0aW5nSW5pdGlhbEVtcHR5RG9jdW1lbnQoKSk7IAogfQogCit2b2lkIEZyYW1lTG9hZGVy
Ojp0cmFuc2ZlckxvYWRpbmdSZXNvdXJjZXNGcm9tUGFnZShQYWdlKiBvbGRQYWdlKQoreworICAg
IEFTU0VSVChvbGRQYWdlICE9IG1fZnJhbWUtPnBhZ2UoKSk7CisgICAgaWYgKGlzTG9hZGluZygp
KQorICAgICAgICBhY3RpdmVEb2N1bWVudExvYWRlcigpLT50cmFuc2ZlckxvYWRpbmdSZXNvdXJj
ZXNGcm9tUGFnZShvbGRQYWdlKTsKK30KKwogdm9pZCBGcmFtZUxvYWRlcjo6c2V0RG9jdW1lbnRM
b2FkZXIoRG9jdW1lbnRMb2FkZXIqIGxvYWRlcikKIHsKICAgICBpZiAoIWxvYWRlciAmJiAhbV9k
b2N1bWVudExvYWRlcikKZGlmZiAtLWdpdCBhL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmgg
Yi9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5oCmluZGV4IDJhZjZiNmYuLjk2ZmRmNzggMTAw
NjQ0Ci0tLSBhL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmgKKysrIGIvV2ViQ29yZS9sb2Fk
ZXIvRnJhbWVMb2FkZXIuaApAQCAtNjgsNiArNjgsNyBAQCBjbGFzcyBIVE1MRm9ybUVsZW1lbnQ7
CiBjbGFzcyBJY29uTG9hZGVyOwogY2xhc3MgTmF2aWdhdGlvbkFjdGlvbjsKIGNsYXNzIE5ldHdv
cmtpbmdDb250ZXh0OworY2xhc3MgUGFnZTsKIGNsYXNzIFByb3RlY3Rpb25TcGFjZTsKIGNsYXNz
IFJlc291cmNlRXJyb3I7CiBjbGFzcyBSZXNvdXJjZUxvYWRlcjsKQEAgLTEzMyw2ICsxMzQsNyBA
QCBwdWJsaWM6CiAgICAgYm9vbCBpc0xvYWRpbmdNYWluUmVzb3VyY2UoKSBjb25zdCB7IHJldHVy
biBtX2lzTG9hZGluZ01haW5SZXNvdXJjZTsgfQogICAgIGJvb2wgaXNMb2FkaW5nKCkgY29uc3Q7
CiAgICAgYm9vbCBmcmFtZUhhc0xvYWRlZCgpIGNvbnN0OworICAgIHZvaWQgdHJhbnNmZXJMb2Fk
aW5nUmVzb3VyY2VzRnJvbVBhZ2UoUGFnZSopOwogCiAgICAgaW50IG51bVBlbmRpbmdPckxvYWRp
bmdSZXF1ZXN0cyhib29sIHJlY3Vyc2UpIGNvbnN0OwogICAgIFN0cmluZyByZWZlcnJlcigpIGNv
bnN0OwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXJDbGllbnQuaCBiL1dl
YkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyQ2xpZW50LmgKaW5kZXggODVjZjAxOC4uM2I5MmJjNiAx
MDA2NDQKLS0tIGEvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXJDbGllbnQuaAorKysgYi9XZWJD
b3JlL2xvYWRlci9GcmFtZUxvYWRlckNsaWVudC5oCkBAIC0yMzEsNiArMjMxLDcgQEAgbmFtZXNw
YWNlIFdlYkNvcmUgewogICAgICAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8RnJhbWU+IGNyZWF0ZUZy
YW1lKGNvbnN0IEtVUkwmIHVybCwgY29uc3QgU3RyaW5nJiBuYW1lLCBIVE1MRnJhbWVPd25lckVs
ZW1lbnQqIG93bmVyRWxlbWVudCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Y29uc3QgU3RyaW5nJiByZWZlcnJlciwgYm9vbCBhbGxvd3NTY3JvbGxpbmcsIGludCBtYXJnaW5X
aWR0aCwgaW50IG1hcmdpbkhlaWdodCkgPSAwOwogICAgICAgICB2aXJ0dWFsIHZvaWQgZGlkVHJh
bnNmZXJDaGlsZEZyYW1lVG9OZXdEb2N1bWVudChQYWdlKiBvbGRQYWdlKSA9IDA7CisgICAgICAg
IHZpcnR1YWwgdm9pZCB0cmFuc2ZlckxvYWRpbmdSZXNvdXJjZUZyb21QYWdlKHVuc2lnbmVkIGxv
bmcgaWRlbnRpZmllciwgRG9jdW1lbnRMb2FkZXIqLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBQ
YWdlKiBvbGRQYWdlKSA9IDA7CiAgICAgICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxXaWRnZXQ+IGNy
ZWF0ZVBsdWdpbihjb25zdCBJbnRTaXplJiwgSFRNTFBsdWdJbkVsZW1lbnQqLCBjb25zdCBLVVJM
JiwgY29uc3QgVmVjdG9yPFN0cmluZz4mLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYsIGNvbnN0IFN0
cmluZyYsIGJvb2wgbG9hZE1hbnVhbGx5KSA9IDA7CiAgICAgICAgIHZpcnR1YWwgdm9pZCByZWRp
cmVjdERhdGFUb1BsdWdpbihXaWRnZXQqIHBsdWdpbldpZGdldCkgPSAwOwogCmRpZmYgLS1naXQg
YS9XZWJDb3JlL3BhZ2UvRnJhbWUuY3BwIGIvV2ViQ29yZS9wYWdlL0ZyYW1lLmNwcAppbmRleCAx
ODZkNTY0Li4xMWI0MDQ5IDEwMDY0NAotLS0gYS9XZWJDb3JlL3BhZ2UvRnJhbWUuY3BwCisrKyBi
L1dlYkNvcmUvcGFnZS9GcmFtZS5jcHAKQEAgLTc0NCw2ICs3NDQsMTAgQEAgdm9pZCBGcmFtZTo6
dHJhbnNmZXJDaGlsZEZyYW1lVG9OZXdEb2N1bWVudCgpCiAgICAgICAgIC8vIExldCBleHRlcm5h
bCBjbGllbnRzIHVwZGF0ZSB0aGVtc2VsdmVzLgogICAgICAgICBsb2FkZXIoKS0+Y2xpZW50KCkt
PmRpZFRyYW5zZmVyQ2hpbGRGcmFtZVRvTmV3RG9jdW1lbnQob2xkUGFnZSk7CiAKKyAgICAgICAg
Ly8gVXBkYXRlIHJlc291cmNlIHRyYWNraW5nIG5vdyB0aGF0IGZyYW1lIGNvdWxkIGJlIGluIGEg
ZGlmZmVyZW50IHBhZ2UuCisgICAgICAgIGlmIChvbGRQYWdlICE9IG5ld1BhZ2UpCisgICAgICAg
ICAgICBsb2FkZXIoKS0+dHJhbnNmZXJMb2FkaW5nUmVzb3VyY2VzRnJvbVBhZ2Uob2xkUGFnZSk7
CisKICAgICAgICAgLy8gRG8gdGhlIHNhbWUgZm9yIGFsbCB0aGUgY2hpbGRyZW4uCiAgICAgICAg
IGZvciAoRnJhbWUqIGNoaWxkID0gdHJlZSgpLT5maXJzdENoaWxkKCk7IGNoaWxkOyBjaGlsZCA9
IGNoaWxkLT50cmVlKCktPm5leHRTaWJsaW5nKCkpCiAgICAgICAgICAgICBjaGlsZC0+dHJhbnNm
ZXJDaGlsZEZyYW1lVG9OZXdEb2N1bWVudCgpOwpkaWZmIC0tZ2l0IGEvV2ViS2l0L2Nocm9taXVt
L0NoYW5nZUxvZyBiL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXggMThiOGM5Yi4uYmI2
NWIzYiAxMDA2NDQKLS0tIGEvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZworKysgYi9XZWJLaXQv
Y2hyb21pdW0vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTAtMTAtMTMgIEplbm4gQnJh
aXRod2FpdGUgIDxqZW5uYkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgUmVzb3VyY2UgdHJhY2tpbmcgZmFpbHVyZSB3aGVuIHRy
eWluZyB0byBtb3ZlIGEgZnJhbWUgYmV0d2VlbiBkb2N1bWVudHMKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ0NzEzCisKKyAgICAgICAgKiBzcmMvRnJh
bWVMb2FkZXJDbGllbnRJbXBsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6RnJhbWVMb2FkZXJDbGll
bnRJbXBsOjp0cmFuc2ZlckxvYWRpbmdSZXNvdXJjZUZyb21QYWdlKToKKyAgICAgICAgRW1wdHkg
bWV0aG9kLgorICAgICAgICAqIHNyYy9GcmFtZUxvYWRlckNsaWVudEltcGwuaDoKKwogMjAxMC0x
MC0xMyAgR2F2aW4gQmFycmFjbG91Z2ggIDxiYXJyYWNsb3VnaEBhcHBsZS5jb20+CiAKICAgICAg
ICAgUmV2aWV3ZWQgYnkgT2xpdmVyIEh1bnQuCmRpZmYgLS1naXQgYS9XZWJLaXQvY2hyb21pdW0v
c3JjL0ZyYW1lTG9hZGVyQ2xpZW50SW1wbC5jcHAgYi9XZWJLaXQvY2hyb21pdW0vc3JjL0ZyYW1l
TG9hZGVyQ2xpZW50SW1wbC5jcHAKaW5kZXggZmI3OThmNi4uNDU0OWI5NyAxMDA2NDQKLS0tIGEv
V2ViS2l0L2Nocm9taXVtL3NyYy9GcmFtZUxvYWRlckNsaWVudEltcGwuY3BwCisrKyBiL1dlYktp
dC9jaHJvbWl1bS9zcmMvRnJhbWVMb2FkZXJDbGllbnRJbXBsLmNwcApAQCAtMTM4MSw2ICsxMzgx
LDExIEBAIHZvaWQgRnJhbWVMb2FkZXJDbGllbnRJbXBsOjpkaWRUcmFuc2ZlckNoaWxkRnJhbWVU
b05ld0RvY3VtZW50KFBhZ2UqKQogICAgIG1fd2ViRnJhbWUtPnNldENsaWVudChuZXdQYXJlbnQt
PmNsaWVudCgpKTsKIH0KIAordm9pZCBGcmFtZUxvYWRlckNsaWVudEltcGw6OnRyYW5zZmVyTG9h
ZGluZ1Jlc291cmNlRnJvbVBhZ2UodW5zaWduZWQgbG9uZywgRG9jdW1lbnRMb2FkZXIqLCBjb25z
dCBSZXNvdXJjZVJlcXVlc3QmLCBQYWdlKikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQor
CiBQYXNzUmVmUHRyPFdpZGdldD4gRnJhbWVMb2FkZXJDbGllbnRJbXBsOjpjcmVhdGVQbHVnaW4o
CiAgICAgY29uc3QgSW50U2l6ZSYgc2l6ZSwgLy8gRklYTUU6IGhvdyBkbyB3ZSB1c2UgdGhpcz8K
ICAgICBIVE1MUGx1Z0luRWxlbWVudCogZWxlbWVudCwKZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJv
bWl1bS9zcmMvRnJhbWVMb2FkZXJDbGllbnRJbXBsLmggYi9XZWJLaXQvY2hyb21pdW0vc3JjL0Zy
YW1lTG9hZGVyQ2xpZW50SW1wbC5oCmluZGV4IDBiMTVkYjYuLmY2ZWRjNDcgMTAwNjQ0Ci0tLSBh
L1dlYktpdC9jaHJvbWl1bS9zcmMvRnJhbWVMb2FkZXJDbGllbnRJbXBsLmgKKysrIGIvV2ViS2l0
L2Nocm9taXVtL3NyYy9GcmFtZUxvYWRlckNsaWVudEltcGwuaApAQCAtMTgwLDYgKzE4MCw3IEBA
IHB1YmxpYzoKICAgICAgICAgY29uc3QgV1RGOjpTdHJpbmcmIHJlZmVycmVyLCBib29sIGFsbG93
c1Njcm9sbGluZywKICAgICAgICAgaW50IG1hcmdpbldpZHRoLCBpbnQgbWFyZ2luSGVpZ2h0KTsK
ICAgICB2aXJ0dWFsIHZvaWQgZGlkVHJhbnNmZXJDaGlsZEZyYW1lVG9OZXdEb2N1bWVudChXZWJD
b3JlOjpQYWdlKik7CisgICAgdmlydHVhbCB2b2lkIHRyYW5zZmVyTG9hZGluZ1Jlc291cmNlRnJv
bVBhZ2UodW5zaWduZWQgbG9uZywgV2ViQ29yZTo6RG9jdW1lbnRMb2FkZXIqLCBjb25zdCBXZWJD
b3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBXZWJDb3JlOjpQYWdlKik7CiAgICAgdmlydHVhbCBQYXNz
UmVmUHRyPFdlYkNvcmU6OldpZGdldD4gY3JlYXRlUGx1Z2luKAogICAgICAgICBjb25zdCBXZWJD
b3JlOjpJbnRTaXplJiwgV2ViQ29yZTo6SFRNTFBsdWdJbkVsZW1lbnQqLCBjb25zdCBXZWJDb3Jl
OjpLVVJMJiwKICAgICAgICAgY29uc3QgVmVjdG9yPFdURjo6U3RyaW5nPiYsIGNvbnN0IFZlY3Rv
cjxXVEY6OlN0cmluZz4mLApkaWZmIC0tZ2l0IGEvV2ViS2l0L2VmbC9DaGFuZ2VMb2cgYi9XZWJL
aXQvZWZsL0NoYW5nZUxvZwppbmRleCBhOGRmY2FmLi5iMTRjMTM1IDEwMDY0NAotLS0gYS9XZWJL
aXQvZWZsL0NoYW5nZUxvZworKysgYi9XZWJLaXQvZWZsL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1
IEBACisyMDEwLTEwLTEzICBKZW5uIEJyYWl0aHdhaXRlICA8amVubmJAY2hyb21pdW0ub3JnPgor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlc291cmNl
IHRyYWNraW5nIGZhaWx1cmUgd2hlbiB0cnlpbmcgdG8gbW92ZSBhIGZyYW1lIGJldHdlZW4gZG9j
dW1lbnRzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00
NDcxMworCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRFZmwuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXJDbGllbnRFZmw6OnRyYW5zZmVyTG9hZGlu
Z1Jlc291cmNlRnJvbVBhZ2UpOgorICAgICAgICBFbXB0eSBtZXRob2QuCisgICAgICAgICogV2Vi
Q29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRFZmwuaDoKKwogMjAxMC0xMC0xMyAgR3l1eW91
bmcgS2ltICA8Z3l1eW91bmcua2ltQHNhbXN1bmcuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5
IEtlbm5ldGggUm9oZGUgQ2hyaXN0aWFuc2VuLgpkaWZmIC0tZ2l0IGEvV2ViS2l0L2VmbC9XZWJD
b3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEVmbC5jcHAgYi9XZWJLaXQvZWZsL1dlYkNvcmVT
dXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50RWZsLmNwcAppbmRleCA4ZDk2MTc5Li40MDdmNDhhIDEw
MDY0NAotLS0gYS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50RWZs
LmNwcAorKysgYi9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50RWZs
LmNwcApAQCAtMzgzLDYgKzM4MywxMCBAQCB2b2lkIEZyYW1lTG9hZGVyQ2xpZW50RWZsOjpkaWRU
cmFuc2ZlckNoaWxkRnJhbWVUb05ld0RvY3VtZW50KFBhZ2UqKQogewogfQogCit2b2lkIEZyYW1l
TG9hZGVyQ2xpZW50RWZsOjp0cmFuc2ZlckxvYWRpbmdSZXNvdXJjZUZyb21QYWdlKHVuc2lnbmVk
IGxvbmcsIERvY3VtZW50TG9hZGVyKiwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgUGFnZSopCit7
Cit9CisKIHZvaWQgRnJhbWVMb2FkZXJDbGllbnRFZmw6OnJlZGlyZWN0RGF0YVRvUGx1Z2luKFdp
ZGdldCogcGx1Z2luV2lkZ2V0KQogewogICAgIEFTU0VSVCghbV9wbHVnaW5WaWV3KTsKZGlmZiAt
LWdpdCBhL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRFZmwuaCBi
L1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRFZmwuaAppbmRleCBk
MjUwYjc2Li4xNGI5ZjA2IDEwMDY0NAotLS0gYS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0Zy
YW1lTG9hZGVyQ2xpZW50RWZsLmgKKysrIGIvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9GcmFt
ZUxvYWRlckNsaWVudEVmbC5oCkBAIC0xMzUsNiArMTM1LDcgQEAgY2xhc3MgRnJhbWVMb2FkZXJD
bGllbnRFZmwgOiBwdWJsaWMgRnJhbWVMb2FkZXJDbGllbnQgewogICAgIHZpcnR1YWwgUGFzc1Jl
ZlB0cjxGcmFtZT4gY3JlYXRlRnJhbWUoY29uc3QgS1VSTCYgdXJsLCBjb25zdCBTdHJpbmcmIG5h
bWUsIEhUTUxGcmFtZU93bmVyRWxlbWVudCogb3duZXJFbGVtZW50LAogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGNvbnN0IFN0cmluZyYgcmVmZXJyZXIsIGJvb2wgYWxsb3dzU2Nyb2xs
aW5nLCBpbnQgbWFyZ2luV2lkdGgsIGludCBtYXJnaW5IZWlnaHQpOwogICAgIHZpcnR1YWwgdm9p
ZCBkaWRUcmFuc2ZlckNoaWxkRnJhbWVUb05ld0RvY3VtZW50KFBhZ2UqKTsKKyAgICB2aXJ0dWFs
IHZvaWQgdHJhbnNmZXJMb2FkaW5nUmVzb3VyY2VGcm9tUGFnZSh1bnNpZ25lZCBsb25nLCBXZWJD
b3JlOjpEb2N1bWVudExvYWRlciosIGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIFdlYkNvcmU6OlBh
Z2UqKTsKIAogICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxXaWRnZXQ+IGNyZWF0ZVBsdWdpbihjb25z
dCBJbnRTaXplJiwgSFRNTFBsdWdJbkVsZW1lbnQqLCBjb25zdCBLVVJMJiwgY29uc3QgV1RGOjpW
ZWN0b3I8U3RyaW5nPiYsIGNvbnN0IFdURjo6VmVjdG9yPFN0cmluZz4mLCBjb25zdCBTdHJpbmcm
LCBib29sKTsKICAgICB2aXJ0dWFsIHZvaWQgcmVkaXJlY3REYXRhVG9QbHVnaW4oV2lkZ2V0KiBw
bHVnaW5XaWRnZXQpOwpkaWZmIC0tZ2l0IGEvV2ViS2l0L2d0ay9DaGFuZ2VMb2cgYi9XZWJLaXQv
Z3RrL0NoYW5nZUxvZwppbmRleCA4MWQzYjQxLi4xYmE4NjU5IDEwMDY0NAotLS0gYS9XZWJLaXQv
Z3RrL0NoYW5nZUxvZworKysgYi9XZWJLaXQvZ3RrL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBA
CisyMDEwLTEwLTEzICBKZW5uIEJyYWl0aHdhaXRlICA8amVubmJAY2hyb21pdW0ub3JnPgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlc291cmNlIHRy
YWNraW5nIGZhaWx1cmUgd2hlbiB0cnlpbmcgdG8gbW92ZSBhIGZyYW1lIGJldHdlZW4gZG9jdW1l
bnRzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00NDcx
MworCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRHdGsuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpGcmFtZUxvYWRlckNsaWVudDo6dHJhbnNmZXJMb2FkaW5nUmVzb3Vy
Y2VGcm9tUGFnZSk6CisgICAgICAgIEVtcHR5IG1ldGhvZC4KKyAgICAgICAgKiBXZWJDb3JlU3Vw
cG9ydC9GcmFtZUxvYWRlckNsaWVudEd0ay5oOgorCiAyMDEwLTEwLTEzICBYYW4gTG9wZXogIDx4
bG9wZXpAaWdhbGlhLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBHdXN0YXZvIE5vcm9uaGEu
CmRpZmYgLS1naXQgYS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50
R3RrLmNwcCBiL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRHdGsu
Y3BwCmluZGV4IDEzNDAxZjUuLjhjNTk1NTkgMTAwNjQ0Ci0tLSBhL1dlYktpdC9ndGsvV2ViQ29y
ZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRHdGsuY3BwCisrKyBiL1dlYktpdC9ndGsvV2ViQ29y
ZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRHdGsuY3BwCkBAIC02MTgsNiArNjE4LDEwIEBAIHZv
aWQgRnJhbWVMb2FkZXJDbGllbnQ6OmRpZFRyYW5zZmVyQ2hpbGRGcmFtZVRvTmV3RG9jdW1lbnQo
V2ViQ29yZTo6UGFnZSopCiAgICAgQVNTRVJUKGNvcmUoZ2V0Vmlld0Zyb21GcmFtZShtX2ZyYW1l
KSkgPT0gY29yZUZyYW1lLT5wYWdlKCkpOwogfQogCit2b2lkIEZyYW1lTG9hZGVyQ2xpZW50Ojp0
cmFuc2ZlckxvYWRpbmdSZXNvdXJjZUZyb21QYWdlKHVuc2lnbmVkIGxvbmcsIFdlYkNvcmU6OkRv
Y3VtZW50TG9hZGVyKiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgV2ViQ29yZTo6
UGFnZSopCit7Cit9CisKIHZvaWQgRnJhbWVMb2FkZXJDbGllbnQ6OnJlZGlyZWN0RGF0YVRvUGx1
Z2luKFdpZGdldCogcGx1Z2luV2lkZ2V0KQogewogICAgIEFTU0VSVCghbV9wbHVnaW5WaWV3KTsK
ZGlmZiAtLWdpdCBhL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRH
dGsuaCBiL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRHdGsuaApp
bmRleCAyMDZlNzgwLi4yM2ZiMjYzIDEwMDY0NAotLS0gYS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBw
b3J0L0ZyYW1lTG9hZGVyQ2xpZW50R3RrLmgKKysrIGIvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9y
dC9GcmFtZUxvYWRlckNsaWVudEd0ay5oCkBAIC0xMTUsNiArMTE1LDcgQEAgbmFtZXNwYWNlIFdl
YktpdCB7CiAgICAgICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxXZWJDb3JlOjpGcmFtZT4gY3JlYXRl
RnJhbWUoY29uc3QgV2ViQ29yZTo6S1VSTCYgdXJsLCBjb25zdCBXVEY6OlN0cmluZyYgbmFtZSwg
V2ViQ29yZTo6SFRNTEZyYW1lT3duZXJFbGVtZW50KiBvd25lckVsZW1lbnQsCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFdURjo6U3RyaW5nJiByZWZlcnJlciwgYm9v
bCBhbGxvd3NTY3JvbGxpbmcsIGludCBtYXJnaW5XaWR0aCwgaW50IG1hcmdpbkhlaWdodCk7CiAg
ICAgICAgIHZpcnR1YWwgdm9pZCBkaWRUcmFuc2ZlckNoaWxkRnJhbWVUb05ld0RvY3VtZW50KFdl
YkNvcmU6OlBhZ2UqKTsKKyAgICAgICAgdmlydHVhbCB2b2lkIHRyYW5zZmVyTG9hZGluZ1Jlc291
cmNlRnJvbVBhZ2UodW5zaWduZWQgbG9uZywgV2ViQ29yZTo6RG9jdW1lbnRMb2FkZXIqLCBjb25z
dCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBXZWJDb3JlOjpQYWdlKik7CiAgICAgICAgIHZp
cnR1YWwgUGFzc1JlZlB0cjxXZWJDb3JlOjpXaWRnZXQ+IGNyZWF0ZVBsdWdpbihjb25zdCBXZWJD
b3JlOjpJbnRTaXplJiwgV2ViQ29yZTo6SFRNTFBsdWdJbkVsZW1lbnQqLCBjb25zdCBXZWJDb3Jl
OjpLVVJMJiwgY29uc3QgV1RGOjpWZWN0b3I8V1RGOjpTdHJpbmc+JiwgY29uc3QgV1RGOjpWZWN0
b3I8V1RGOjpTdHJpbmc+JiwgY29uc3QgV1RGOjpTdHJpbmcmLCBib29sKTsKICAgICAgICAgdmly
dHVhbCB2b2lkIHJlZGlyZWN0RGF0YVRvUGx1Z2luKFdlYkNvcmU6OldpZGdldCogcGx1Z2luV2lk
Z2V0KTsKICAgICAgICAgdmlydHVhbCBQYXNzUmVmUHRyPFdlYkNvcmU6OldpZGdldD4gY3JlYXRl
SmF2YUFwcGxldFdpZGdldChjb25zdCBXZWJDb3JlOjpJbnRTaXplJiwgV2ViQ29yZTo6SFRNTEFw
cGxldEVsZW1lbnQqLCBjb25zdCBXZWJDb3JlOjpLVVJMJiBiYXNlVVJMLCBjb25zdCBXVEY6OlZl
Y3RvcjxXVEY6OlN0cmluZz4mIHBhcmFtTmFtZXMsIGNvbnN0IFdURjo6VmVjdG9yPFdURjo6U3Ry
aW5nPiYgcGFyYW1WYWx1ZXMpOwpkaWZmIC0tZ2l0IGEvV2ViS2l0L2hhaWt1L0NoYW5nZUxvZyBi
L1dlYktpdC9oYWlrdS9DaGFuZ2VMb2cKaW5kZXggZDU1Y2U3MS4uMjBkYmE4NiAxMDA2NDQKLS0t
IGEvV2ViS2l0L2hhaWt1L0NoYW5nZUxvZworKysgYi9XZWJLaXQvaGFpa3UvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMTUgQEAKKzIwMTAtMTAtMTMgIEplbm4gQnJhaXRod2FpdGUgIDxqZW5uYkBjaHJv
bWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgUmVzb3VyY2UgdHJhY2tpbmcgZmFpbHVyZSB3aGVuIHRyeWluZyB0byBtb3ZlIGEgZnJhbWUg
YmV0d2VlbiBkb2N1bWVudHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTQ0NzEzCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNs
aWVudEhhaWt1LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyQ2xpZW50SGFpa3U6
OnRyYW5zZmVyTG9hZGluZ1Jlc291cmNlRnJvbVBhZ2UpOgorICAgICAgICBFbXB0eSBtZXRob2Qu
CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRIYWlrdS5oOgorCiAy
MDEwLTA5LTI4ICBKZW5uIEJyYWl0aHdhaXRlICA8amVubmJAY2hyb21pdW0ub3JnPgogCiAgICAg
ICAgIFJldmlld2VkIGJ5IERtaXRyeSBUaXRvdi4KZGlmZiAtLWdpdCBhL1dlYktpdC9oYWlrdS9X
ZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEhhaWt1LmNwcCBiL1dlYktpdC9oYWlrdS9X
ZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEhhaWt1LmNwcAppbmRleCBjYWUwZWQxLi44
ZTRjMTg5IDEwMDY0NAotLS0gYS9XZWJLaXQvaGFpa3UvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2Fk
ZXJDbGllbnRIYWlrdS5jcHAKKysrIGIvV2ViS2l0L2hhaWt1L1dlYkNvcmVTdXBwb3J0L0ZyYW1l
TG9hZGVyQ2xpZW50SGFpa3UuY3BwCkBAIC03NDUsNiArNzQ1LDEwIEBAIHZvaWQgRnJhbWVMb2Fk
ZXJDbGllbnRIYWlrdTo6ZGlkVHJhbnNmZXJDaGlsZEZyYW1lVG9OZXdEb2N1bWVudChQYWdlKikK
IHsKIH0KIAordm9pZCBGcmFtZUxvYWRlckNsaWVudEhhaWt1Ojp0cmFuc2ZlckxvYWRpbmdSZXNv
dXJjZUZyb21QYWdlKHVuc2lnbmVkIGxvbmcsIERvY3VtZW50TG9hZGVyKiwgY29uc3QgUmVzb3Vy
Y2VSZXF1ZXN0JiwgUGFnZSopCit7Cit9CisKIE9iamVjdENvbnRlbnRUeXBlIEZyYW1lTG9hZGVy
Q2xpZW50SGFpa3U6Om9iamVjdENvbnRlbnRUeXBlKGNvbnN0IEtVUkwmIHVybCwgY29uc3QgU3Ry
aW5nJiBtaW1lVHlwZSkKIHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwpkaWZmIC0tZ2l0IGEvV2Vi
S2l0L2hhaWt1L1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50SGFpa3UuaCBiL1dlYktp
dC9oYWlrdS9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEhhaWt1LmgKaW5kZXggMTcw
MWNiMC4uMTczMmIwZiAxMDA2NDQKLS0tIGEvV2ViS2l0L2hhaWt1L1dlYkNvcmVTdXBwb3J0L0Zy
YW1lTG9hZGVyQ2xpZW50SGFpa3UuaAorKysgYi9XZWJLaXQvaGFpa3UvV2ViQ29yZVN1cHBvcnQv
RnJhbWVMb2FkZXJDbGllbnRIYWlrdS5oCkBAIC0yMjIsNiArMjIyLDcgQEAgbmFtZXNwYWNlIFdl
YkNvcmUgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEhU
TUxGcmFtZU93bmVyRWxlbWVudCosIGNvbnN0IFN0cmluZyYgcmVmZXJyZXIsCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbCBhbGxvd3NTY3JvbGxpbmcs
IGludCBtYXJnaW5XaWR0aCwgaW50IG1hcmdpbkhlaWdodCk7CiAgICAgICAgIHZpcnR1YWwgdm9p
ZCBkaWRUcmFuc2ZlckNoaWxkRnJhbWVUb05ld0RvY3VtZW50KFdlYkNvcmU6OlBhZ2UqKTsKKyAg
ICAgICAgdmlydHVhbCB2b2lkIHRyYW5zZmVyTG9hZGluZ1Jlc291cmNlRnJvbVBhZ2UodW5zaWdu
ZWQgbG9uZywgV2ViQ29yZTo6RG9jdW1lbnRMb2FkZXIqLCBjb25zdCBSZXNvdXJjZVJlcXVlc3Qm
LCBXZWJDb3JlOjpQYWdlKik7CiAgICAgICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxXaWRnZXQ+IGNy
ZWF0ZVBsdWdpbihjb25zdCBJbnRTaXplJiwgSFRNTFBsdWdJbkVsZW1lbnQqLCBjb25zdCBLVVJM
JiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0
IFZlY3RvcjxTdHJpbmc+JiwgY29uc3QgVmVjdG9yPFN0cmluZz4mLCBjb25zdCBTdHJpbmcmLAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbCBsb2Fk
TWFudWFsbHkpOwpkaWZmIC0tZ2l0IGEvV2ViS2l0L21hYy9DaGFuZ2VMb2cgYi9XZWJLaXQvbWFj
L0NoYW5nZUxvZwppbmRleCA1MGQ2YWMxLi4wYjIzNTA1IDEwMDY0NAotLS0gYS9XZWJLaXQvbWFj
L0NoYW5nZUxvZworKysgYi9XZWJLaXQvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisy
MDEwLTEwLTEzICBKZW5uIEJyYWl0aHdhaXRlICA8amVubmJAY2hyb21pdW0ub3JnPgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlc291cmNlIHRyYWNr
aW5nIGZhaWx1cmUgd2hlbiB0cnlpbmcgdG8gbW92ZSBhIGZyYW1lIGJldHdlZW4gZG9jdW1lbnRz
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00NDcxMwor
CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaDoKKyAgICAg
ICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5tbToKKyAgICAgICAgKFdl
YkZyYW1lTG9hZGVyQ2xpZW50OjpkaWRUcmFuc2ZlckNoaWxkRnJhbWVUb05ld0RvY3VtZW50KToK
KyAgICAgICAgRW1wdHkgbWV0aG9kLgorICAgICAgICAoV2ViRnJhbWVMb2FkZXJDbGllbnQ6OnRy
YW5zZmVyTG9hZGluZ1Jlc291cmNlRnJvbVBhZ2UpOgorICAgICAgICBVcGRhdGUgcmVzb3VyY2Ug
dHJhY2tpbmcgZm9yIGEgcmVzb3VyY2UgbG9hZCB0aGF0IGhhcyBiZWVuIHRyYW5zZmVycmVkCisg
ICAgICAgIHRvIGEgbmV3IHBhZ2UuCisKKyAgICAgICAgKiBXZWJWaWV3L1dlYkRlbGVnYXRlSW1w
bGVtZW50YXRpb25DYWNoaW5nLmg6CisgICAgICAgICogV2ViVmlldy9XZWJSZXNvdXJjZUxvYWRE
ZWxlZ2F0ZS5oOgorICAgICAgICBBZGRlZCBBUEkgZm9yIFdlYlJlc291cmNlTG9hZERlbGVnYXRl
IHRvIHRyYW5zZmVyIGluZm8gYWJvdXQgYSBsb2FkaW5nIHJlc291cmNlIGZyb20gYW4gb2xkIFdl
YlZpZXcuCisgICAgICAgICogV2ViVmlldy9XZWJWaWV3Lm1tOgorICAgICAgICAoLVtXZWJWaWV3
IF9jYWNoZVJlc291cmNlTG9hZERlbGVnYXRlSW1wbGVtZW50YXRpb25zXSk6CisgICAgICAgIENh
Y2hlIHRoZSBuZXcgZnVuY3Rpb24gZm9yIHRyYW5zZmVycmluZyBsb2FkaW5nIHJlc291cmNlLgor
CiAyMDEwLTEwLTEyICBBbmR5IEVzdGVzICA8YWVzdGVzQGFwcGxlLmNvbT4KIAogICAgICAgICBS
dWJiZXItc3RhbXBlZCBieSBEYXJpbiBBZGxlci4KZGlmZiAtLWdpdCBhL1dlYktpdC9tYWMvV2Vi
Q29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaCBiL1dlYktpdC9tYWMvV2ViQ29yZVN1
cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaAppbmRleCAwYmFhNTVjLi43YzJmMzA5IDEwMDY0
NAotLS0gYS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmgK
KysrIGIvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oCkBA
IC0xOTQsNiArMTk0LDcgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8V2ViQ29y
ZTo6RnJhbWU+IGNyZWF0ZUZyYW1lKGNvbnN0IFdlYkNvcmU6OktVUkwmIHVybCwgY29uc3QgV1RG
OjpTdHJpbmcmIG5hbWUsIFdlYkNvcmU6OkhUTUxGcmFtZU93bmVyRWxlbWVudCosCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgV1RGOjpTdHJpbmcmIHJlZmVy
cmVyLCBib29sIGFsbG93c1Njcm9sbGluZywgaW50IG1hcmdpbldpZHRoLCBpbnQgbWFyZ2luSGVp
Z2h0KTsKICAgICB2aXJ0dWFsIHZvaWQgZGlkVHJhbnNmZXJDaGlsZEZyYW1lVG9OZXdEb2N1bWVu
dChXZWJDb3JlOjpQYWdlKiBvbGRQYWdlKTsKKyAgICB2aXJ0dWFsIHZvaWQgdHJhbnNmZXJMb2Fk
aW5nUmVzb3VyY2VGcm9tUGFnZSh1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIFdlYkNvcmU6OkRv
Y3VtZW50TG9hZGVyKiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgV2ViQ29yZTo6
UGFnZSogb2xkUGFnZSk7CiAgICAgdmlydHVhbCBQYXNzUmVmUHRyPFdlYkNvcmU6OldpZGdldD4g
Y3JlYXRlUGx1Z2luKGNvbnN0IFdlYkNvcmU6OkludFNpemUmLCBXZWJDb3JlOjpIVE1MUGx1Z0lu
RWxlbWVudCosIGNvbnN0IFdlYkNvcmU6OktVUkwmLCBjb25zdCBWZWN0b3I8V1RGOjpTdHJpbmc+
JiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFZlY3Rv
cjxXVEY6OlN0cmluZz4mLCBjb25zdCBXVEY6OlN0cmluZyYsIGJvb2wpOwogICAgIHZpcnR1YWwg
dm9pZCByZWRpcmVjdERhdGFUb1BsdWdpbihXZWJDb3JlOjpXaWRnZXQqIHBsdWdpbldpZGdldCk7
CmRpZmYgLS1naXQgYS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xp
ZW50Lm1tIGIvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5t
bQppbmRleCA1OTM3MDIyLi44OWEwNTk4IDEwMDY0NAotLS0gYS9XZWJLaXQvbWFjL1dlYkNvcmVT
dXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lm1tCisrKyBiL1dlYktpdC9tYWMvV2ViQ29yZVN1
cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQubW0KQEAgLTEzODYsMTEgKzEzODYsMjcgQEAgUGFz
c1JlZlB0cjxGcmFtZT4gV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmNyZWF0ZUZyYW1lKGNvbnN0IEtV
UkwmIHVybCwgY29uc3QgU3RyaW4KIAogdm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlkVHJh
bnNmZXJDaGlsZEZyYW1lVG9OZXdEb2N1bWVudChQYWdlKiBvbGRQYWdlKQogewotICAgIGlmIChv
bGRQYWdlID09IGNvcmUobV93ZWJGcmFtZS5nZXQoKSktPnBhZ2UoKSkKLSAgICAgICAgcmV0dXJu
OworfQorCit2b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50Ojp0cmFuc2ZlckxvYWRpbmdSZXNvdXJj
ZUZyb21QYWdlKHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgRG9jdW1lbnRMb2FkZXIqIGxvYWRl
ciwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBQYWdlKiBvbGRQYWdlKQoreworICAg
IEFTU0VSVChvbGRQYWdlICE9IGNvcmUobV93ZWJGcmFtZS5nZXQoKSktPnBhZ2UoKSk7CisKKyAg
ICBXZWJWaWV3KiB3ZWJWaWV3ID0gZ2V0V2ViVmlldyhtX3dlYkZyYW1lLmdldCgpKTsKKyAgICBB
U1NFUlQoIVt3ZWJWaWV3IF9vYmplY3RGb3JJZGVudGlmaWVyOmlkZW50aWZpZXJdKTsKKworICAg
IGFzc2lnbklkZW50aWZpZXJUb0luaXRpYWxSZXF1ZXN0KGlkZW50aWZpZXIsIGxvYWRlciwgcmVx
dWVzdCk7CisKKyAgICBXZWJWaWV3KiBvbGRXZWJWaWV3ID0ga2l0KG9sZFBhZ2UpOworICAgIGlk
IG9sZFJlc291cmNlID0gW29sZFdlYlZpZXcgX29iamVjdEZvcklkZW50aWZpZXI6aWRlbnRpZmll
cl07CisgICAgQVNTRVJUKG9sZFJlc291cmNlKTsKKworICAgIC8vIFRyYW5zZmVyIGluZm8gdGhh
dCBtYXkgYmUgc3RvcmVkIGFib3V0IHRoZSByZXNvdXJjZSBmcm9tIHRoZSBvbGQgV2ViVmlldy4K
KyAgICBXZWJSZXNvdXJjZURlbGVnYXRlSW1wbGVtZW50YXRpb25DYWNoZSogaW1wbGVtZW50YXRp
b25zID0gV2ViVmlld0dldFJlc291cmNlTG9hZERlbGVnYXRlSW1wbGVtZW50YXRpb25zKHdlYlZp
ZXcpOworICAgIGlmIChpbXBsZW1lbnRhdGlvbnMtPnRyYW5zZmVyTG9hZGluZ1Jlc291cmNlRnJv
bVdlYlZpZXdGdW5jKQorICAgICAgICBDYWxsUmVzb3VyY2VMb2FkRGVsZWdhdGUoaW1wbGVtZW50
YXRpb25zLT50cmFuc2ZlckxvYWRpbmdSZXNvdXJjZUZyb21XZWJWaWV3RnVuYywgd2ViVmlldywg
QHNlbGVjdG9yKHdlYlZpZXc6cmVzb3VyY2U6dHJhbnNmZXJMb2FkaW5nUmVzb3VyY2U6ZnJvbVdl
YlZpZXc6KSwgW3dlYlZpZXcgX29iamVjdEZvcklkZW50aWZpZXI6aWRlbnRpZmllcl0sIG9sZFJl
c291cmNlLCBvbGRXZWJWaWV3KTsKIAotICAgIC8vIFVwZGF0ZSByZXNvdXJjZSB0cmFja2luZyBu
b3cgdGhhdCBmcmFtZSBpcyBpbiBhIGRpZmZlcmVudCBwYWdlLgotICAgIC8vIFRPRE8oamVubmIp
OiB1cGRhdGUgcmVzb3VyY2UgdHJhY2tpbmcgW2J1ZyA0NDcxM10KKyAgICBbb2xkV2ViVmlldyBf
cmVtb3ZlT2JqZWN0Rm9ySWRlbnRpZmllcjppZGVudGlmaWVyXTsKIH0KIAogT2JqZWN0Q29udGVu
dFR5cGUgV2ViRnJhbWVMb2FkZXJDbGllbnQ6Om9iamVjdENvbnRlbnRUeXBlKGNvbnN0IEtVUkwm
IHVybCwgY29uc3QgU3RyaW5nJiBtaW1lVHlwZSkKZGlmZiAtLWdpdCBhL1dlYktpdC9tYWMvV2Vi
Vmlldy9XZWJEZWxlZ2F0ZUltcGxlbWVudGF0aW9uQ2FjaGluZy5oIGIvV2ViS2l0L21hYy9XZWJW
aWV3L1dlYkRlbGVnYXRlSW1wbGVtZW50YXRpb25DYWNoaW5nLmgKaW5kZXggMmFhZGM4My4uYjli
MGMwNiAxMDA2NDQKLS0tIGEvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkRlbGVnYXRlSW1wbGVtZW50
YXRpb25DYWNoaW5nLmgKKysrIGIvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkRlbGVnYXRlSW1wbGVt
ZW50YXRpb25DYWNoaW5nLmgKQEAgLTQ4LDYgKzQ4LDcgQEAgc3RydWN0IFdlYlJlc291cmNlRGVs
ZWdhdGVJbXBsZW1lbnRhdGlvbkNhY2hlIHsKICAgICBJTVAgd2lsbENhY2hlUmVzcG9uc2VGdW5j
OwogICAgIElNUCBwbHVnSW5GYWlsZWRXaXRoRXJyb3JGdW5jOwogICAgIElNUCBzaG91bGRVc2VD
cmVkZW50aWFsU3RvcmFnZUZ1bmM7CisgICAgSU1QIHRyYW5zZmVyTG9hZGluZ1Jlc291cmNlRnJv
bVdlYlZpZXdGdW5jOwogfTsKIAogc3RydWN0IFdlYkZyYW1lTG9hZERlbGVnYXRlSW1wbGVtZW50
YXRpb25DYWNoZSB7CmRpZmYgLS1naXQgYS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViUmVzb3VyY2VM
b2FkRGVsZWdhdGUuaCBiL1dlYktpdC9tYWMvV2ViVmlldy9XZWJSZXNvdXJjZUxvYWREZWxlZ2F0
ZS5oCmluZGV4IDc3ZDg0YWQuLjliZDg1YzUgMTAwNjQ0Ci0tLSBhL1dlYktpdC9tYWMvV2ViVmll
dy9XZWJSZXNvdXJjZUxvYWREZWxlZ2F0ZS5oCisrKyBiL1dlYktpdC9tYWMvV2ViVmlldy9XZWJS
ZXNvdXJjZUxvYWREZWxlZ2F0ZS5oCkBAIC0xNjEsNiArMTYxLDE2IEBACiAqLwogLSAodm9pZCl3
ZWJWaWV3OihXZWJWaWV3ICopc2VuZGVyIHBsdWdJbkZhaWxlZFdpdGhFcnJvcjooTlNFcnJvciAq
KWVycm9yIGRhdGFTb3VyY2U6KFdlYkRhdGFTb3VyY2UgKilkYXRhU291cmNlOwogCisvKiEKKyAg
ICBAbWV0aG9kIHdlYlZpZXc6cmVzb3VyY2U6dHJhbnNmZXJMb2FkaW5nUmVzb3VyY2U6ZnJvbVdl
YlZpZXc6CisgICAgQGRpc2N1c3Npb24gVGhpcyBtZXNzYWdlIGlzIHNlbnQgYWZ0ZXIgYSBmcmFt
ZSBoYXMgYmVlbiBtb3ZlZCB0byBhIG5ldyBwYWdlIHdpdGhvdXQgZGlzcnVwdGluZyByZXNvdXJj
ZSBsb2Fkcy4gQW55IHJlc291cmNlcyB0aGF0IGFyZSBiZWluZyBsb2FkZWQgYnkgdGhhdCBmcmFt
ZSBhcmUgdHJhbnNmZXJyZWQgdG8gdGhlIG5ldyBwYWdlLiBJZiB0aGUgV2ViUmVzb3VyY2VMb2Fk
RGVsZWdhdGUgaW1wbGVtZW50YXRpb24gc3RvcmVzIGFueSBpbmZvcm1hdGlvbiBhYm91dCB0aGUg
bG9hZGluZyByZXNvdXJjZSwgdGhhdCBpbmZvcm1hdGlvbiBzaG91bGQgYmUgdHJhbnNmZXJyZWQg
ZnJvbSB0aGUgV2ViUmVzb3VyY2VMb2FkRGVsZWdhdGUgb2YgdGhlIG9sZCBXZWJWaWV3LiBUaGUg
b2xkIFdlYlZpZXcgbXVzdCBjZWFzZSB0cmFja2luZyBvZiB0aGUgcmVzb3VyY2UgbG9hZCBhZnRl
ciB0aGlzIG5vdGlmaWNhdGlvbi4KKyAgICBAcGFyYW0gd2ViVmlldyBUaGUgV2ViVmlldyB3aG8g
aXMgdGhlIHNlbmRlciBvZiB0aGUgbWVzc2FnZS4KKyAgICBAcGFyYW0gaWRlbnRpZmllciBBbiBp
ZGVudGlmaWVyIHRoYXQgY2FuIGJlIHVzZWQgdG8gdHJhY2sgdGhlIHByb2dyZXNzIG9mIGEgcmVz
b3VyY2UgbG9hZCBhY3Jvc3MgbXVsdGlwbGUgY2FsbCBiYWNrcy4KKyAgICBAcGFyYW0gb2xkSWRl
bnRpZmllciBUaGUgaWRlbnRpZmllciB1c2VkIGJ5IHRoZSBvbGQgV2ViVmlldyB0byB0cmFjayB0
aGUgcHJvZ3Jlc3Mgb2YgYSByZXNvdXJjZSBsb2FkIGFjcm9zcyBtdWx0aXBsZSBjYWxsIGJhY2tz
LgorICAgIEBwYXJhbSBvbGRXZWJWaWV3IFRoZSBXZWJWaWV3IGluIHRoZSBvbGQgcGFnZSB3aG8g
d2FzIHRoZSBzZW5kZXIgb2YgdGhlIG1lc3NhZ2UuCisgKi8KKy0gKHZvaWQpd2ViVmlldzooV2Vi
VmlldyAqKXNlbmRlciByZXNvdXJjZTooaWQpaWRlbnRpZmllciB0cmFuc2ZlckxvYWRpbmdSZXNv
dXJjZTooaWQpb2xkSWRlbnRpZmllciBmcm9tV2ViVmlldzooV2ViVmlldyAqKW9sZFdlYlZpZXc7
CisKIEBlbmQKIAogI3VuZGVmIFdlYk5TSW50ZWdlcgpkaWZmIC0tZ2l0IGEvV2ViS2l0L21hYy9X
ZWJWaWV3L1dlYlZpZXcubW0gYi9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQppbmRleCA5
YjI2N2VmLi41ZWRmMDIwIDEwMDY0NAotLS0gYS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlldy5t
bQorKysgYi9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQpAQCAtMTUzNCw2ICsxNTM0LDcg
QEAgc3RhdGljIGlubGluZSBJTVAgZ2V0TWV0aG9kKGlkIG8sIFNFTCBzKQogICAgIGNhY2hlLT53
aWxsQ2FjaGVSZXNwb25zZUZ1bmMgPSBnZXRNZXRob2QoZGVsZWdhdGUsIEBzZWxlY3Rvcih3ZWJW
aWV3OnJlc291cmNlOndpbGxDYWNoZVJlc3BvbnNlOmZyb21EYXRhU291cmNlOikpOwogICAgIGNh
Y2hlLT53aWxsU2VuZFJlcXVlc3RGdW5jID0gZ2V0TWV0aG9kKGRlbGVnYXRlLCBAc2VsZWN0b3Io
d2ViVmlldzpyZXNvdXJjZTp3aWxsU2VuZFJlcXVlc3Q6cmVkaXJlY3RSZXNwb25zZTpmcm9tRGF0
YVNvdXJjZTopKTsKICAgICBjYWNoZS0+c2hvdWxkVXNlQ3JlZGVudGlhbFN0b3JhZ2VGdW5jID0g
Z2V0TWV0aG9kKGRlbGVnYXRlLCBAc2VsZWN0b3Iod2ViVmlldzpyZXNvdXJjZTpzaG91bGRVc2VD
cmVkZW50aWFsU3RvcmFnZUZvckRhdGFTb3VyY2U6KSk7CisgICAgY2FjaGUtPnRyYW5zZmVyTG9h
ZGluZ1Jlc291cmNlRnJvbVdlYlZpZXdGdW5jID0gZ2V0TWV0aG9kKGRlbGVnYXRlLCBAc2VsZWN0
b3Iod2ViVmlldzpyZXNvdXJjZTp0cmFuc2ZlckxvYWRpbmdSZXNvdXJjZTpmcm9tV2ViVmlldzop
KTsKIH0KIAogLSAodm9pZClfY2FjaGVGcmFtZUxvYWREZWxlZ2F0ZUltcGxlbWVudGF0aW9ucwpk
aWZmIC0tZ2l0IGEvV2ViS2l0L3F0L0NoYW5nZUxvZyBiL1dlYktpdC9xdC9DaGFuZ2VMb2cKaW5k
ZXggOGU3ZTUxNC4uZGRjNWFlZSAxMDA2NDQKLS0tIGEvV2ViS2l0L3F0L0NoYW5nZUxvZworKysg
Yi9XZWJLaXQvcXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTAtMTAtMTMgIEplbm4g
QnJhaXRod2FpdGUgIDxqZW5uYkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVzb3VyY2UgdHJhY2tpbmcgZmFpbHVyZSB3aGVu
IHRyeWluZyB0byBtb3ZlIGEgZnJhbWUgYmV0d2VlbiBkb2N1bWVudHMKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ0NzEzCisKKyAgICAgICAgKiBXZWJD
b3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudFF0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZy
YW1lTG9hZGVyQ2xpZW50UXQ6OnRyYW5zZmVyTG9hZGluZ1Jlc291cmNlRnJvbVBhZ2UpOgorICAg
ICAgICBFbXRweSBtZXRob2QuCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJD
bGllbnRRdC5oOgorCiAyMDEwLTEwLTEzICBEaW51IEphY29iICA8ZGludS5qYWNvYkBub2tpYS5j
b20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgQW5kcmVhcyBLbGluZy4KZGlmZiAtLWdpdCBhL1dl
YktpdC9xdC9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudFF0LmNwcCBiL1dlYktpdC9x
dC9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudFF0LmNwcAppbmRleCAyODE1MTcxLi5i
ZGMzMWY0IDEwMDY0NAotLS0gYS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJD
bGllbnRRdC5jcHAKKysrIGIvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xp
ZW50UXQuY3BwCkBAIC0xMjYzLDYgKzEyNjMsMTAgQEAgdm9pZCBGcmFtZUxvYWRlckNsaWVudFF0
OjpkaWRUcmFuc2ZlckNoaWxkRnJhbWVUb05ld0RvY3VtZW50KFBhZ2UqKQogICAgIH0KIH0KIAor
dm9pZCBGcmFtZUxvYWRlckNsaWVudFF0Ojp0cmFuc2ZlckxvYWRpbmdSZXNvdXJjZUZyb21QYWdl
KHVuc2lnbmVkIGxvbmcsIERvY3VtZW50TG9hZGVyKiwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0Jiwg
UGFnZSopCit7Cit9CisKIE9iamVjdENvbnRlbnRUeXBlIEZyYW1lTG9hZGVyQ2xpZW50UXQ6Om9i
amVjdENvbnRlbnRUeXBlKGNvbnN0IEtVUkwmIHVybCwgY29uc3QgU3RyaW5nJiBfbWltZVR5cGUp
CiB7CiAvLyAgICBxRGVidWcoKTw8IiArKysrKysrKysrKysrKysrIHVybCBpcyAiPDx1cmwucHJl
dHR5VVJMKCk8PCIsIG1pbWUgPSAiPDxfbWltZVR5cGU7CmRpZmYgLS1naXQgYS9XZWJLaXQvcXQv
V2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRRdC5oIGIvV2ViS2l0L3F0L1dlYkNvcmVT
dXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50UXQuaAppbmRleCBlYzZhM2I2Li5iYzQ3MjJlIDEwMDY0
NAotLS0gYS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRRdC5oCisr
KyBiL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudFF0LmgKQEAgLTE5
OSw2ICsxOTksNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBQYXNzUmVmUHRyPEZyYW1lPiBjcmVh
dGVGcmFtZShjb25zdCBLVVJMJiB1cmwsIGNvbnN0IFN0cmluZyYgbmFtZSwgSFRNTEZyYW1lT3du
ZXJFbGVtZW50KiBvd25lckVsZW1lbnQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Y29uc3QgU3RyaW5nJiByZWZlcnJlciwgYm9vbCBhbGxvd3NTY3JvbGxpbmcsIGludCBtYXJnaW5X
aWR0aCwgaW50IG1hcmdpbkhlaWdodCk7CiAgICAgdmlydHVhbCB2b2lkIGRpZFRyYW5zZmVyQ2hp
bGRGcmFtZVRvTmV3RG9jdW1lbnQoV2ViQ29yZTo6UGFnZSopOworICAgIHZpcnR1YWwgdm9pZCB0
cmFuc2ZlckxvYWRpbmdSZXNvdXJjZUZyb21QYWdlKHVuc2lnbmVkIGxvbmcsIFdlYkNvcmU6OkRv
Y3VtZW50TG9hZGVyKiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgV2ViQ29yZTo6
UGFnZSopOwogICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxXaWRnZXQ+IGNyZWF0ZVBsdWdpbihjb25z
dCBJbnRTaXplJiwgSFRNTFBsdWdJbkVsZW1lbnQqLCBjb25zdCBLVVJMJiwgY29uc3QgVmVjdG9y
PFN0cmluZz4mLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYsIGNvbnN0IFN0cmluZyYsIGJvb2wpOwog
ICAgIHZpcnR1YWwgdm9pZCByZWRpcmVjdERhdGFUb1BsdWdpbihXaWRnZXQqIHBsdWdpbldpZGdl
dCk7CiAKZGlmZiAtLWdpdCBhL1dlYktpdC93aW4vQ2hhbmdlTG9nIGIvV2ViS2l0L3dpbi9DaGFu
Z2VMb2cKaW5kZXggMTNmMDZhYy4uOGEzZTRmYyAxMDA2NDQKLS0tIGEvV2ViS2l0L3dpbi9DaGFu
Z2VMb2cKKysrIGIvV2ViS2l0L3dpbi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAxMC0x
MC0xMyAgSmVubiBCcmFpdGh3YWl0ZSAgPGplbm5iQGNocm9taXVtLm9yZz4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZXNvdXJjZSB0cmFja2luZyBm
YWlsdXJlIHdoZW4gdHJ5aW5nIHRvIG1vdmUgYSBmcmFtZSBiZXR3ZWVuIGRvY3VtZW50cworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDQ3MTMKKworICAg
ICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcDoKKyAgICAgICAg
KFdlYkZyYW1lTG9hZGVyQ2xpZW50Ojp0cmFuc2ZlckxvYWRpbmdSZXNvdXJjZUZyb21QYWdlKToK
KyAgICAgICAgRW1wdHkgbWV0aG9kLgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkZyYW1l
TG9hZGVyQ2xpZW50Lmg6CisKIDIwMTAtMTAtMTIgIEFkYW0gUm9iZW4gIDxhcm9iZW5AYXBwbGUu
Y29tPgogCiAgICAgICAgIEJ1aWxkIFRlc3RXZWJLaXRBUEkgb24gV2luZG93cwpkaWZmIC0tZ2l0
IGEvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAgYi9X
ZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcAppbmRleCA0
Yzc4MDBmLi4yMDY0ZDRkIDEwMDY0NAotLS0gYS9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dl
YkZyYW1lTG9hZGVyQ2xpZW50LmNwcAorKysgYi9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dl
YkZyYW1lTG9hZGVyQ2xpZW50LmNwcApAQCAtNzMzLDYgKzczMywxMCBAQCB2b2lkIFdlYkZyYW1l
TG9hZGVyQ2xpZW50OjpkaWRUcmFuc2ZlckNoaWxkRnJhbWVUb05ld0RvY3VtZW50KFBhZ2UqKQog
ewogfQogCit2b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50Ojp0cmFuc2ZlckxvYWRpbmdSZXNvdXJj
ZUZyb21QYWdlKHVuc2lnbmVkIGxvbmcsIERvY3VtZW50TG9hZGVyKiwgY29uc3QgUmVzb3VyY2VS
ZXF1ZXN0JiwgUGFnZSopCit7Cit9CisKIFBhc3NSZWZQdHI8RnJhbWU+IFdlYkZyYW1lTG9hZGVy
Q2xpZW50OjpjcmVhdGVGcmFtZShjb25zdCBLVVJMJiBVUkwsIGNvbnN0IFN0cmluZyYgbmFtZSwg
SFRNTEZyYW1lT3duZXJFbGVtZW50KiBvd25lckVsZW1lbnQsIGNvbnN0IFN0cmluZyYgcmVmZXJy
ZXIpCiB7CiAgICAgRnJhbWUqIGNvcmVGcmFtZSA9IGNvcmUobV93ZWJGcmFtZSk7CmRpZmYgLS1n
aXQgYS9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmggYi9X
ZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmgKaW5kZXggN2Vj
MzQ0Yy4uZGVjYjdiOCAxMDA2NDQKLS0tIGEvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJG
cmFtZUxvYWRlckNsaWVudC5oCisrKyBiL1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRnJh
bWVMb2FkZXJDbGllbnQuaApAQCAtMTEzLDYgKzExMyw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFs
IFBhc3NSZWZQdHI8V2ViQ29yZTo6RnJhbWU+IGNyZWF0ZUZyYW1lKGNvbnN0IFdlYkNvcmU6OktV
UkwmIHVybCwgY29uc3QgV1RGOjpTdHJpbmcmIG5hbWUsIFdlYkNvcmU6OkhUTUxGcmFtZU93bmVy
RWxlbWVudCogb3duZXJFbGVtZW50LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNv
bnN0IFdURjo6U3RyaW5nJiByZWZlcnJlciwgYm9vbCBhbGxvd3NTY3JvbGxpbmcsIGludCBtYXJn
aW5XaWR0aCwgaW50IG1hcmdpbkhlaWdodCk7CiAgICAgdmlydHVhbCB2b2lkIGRpZFRyYW5zZmVy
Q2hpbGRGcmFtZVRvTmV3RG9jdW1lbnQoV2ViQ29yZTo6UGFnZSopOworICAgIHZpcnR1YWwgdm9p
ZCB0cmFuc2ZlckxvYWRpbmdSZXNvdXJjZUZyb21QYWdlKHVuc2lnbmVkIGxvbmcsIFdlYkNvcmU6
OkRvY3VtZW50TG9hZGVyKiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgV2ViQ29y
ZTo6UGFnZSopOwogICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxXZWJDb3JlOjpXaWRnZXQ+IGNyZWF0
ZVBsdWdpbihjb25zdCBXZWJDb3JlOjpJbnRTaXplJiwgV2ViQ29yZTo6SFRNTFBsdWdJbkVsZW1l
bnQqLCBjb25zdCBXZWJDb3JlOjpLVVJMJiwgY29uc3QgVmVjdG9yPFdURjo6U3RyaW5nPiYsIGNv
bnN0IFZlY3RvcjxXVEY6OlN0cmluZz4mLCBjb25zdCBXVEY6OlN0cmluZyYsIGJvb2wgbG9hZE1h
bnVhbGx5KTsKICAgICB2aXJ0dWFsIHZvaWQgcmVkaXJlY3REYXRhVG9QbHVnaW4oV2ViQ29yZTo6
V2lkZ2V0KiBwbHVnaW5XaWRnZXQpOwogCmRpZmYgLS1naXQgYS9XZWJLaXQvd2luY2UvQ2hhbmdl
TG9nIGIvV2ViS2l0L3dpbmNlL0NoYW5nZUxvZwppbmRleCBjODVmOTAyLi5kNGFkZTNjIDEwMDY0
NAotLS0gYS9XZWJLaXQvd2luY2UvQ2hhbmdlTG9nCisrKyBiL1dlYktpdC93aW5jZS9DaGFuZ2VM
b2cKQEAgLTEsMyArMSwxNSBAQAorMjAxMC0xMC0xMyAgSmVubiBCcmFpdGh3YWl0ZSAgPGplbm5i
QGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBSZXNvdXJjZSB0cmFja2luZyBmYWlsdXJlIHdoZW4gdHJ5aW5nIHRvIG1vdmUgYSBm
cmFtZSBiZXR3ZWVuIGRvY3VtZW50cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9NDQ3MTMKKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0ZyYW1lTG9h
ZGVyQ2xpZW50V2luQ0UuY3BwOgorICAgICAgICAoV2ViS2l0OjpGcmFtZUxvYWRlckNsaWVudFdp
bkNFOjp0cmFuc2ZlckxvYWRpbmdSZXNvdXJjZUZyb21QYWdlKToKKyAgICAgICAgRW1wdHkgbWV0
aG9kLgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50V2luQ0UuaDoK
KwogMjAxMC0wOS0yOCAgSmVubiBCcmFpdGh3YWl0ZSAgPGplbm5iQGNocm9taXVtLm9yZz4KIAog
ICAgICAgICBSZXZpZXdlZCBieSBEbWl0cnkgVGl0b3YuCmRpZmYgLS1naXQgYS9XZWJLaXQvd2lu
Y2UvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRXaW5DRS5jcHAgYi9XZWJLaXQvd2lu
Y2UvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRXaW5DRS5jcHAKaW5kZXggZTg0MWFi
OS4uMGFjMjFmMiAxMDA2NDQKLS0tIGEvV2ViS2l0L3dpbmNlL1dlYkNvcmVTdXBwb3J0L0ZyYW1l
TG9hZGVyQ2xpZW50V2luQ0UuY3BwCisrKyBiL1dlYktpdC93aW5jZS9XZWJDb3JlU3VwcG9ydC9G
cmFtZUxvYWRlckNsaWVudFdpbkNFLmNwcApAQCAtMTY1LDYgKzE2NSwxMCBAQCB2b2lkIEZyYW1l
TG9hZGVyQ2xpZW50V2luQ0U6OmRpZFRyYW5zZmVyQ2hpbGRGcmFtZVRvTmV3RG9jdW1lbnQoUGFn
ZSopCiB7CiB9CiAKK3ZvaWQgRnJhbWVMb2FkZXJDbGllbnRXaW5DRTo6dHJhbnNmZXJMb2FkaW5n
UmVzb3VyY2VGcm9tUGFnZSh1bnNpZ25lZCBsb25nLCBEb2N1bWVudExvYWRlciosIGNvbnN0IFJl
c291cmNlUmVxdWVzdCYsIFBhZ2UqKQoreworfQorCiB2b2lkIEZyYW1lTG9hZGVyQ2xpZW50V2lu
Q0U6OnJlZGlyZWN0RGF0YVRvUGx1Z2luKFdpZGdldCogcGx1Z2luV2lkZ2V0KQogewogICAgIEFT
U0VSVCghbV9wbHVnaW5WaWV3KTsKZGlmZiAtLWdpdCBhL1dlYktpdC93aW5jZS9XZWJDb3JlU3Vw
cG9ydC9GcmFtZUxvYWRlckNsaWVudFdpbkNFLmggYi9XZWJLaXQvd2luY2UvV2ViQ29yZVN1cHBv
cnQvRnJhbWVMb2FkZXJDbGllbnRXaW5DRS5oCmluZGV4IGI2NGVmZWQuLjgwMDExMDRhIDEwMDY0
NAotLS0gYS9XZWJLaXQvd2luY2UvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRXaW5D
RS5oCisrKyBiL1dlYktpdC93aW5jZS9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudFdp
bkNFLmgKQEAgLTEwOSw2ICsxMDksNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBQYXNzUmVmUHRy
PFdlYkNvcmU6OkZyYW1lPiBjcmVhdGVGcmFtZShjb25zdCBXZWJDb3JlOjpLVVJMJiB1cmwsIGNv
bnN0IFdURjo6U3RyaW5nJiBuYW1lLCBXZWJDb3JlOjpIVE1MRnJhbWVPd25lckVsZW1lbnQqIG93
bmVyRWxlbWVudCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBXVEY6OlN0
cmluZyYgcmVmZXJyZXIsIGJvb2wgYWxsb3dzU2Nyb2xsaW5nLCBpbnQgbWFyZ2luV2lkdGgsIGlu
dCBtYXJnaW5IZWlnaHQpOwogICAgIHZpcnR1YWwgdm9pZCBkaWRUcmFuc2ZlckNoaWxkRnJhbWVU
b05ld0RvY3VtZW50KFdlYkNvcmU6OlBhZ2UqKTsKKyAgICB2aXJ0dWFsIHZvaWQgdHJhbnNmZXJM
b2FkaW5nUmVzb3VyY2VGcm9tUGFnZSh1bnNpZ25lZCBsb25nLCBXZWJDb3JlOjpEb2N1bWVudExv
YWRlciosIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIFdlYkNvcmU6OlBhZ2UqKTsK
ICAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8V2ViQ29yZTo6V2lkZ2V0PiBjcmVhdGVQbHVnaW4oY29u
c3QgV2ViQ29yZTo6SW50U2l6ZSYsIFdlYkNvcmU6OkhUTUxQbHVnSW5FbGVtZW50KiwgY29uc3Qg
V2ViQ29yZTo6S1VSTCYsIGNvbnN0IFdURjo6VmVjdG9yPFdURjo6U3RyaW5nPiYsIGNvbnN0IFdU
Rjo6VmVjdG9yPFdURjo6U3RyaW5nPiYsIGNvbnN0IFdURjo6U3RyaW5nJiwgYm9vbCk7CiAgICAg
dmlydHVhbCB2b2lkIHJlZGlyZWN0RGF0YVRvUGx1Z2luKFdlYkNvcmU6OldpZGdldCogcGx1Z2lu
V2lkZ2V0KTsKICAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8V2ViQ29yZTo6V2lkZ2V0PiBjcmVhdGVK
YXZhQXBwbGV0V2lkZ2V0KGNvbnN0IFdlYkNvcmU6OkludFNpemUmLCBXZWJDb3JlOjpIVE1MQXBw
bGV0RWxlbWVudCosIGNvbnN0IFdlYkNvcmU6OktVUkwmIGJhc2VVUkwsIGNvbnN0IFdURjo6VmVj
dG9yPFdURjo6U3RyaW5nPiYgcGFyYW1OYW1lcywgY29uc3QgV1RGOjpWZWN0b3I8V1RGOjpTdHJp
bmc+JiBwYXJhbVZhbHVlcyk7CmRpZmYgLS1naXQgYS9XZWJLaXQvd3gvQ2hhbmdlTG9nIGIvV2Vi
S2l0L3d4L0NoYW5nZUxvZwppbmRleCBhYmJjODdiLi4yMmIwY2U5IDEwMDY0NAotLS0gYS9XZWJL
aXQvd3gvQ2hhbmdlTG9nCisrKyBiL1dlYktpdC93eC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBA
QAorMjAxMC0xMC0xMyAgSmVubiBCcmFpdGh3YWl0ZSAgPGplbm5iQGNocm9taXVtLm9yZz4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZXNvdXJjZSB0
cmFja2luZyBmYWlsdXJlIHdoZW4gdHJ5aW5nIHRvIG1vdmUgYSBmcmFtZSBiZXR3ZWVuIGRvY3Vt
ZW50cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDQ3
MTMKKworICAgICAgICAqIFdlYktpdFN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRXeC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRlckNsaWVudFd4Ojp0cmFuc2ZlckxvYWRpbmdSZXNv
dXJjZUZyb21QYWdlKToKKyAgICAgICAgRW1wdHkgbWV0aG9kLgorICAgICAgICAqIFdlYktpdFN1
cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRXeC5oOgorCiAyMDEwLTA5LTI4ICBKZW5uIEJyYWl0aHdh
aXRlICA8amVubmJAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IERtaXRyeSBU
aXRvdi4KZGlmZiAtLWdpdCBhL1dlYktpdC93eC9XZWJLaXRTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xp
ZW50V3guY3BwIGIvV2ViS2l0L3d4L1dlYktpdFN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRXeC5j
cHAKaW5kZXggOTNhNjJjYS4uNGJlNzliOCAxMDA2NDQKLS0tIGEvV2ViS2l0L3d4L1dlYktpdFN1
cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRXeC5jcHAKKysrIGIvV2ViS2l0L3d4L1dlYktpdFN1cHBv
cnQvRnJhbWVMb2FkZXJDbGllbnRXeC5jcHAKQEAgLTg2NCw2ICs4NjQsMTAgQEAgdm9pZCBGcmFt
ZUxvYWRlckNsaWVudFd4OjpkaWRUcmFuc2ZlckNoaWxkRnJhbWVUb05ld0RvY3VtZW50KFBhZ2Uq
KQogewogfQogCit2b2lkIEZyYW1lTG9hZGVyQ2xpZW50V3g6OnRyYW5zZmVyTG9hZGluZ1Jlc291
cmNlRnJvbVBhZ2UodW5zaWduZWQgbG9uZywgRG9jdW1lbnRMb2FkZXIqLCBjb25zdCBSZXNvdXJj
ZVJlcXVlc3QmLCBQYWdlKikKK3sKK30KKwogT2JqZWN0Q29udGVudFR5cGUgRnJhbWVMb2FkZXJD
bGllbnRXeDo6b2JqZWN0Q29udGVudFR5cGUoY29uc3QgS1VSTCYgdXJsLCBjb25zdCBTdHJpbmcm
IG1pbWVUeXBlKQogewogICAgIG5vdEltcGxlbWVudGVkKCk7CmRpZmYgLS1naXQgYS9XZWJLaXQv
d3gvV2ViS2l0U3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudFd4LmggYi9XZWJLaXQvd3gvV2ViS2l0
U3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudFd4LmgKaW5kZXggOWMyNjBmZS4uY2VkODU0YiAxMDA2
NDQKLS0tIGEvV2ViS2l0L3d4L1dlYktpdFN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRXeC5oCisr
KyBiL1dlYktpdC93eC9XZWJLaXRTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50V3guaApAQCAtMjA0
LDYgKzIwNCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgdmlydHVhbCBQYXNzUmVm
UHRyPEZyYW1lPiBjcmVhdGVGcmFtZShjb25zdCBLVVJMJiB1cmwsIGNvbnN0IFN0cmluZyYgbmFt
ZSwgSFRNTEZyYW1lT3duZXJFbGVtZW50KiBvd25lckVsZW1lbnQsCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGNvbnN0IFN0cmluZyYgcmVmZXJyZXIsIGJvb2wgYWxsb3dzU2Ny
b2xsaW5nLCBpbnQgbWFyZ2luV2lkdGgsIGludCBtYXJnaW5IZWlnaHQpOwogICAgICAgICB2aXJ0
dWFsIHZvaWQgZGlkVHJhbnNmZXJDaGlsZEZyYW1lVG9OZXdEb2N1bWVudChQYWdlKik7CisgICAg
ICAgIHZpcnR1YWwgdm9pZCB0cmFuc2ZlckxvYWRpbmdSZXNvdXJjZUZyb21QYWdlKHVuc2lnbmVk
IGxvbmcsIERvY3VtZW50TG9hZGVyKiwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgUGFnZSopOwog
ICAgICAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8V2lkZ2V0PiBjcmVhdGVQbHVnaW4oY29uc3QgSW50
U2l6ZSYsIEhUTUxQbHVnSW5FbGVtZW50KiwgY29uc3QgS1VSTCYsIGNvbnN0IFZlY3RvcjxTdHJp
bmc+JiwgY29uc3QgVmVjdG9yPFN0cmluZz4mLCBjb25zdCBTdHJpbmcmLCBib29sIGxvYWRNYW51
YWxseSkgOwogICAgICAgICB2aXJ0dWFsIHZvaWQgcmVkaXJlY3REYXRhVG9QbHVnaW4oV2lkZ2V0
KiBwbHVnaW5XaWRnZXQpOwogICAgICAgICB2aXJ0dWFsIFJlc291cmNlRXJyb3IgcGx1Z2luV2ls
bEhhbmRsZUxvYWRFcnJvcihjb25zdCBSZXNvdXJjZVJlc3BvbnNlJik7CmRpZmYgLS1naXQgYS9X
ZWJLaXQyL0NoYW5nZUxvZyBiL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IGJjOTliM2QuLmY2NjBk
MTcgMTAwNjQ0Ci0tLSBhL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1dlYktpdDIvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMTUgQEAKKzIwMTAtMTAtMTMgIEplbm4gQnJhaXRod2FpdGUgIDxqZW5uYkBj
aHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgUmVzb3VyY2UgdHJhY2tpbmcgZmFpbHVyZSB3aGVuIHRyeWluZyB0byBtb3ZlIGEgZnJh
bWUgYmV0d2VlbiBkb2N1bWVudHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTQ0NzEzCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViRnJhbWVMb2Fk
ZXJDbGllbnQ6OnRyYW5zZmVyTG9hZGluZ1Jlc291cmNlRnJvbVBhZ2UpOgorICAgICAgICBFbXB0
eSBtZXRob2QuCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxv
YWRlckNsaWVudC5oOgorCiAyMDEwLTEwLTEzICBCcmVudCBGdWxnaGFtICA8YmZ1bGdoYW1Ad2Vi
a2l0Lm9yZz4KIAogICAgICAgICBVbnJldmlld2VkIGJ1aWxkIGZpeGVzIGFmdGVyIHI2OTUzOC4K
ZGlmZiAtLWdpdCBhL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxv
YWRlckNsaWVudC5jcHAgYi9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJh
bWVMb2FkZXJDbGllbnQuY3BwCmluZGV4IGRlYjkwZTMuLjMyZmVhODEgMTAwNjQ0Ci0tLSBhL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAK
KysrIGIvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xp
ZW50LmNwcApAQCAtOTY3LDYgKzk2NywxMSBAQCB2b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50Ojpk
aWRUcmFuc2ZlckNoaWxkRnJhbWVUb05ld0RvY3VtZW50KFBhZ2UqKQogICAgIG5vdEltcGxlbWVu
dGVkKCk7CiB9CiAKK3ZvaWQgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OnRyYW5zZmVyTG9hZGluZ1Jl
c291cmNlRnJvbVBhZ2UodW5zaWduZWQgbG9uZywgRG9jdW1lbnRMb2FkZXIqLCBjb25zdCBSZXNv
dXJjZVJlcXVlc3QmLCBQYWdlKikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCiBQYXNz
UmVmUHRyPFdpZGdldD4gV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmNyZWF0ZVBsdWdpbihjb25zdCBJ
bnRTaXplJiwgSFRNTFBsdWdJbkVsZW1lbnQqIHBsdWdpbkVsZW1lbnQsIGNvbnN0IEtVUkwmIHVy
bCwgY29uc3QgVmVjdG9yPFN0cmluZz4mIHBhcmFtTmFtZXMsIGNvbnN0IFZlY3RvcjxTdHJpbmc+
JiBwYXJhbVZhbHVlcywgY29uc3QgU3RyaW5nJiBtaW1lVHlwZSwgYm9vbCBsb2FkTWFudWFsbHkp
CiB7CiAgICAgQVNTRVJUKHBhcmFtTmFtZXMuc2l6ZSgpID09IHBhcmFtVmFsdWVzLnNpemUoKSk7
CmRpZmYgLS1naXQgYS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVM
b2FkZXJDbGllbnQuaCBiL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFt
ZUxvYWRlckNsaWVudC5oCmluZGV4IDM0OWQ3YjMuLjM0MGVhNWIgMTAwNjQ0Ci0tLSBhL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oCisrKyBi
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5o
CkBAIC0xNzYsNiArMTc2LDcgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8V2Vi
Q29yZTo6RnJhbWU+IGNyZWF0ZUZyYW1lKGNvbnN0IFdlYkNvcmU6OktVUkwmIHVybCwgY29uc3Qg
U3RyaW5nJiBuYW1lLCBXZWJDb3JlOjpIVE1MRnJhbWVPd25lckVsZW1lbnQqIG93bmVyRWxlbWVu
dCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFN0cmlu
ZyYgcmVmZXJyZXIsIGJvb2wgYWxsb3dzU2Nyb2xsaW5nLCBpbnQgbWFyZ2luV2lkdGgsIGludCBt
YXJnaW5IZWlnaHQpOwogICAgIHZpcnR1YWwgdm9pZCBkaWRUcmFuc2ZlckNoaWxkRnJhbWVUb05l
d0RvY3VtZW50KFdlYkNvcmU6OlBhZ2UqKTsKKyAgICB2aXJ0dWFsIHZvaWQgdHJhbnNmZXJMb2Fk
aW5nUmVzb3VyY2VGcm9tUGFnZSh1bnNpZ25lZCBsb25nLCBXZWJDb3JlOjpEb2N1bWVudExvYWRl
ciosIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIFdlYkNvcmU6OlBhZ2UqKTsKICAg
ICAKICAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8V2ViQ29yZTo6V2lkZ2V0PiBjcmVhdGVQbHVnaW4o
Y29uc3QgV2ViQ29yZTo6SW50U2l6ZSYsIFdlYkNvcmU6OkhUTUxQbHVnSW5FbGVtZW50KiwgY29u
c3QgV2ViQ29yZTo6S1VSTCYsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiwgY29uc3QgVmVjdG9yPFN0
cmluZz4mLCBjb25zdCBTdHJpbmcmLCBib29sIGxvYWRNYW51YWxseSk7CiAgICAgdmlydHVhbCB2
b2lkIHJlZGlyZWN0RGF0YVRvUGx1Z2luKFdlYkNvcmU6OldpZGdldCogcGx1Z2luV2lkZ2V0KTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>71823</attachid>
            <date>2010-10-25 17:22:21 -0700</date>
            <delta_ts>2010-10-26 13:30:53 -0700</delta_ts>
            <desc>updated patch</desc>
            <filename>patch44713-4.txt</filename>
            <type>text/plain</type>
            <size>35560</size>
            <attacher name="Jenn Braithwaite">jennb</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBjMjMxYjkwLi4wNjQyOTgzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTAtMTAt
MjUgIEplbm4gQnJhaXRod2FpdGUgIDxqZW5uYkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVzb3VyY2UgdHJhY2tpbmcgZmFp
bHVyZSB3aGVuIHRyeWluZyB0byBtb3ZlIGEgZnJhbWUgYmV0d2VlbiBkb2N1bWVudHMKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ0NzEzCisKKyAgICAg
ICAgKiBmYXN0L2ZyYW1lcy9pZnJhbWUtcmVwYXJlbnRpbmctZmFpbC1sb2FkLWV4cGVjdGVkLnR4
dDogQWRkZWQuCisgICAgICAgICogZmFzdC9mcmFtZXMvaWZyYW1lLXJlcGFyZW50aW5nLWZhaWwt
bG9hZC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvU2tpcHBlZDoKKyAgICAg
ICAgUmUtZW5hYmxlZCB0ZXN0IHRoYXQgZmFpbGVkIGR1ZSB0byB0aGlzIGJ1Zy4KKwogMjAxMC0x
MC0yNSAgS2VubmV0aCBSdXNzZWxsICA8a2JyQGdvb2dsZS5jb20+CiAKICAgICAgICAgVW5yZXZp
ZXdlZCwgdGVzdCBleHBlY3RhdGlvbnMgdXBkYXRlLiBUZW1wb3JhcmlseSBXZWJHTCBsYXlvdXQK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZnJhbWVzL2lmcmFtZS1yZXBhcmVudGluZy1m
YWlsLWxvYWQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9mcmFtZXMvaWZyYW1lLXJl
cGFyZW50aW5nLWZhaWwtbG9hZC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMC4uMmUxY2VlMAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qv
ZnJhbWVzL2lmcmFtZS1yZXBhcmVudGluZy1mYWlsLWxvYWQtZXhwZWN0ZWQudHh0CkBAIC0wLDAg
KzEgQEAKK1RoaXMgdGVzdCBhZG9wdHMgYW4gaWZyYW1lIGludG8gYSBzZWNvbmQgcGFnZSwgdGhl
biBjbG9zZXMgdGhhdCBwYWdlLCBjYW5jZWxsaW5nIHRoYXQgaWZyYW1lIGxvYWQuIFRoZSBjYW5j
ZWxsZWQgbG9hZCBpcyB0cmVhdGVkIGFzIGEgZmFpbGVkIGxvYWQuIFRoaXMgdGVzdCB3aWxsIGNy
YXNoIGlmIHJlc291cmNlIHRyYWNraW5nIGhhcyBub3QgYmVlbiB1cGRhdGVkIGFmdGVyIHRoZSBp
ZnJhbWUgaGFzIGJlZW4gYWRvcHRlZCB0byBhIGRpZmZlcmVudCBwYWdlIGJlY2F1c2UgdGhlIGZh
aWxlZCBsb2FkIHdpbGwgYmUgcmVwb3J0ZWQgdG8gdGhlIHdyb25nIHBsYWNlLgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvZmFzdC9mcmFtZXMvaWZyYW1lLXJlcGFyZW50aW5nLWZhaWwtbG9hZC5o
dG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9mcmFtZXMvaWZyYW1lLXJlcGFyZW50aW5nLWZhaWwtbG9h
ZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQ2NmM0ZGEKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2ZyYW1lcy9pZnJhbWUtcmVwYXJlbnRpbmct
ZmFpbC1sb2FkLmh0bWwKQEAgLTAsMCArMSwyMiBAQAorPGh0bWw+Cis8c2NyaXB0PgoraWYgKHdp
bmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgeworICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1
bXBBc1RleHQoKTsKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7Cisg
ICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuc2V0Q2FuT3BlbldpbmRvd3ModHJ1ZSk7Cit9CisKK2Z1
bmN0aW9uIHRlc3QoKQoreworICAgIHZhciB3ID0gd2luZG93Lm9wZW4oImFib3V0OmJsYW5rIik7
CisgICAgdmFyIGYgPSB3LmRvY3VtZW50LmFkb3B0Tm9kZShkb2N1bWVudC5nZXRFbGVtZW50c0J5
VGFnTmFtZSgiaWZyYW1lIilbMF0pOworICAgIHcuZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChm
KTsKKyAgICB3LmNsb3NlKCk7CisgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikK
KyAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgpOworfQorPC9zY3JpcHQ+
Cis8Ym9keSBvbmxvYWQ9InRlc3QoKSI+Cis8aWZyYW1lIHNyYz0iZGF0YTp0ZXh0L2h0bWwsZm9v
Ij48L2lmcmFtZT4KKzxwPlRoaXMgdGVzdCBhZG9wdHMgYW4gaWZyYW1lIGludG8gYSBzZWNvbmQg
cGFnZSwgdGhlbiBjbG9zZXMgdGhhdCBwYWdlLCBjYW5jZWxsaW5nIHRoYXQgaWZyYW1lIGxvYWQu
IFRoZSBjYW5jZWxsZWQgbG9hZCBpcyB0cmVhdGVkIGFzIGEgZmFpbGVkIGxvYWQuIFRoaXMgdGVz
dCB3aWxsIGNyYXNoIGlmIHJlc291cmNlIHRyYWNraW5nIGhhcyBub3QgYmVlbiB1cGRhdGVkIGFm
dGVyIHRoZSBpZnJhbWUgaGFzIGJlZW4gYWRvcHRlZCB0byBhIGRpZmZlcmVudCBwYWdlIGJlY2F1
c2UgdGhlIGZhaWxlZCBsb2FkIHdpbGwgYmUgcmVwb3J0ZWQgdG8gdGhlIHdyb25nIHBsYWNlLjwv
cD4KKzwvYm9keT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9Ta2lwcGVk
IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1NraXBwZWQKaW5kZXggZGVjNjQ0Zi4uYzUwYzk0
NSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1NraXBwZWQKKysrIGIvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1NraXBwZWQKQEAgLTI5OSw5ICsyOTksNiBAQCBtZWRpYS9j
b250ZXh0LW1lbnUtYWN0aW9ucy5odG1sCiAjIEZpbGVTeXN0ZW0gQVBJIGlzIG5vdCBzdXBwb3J0
ZWQuCiBmYXN0L2ZpbGVzeXN0ZW0KIAotIyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9NDQ3MTMKLWZhc3QvZnJhbWVzL2lmcmFtZS1yZXBhcmVudGluZy1hZG9wdC1ub2Rl
Lmh0bWwKLQogIyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDYyMjMK
ICMgVGhlIFdlYktpdCBwbHVnaW4gaW1wbGVtZW50YXRpb24gZG9lcyBub3Qgc3VwcG9ydCBpZnJh
bWUgc2hpbXMuCiBwbHVnaW5zL2lmcmFtZS1zaGltcy5odG1sCmRpZmYgLS1naXQgYS9XZWJDb3Jl
L0NoYW5nZUxvZyBiL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGZhNTg5MjUuLmExYzk0MDggMTAw
NjQ0Ci0tLSBhL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMzIgQEAKKzIwMTAtMTAtMjUgIEplbm4gQnJhaXRod2FpdGUgIDxqZW5uYkBjaHJvbWl1
bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
UmVzb3VyY2UgdHJhY2tpbmcgZmFpbHVyZSB3aGVuIHRyeWluZyB0byBtb3ZlIGEgZnJhbWUgYmV0
d2VlbiBkb2N1bWVudHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTQ0NzEzCisKKyAgICAgICAgVGVzdDogZmFzdC9mcmFtZXMvaWZyYW1lLXJlcGFyZW50
aW5nLWZhaWwtbG9hZC5odG1sCisKKyAgICAgICAgKiBsb2FkZXIvRG9jdW1lbnRMb2FkZXIuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnRMb2FkZXI6OnRyYW5zZmVyTG9hZGluZ1Jlc291
cmNlc0Zyb21QYWdlKToKKyAgICAgICAgQWRkZWQgbWV0aG9kIHRoYXQgbm90aWZpZXMgdGhlIGNs
aWVudCB0byB1cGRhdGUgcmVzb3VyY2UgdHJhY2tpbmcgZm9yCisgICAgICAgIGxvYWRpbmcgcmVz
b3VyY2VzIHRoYXQgaGF2ZSBiZWVuIHRyYW5zZmVycmVkIHRvIGEgZGlmZmVyZW50IHBhZ2UuCisg
ICAgICAgICogbG9hZGVyL0RvY3VtZW50TG9hZGVyLmg6CisgICAgICAgICogbG9hZGVyL0VtcHR5
Q2xpZW50cy5oOgorICAgICAgICAoV2ViQ29yZTo6RW1wdHlGcmFtZUxvYWRlckNsaWVudDo6dHJh
bnNmZXJMb2FkaW5nUmVzb3VyY2VGcm9tUGFnZSk6CisgICAgICAgIEVtcHR5IG1ldGhvZC4KKyAg
ICAgICAgKiBsb2FkZXIvRnJhbWVMb2FkZXIuaDoKKyAgICAgICAgKiBsb2FkZXIvRnJhbWVMb2Fk
ZXIuY3BwOgorICAgICAgICBBZGRlZCBtZXRob2QgdGhhdCB0cmlnZ2VycyByZXNvdXJjZSB0cmFj
a2luZyB1cGRhdGVzLiBUaGlzIHdyYXBzCisgICAgICAgIHRoZSBEb2N1bWVudExvYWRlciBtZXRo
b2QgYXMgaXQgYXBwZWFycyBEb2N1bWVudExvYWRlciBpcyBvcGFxdWUKKyAgICAgICAgdG8gRnJh
bWUuCisgICAgICAgICogbG9hZGVyL0ZyYW1lTG9hZGVyQ2xpZW50Lmg6CisgICAgICAgIEFkZGVk
IEFQSSB0byBub3RpZnkgdGhlIGNsaWVudCB0byB1cGRhdGUgcmVzb3VyY2UgdHJhY2tpbmcgZm9y
CisgICAgICAgIGEgbG9hZGluZyByZXNvdXJjZSB0aGF0IGhhcyBiZWVuIHRyYW5zZmVycmVkIHRv
IGEgZGlmZmVyZW50IHBhZ2UuCisgICAgICAgICogcGFnZS9GcmFtZS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpGcmFtZTo6dHJhbnNmZXJDaGlsZEZyYW1lVG9OZXdEb2N1bWVudCk6CisgICAgICAg
IFVwZGF0ZSByZXNvdXJjZSB0cmFja2luZyBpZiBwYWdlIGhhcyBjaGFuZ2VkLgorCiAyMDEwLTEw
LTI1ICBSeW9zdWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgogCiAgICAgICAgIFVucmV2aWV3
ZWQgUXQgYnVpbGQgZml4IGZvciByNzA0OTYuCmRpZmYgLS1naXQgYS9XZWJDb3JlL2xvYWRlci9E
b2N1bWVudExvYWRlci5jcHAgYi9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudExvYWRlci5jcHAKaW5k
ZXggN2VlN2JjYy4uMzBiODBlYiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRM
b2FkZXIuY3BwCisrKyBiL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50TG9hZGVyLmNwcApAQCAtNzg3
LDYgKzc4NywyNyBAQCB2b2lkIERvY3VtZW50TG9hZGVyOjpzdWJyZXNvdXJjZUxvYWRlckZpbmlz
aGVkTG9hZGluZ09uZVBhcnQoUmVzb3VyY2VMb2FkZXIqIGxvYQogICAgICAgICBmcmFtZS0+bG9h
ZGVyKCktPmNoZWNrTG9hZENvbXBsZXRlKCk7ICAgIAogfQogCit2b2lkIERvY3VtZW50TG9hZGVy
Ojp0cmFuc2ZlckxvYWRpbmdSZXNvdXJjZXNGcm9tUGFnZShQYWdlKiBvbGRQYWdlKQoreworICAg
IEFTU0VSVChvbGRQYWdlICE9IG1fZnJhbWUtPnBhZ2UoKSk7CisKKyAgICBGcmFtZUxvYWRlckNs
aWVudCogZnJhbWVMb2FkZXJDbGllbnQgPSBmcmFtZUxvYWRlcigpLT5jbGllbnQoKTsKKyAgICBj
b25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QgPSBvcmlnaW5hbFJlcXVlc3QoKTsKKyAgICBp
ZiAoaXNMb2FkaW5nTWFpblJlc291cmNlKCkpIHsKKyAgICAgICAgZnJhbWVMb2FkZXJDbGllbnQt
PnRyYW5zZmVyTG9hZGluZ1Jlc291cmNlRnJvbVBhZ2UoCisgICAgICAgICAgICBtX21haW5SZXNv
dXJjZUxvYWRlci0+aWRlbnRpZmllcigpLCB0aGlzLCByZXF1ZXN0LCBvbGRQYWdlKTsKKyAgICB9
CisKKyAgICBpZiAoaXNMb2FkaW5nU3VicmVzb3VyY2VzKCkpIHsKKyAgICAgICAgUmVzb3VyY2VM
b2FkZXJTZXQ6OmNvbnN0X2l0ZXJhdG9yIGl0ID0gbV9zdWJyZXNvdXJjZUxvYWRlcnMuYmVnaW4o
KTsKKyAgICAgICAgUmVzb3VyY2VMb2FkZXJTZXQ6OmNvbnN0X2l0ZXJhdG9yIGVuZCA9IG1fc3Vi
cmVzb3VyY2VMb2FkZXJzLmVuZCgpOworICAgICAgICBmb3IgKDsgaXQgIT0gZW5kOyArK2l0KSB7
CisgICAgICAgICAgICBmcmFtZUxvYWRlckNsaWVudC0+dHJhbnNmZXJMb2FkaW5nUmVzb3VyY2VG
cm9tUGFnZSgKKyAgICAgICAgICAgICAgICAoKml0KS0+aWRlbnRpZmllcigpLCB0aGlzLCByZXF1
ZXN0LCBvbGRQYWdlKTsKKyAgICAgICAgfQorICAgIH0KK30KKwogdm9pZCBEb2N1bWVudExvYWRl
cjo6aWNvbkxvYWREZWNpc2lvbkF2YWlsYWJsZSgpCiB7CiAgICAgaWYgKG1fZnJhbWUpCmRpZmYg
LS1naXQgYS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudExvYWRlci5oIGIvV2ViQ29yZS9sb2FkZXIv
RG9jdW1lbnRMb2FkZXIuaAppbmRleCA1MDg3OWI3Li5lMWY3NWVkIDEwMDY0NAotLS0gYS9XZWJD
b3JlL2xvYWRlci9Eb2N1bWVudExvYWRlci5oCisrKyBiL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50
TG9hZGVyLmgKQEAgLTQ2LDYgKzQ2LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIGNsYXNz
IEZyYW1lOwogICAgIGNsYXNzIEZyYW1lTG9hZGVyOwogICAgIGNsYXNzIE1haW5SZXNvdXJjZUxv
YWRlcjsKKyAgICBjbGFzcyBQYWdlOwogICAgIGNsYXNzIFJlc291cmNlTG9hZGVyOwogICAgIGNs
YXNzIFNjaGVkdWxlUGFpcjsKICAgICBjbGFzcyBTaGFyZWRCdWZmZXI7CkBAIC0xOTUsNyArMTk2
LDkgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICB2b2lkIHJlbW92ZVBsdWdJblN0cmVh
bUxvYWRlcihSZXNvdXJjZUxvYWRlciopOwogCiAgICAgICAgIHZvaWQgc3VicmVzb3VyY2VMb2Fk
ZXJGaW5pc2hlZExvYWRpbmdPbmVQYXJ0KFJlc291cmNlTG9hZGVyKik7Ci0gICAgICAgIAorCisg
ICAgICAgIHZvaWQgdHJhbnNmZXJMb2FkaW5nUmVzb3VyY2VzRnJvbVBhZ2UoUGFnZSopOworCiAg
ICAgICAgIHZvaWQgc2V0RGVmZXJNYWluUmVzb3VyY2VEYXRhTG9hZChib29sIGRlZmVyKSB7IG1f
ZGVmZXJNYWluUmVzb3VyY2VEYXRhTG9hZCA9IGRlZmVyOyB9CiAgICAgICAgIGJvb2wgZGVmZXJN
YWluUmVzb3VyY2VEYXRhTG9hZCgpIGNvbnN0IHsgcmV0dXJuIG1fZGVmZXJNYWluUmVzb3VyY2VE
YXRhTG9hZDsgfQogICAgICAgICAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xp
ZW50cy5oIGIvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmgKaW5kZXggZjM3Y2JmMy4uZWMz
NzY2OCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmgKKysrIGIvV2Vi
Q29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmgKQEAgLTMzNyw2ICszMzcsNyBAQCBwdWJsaWM6CiAg
ICAgdmlydHVhbCB2b2lkIGRpZFJ1bkluc2VjdXJlQ29udGVudChTZWN1cml0eU9yaWdpbiopIHsg
fQogICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxGcmFtZT4gY3JlYXRlRnJhbWUoY29uc3QgS1VSTCYs
IGNvbnN0IFN0cmluZyYsIEhUTUxGcmFtZU93bmVyRWxlbWVudCosIGNvbnN0IFN0cmluZyYsIGJv
b2wsIGludCwgaW50KSB7IHJldHVybiAwOyB9CiAgICAgdmlydHVhbCB2b2lkIGRpZFRyYW5zZmVy
Q2hpbGRGcmFtZVRvTmV3RG9jdW1lbnQoUGFnZSopIHsgfQorICAgIHZpcnR1YWwgdm9pZCB0cmFu
c2ZlckxvYWRpbmdSZXNvdXJjZUZyb21QYWdlKHVuc2lnbmVkIGxvbmcsIERvY3VtZW50TG9hZGVy
KiwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgUGFnZSopIHsgfQogICAgIHZpcnR1YWwgUGFzc1Jl
ZlB0cjxXaWRnZXQ+IGNyZWF0ZVBsdWdpbihjb25zdCBJbnRTaXplJiwgSFRNTFBsdWdJbkVsZW1l
bnQqLCBjb25zdCBLVVJMJiwgY29uc3QgVmVjdG9yPFN0cmluZz4mLCBjb25zdCBWZWN0b3I8U3Ry
aW5nPiYsIGNvbnN0IFN0cmluZyYsIGJvb2wpIHsgcmV0dXJuIDA7IH0KICAgICB2aXJ0dWFsIFBh
c3NSZWZQdHI8V2lkZ2V0PiBjcmVhdGVKYXZhQXBwbGV0V2lkZ2V0KGNvbnN0IEludFNpemUmLCBI
VE1MQXBwbGV0RWxlbWVudCosIGNvbnN0IEtVUkwmLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYsIGNv
bnN0IFZlY3RvcjxTdHJpbmc+JikgeyByZXR1cm4gMDsgfQogI2lmIEVOQUJMRShQTFVHSU5fUFJP
WFlfRk9SX1ZJREVPKQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3Bw
IGIvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCmluZGV4IDM3N2U1ZjAuLjlkM2I1N2Mg
MTAwNjQ0Ci0tLSBhL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcAorKysgYi9XZWJDb3Jl
L2xvYWRlci9GcmFtZUxvYWRlci5jcHAKQEAgLTE3NDEsNiArMTc0MSwxMyBAQCBib29sIEZyYW1l
TG9hZGVyOjpmcmFtZUhhc0xvYWRlZCgpIGNvbnN0CiAgICAgcmV0dXJuIG1fc3RhdGVNYWNoaW5l
LmNvbW1pdHRlZEZpcnN0UmVhbERvY3VtZW50TG9hZCgpIHx8IChtX3Byb3Zpc2lvbmFsRG9jdW1l
bnRMb2FkZXIgJiYgIW1fc3RhdGVNYWNoaW5lLmNyZWF0aW5nSW5pdGlhbEVtcHR5RG9jdW1lbnQo
KSk7IAogfQogCit2b2lkIEZyYW1lTG9hZGVyOjp0cmFuc2ZlckxvYWRpbmdSZXNvdXJjZXNGcm9t
UGFnZShQYWdlKiBvbGRQYWdlKQoreworICAgIEFTU0VSVChvbGRQYWdlICE9IG1fZnJhbWUtPnBh
Z2UoKSk7CisgICAgaWYgKGlzTG9hZGluZygpKQorICAgICAgICBhY3RpdmVEb2N1bWVudExvYWRl
cigpLT50cmFuc2ZlckxvYWRpbmdSZXNvdXJjZXNGcm9tUGFnZShvbGRQYWdlKTsKK30KKwogdm9p
ZCBGcmFtZUxvYWRlcjo6c2V0RG9jdW1lbnRMb2FkZXIoRG9jdW1lbnRMb2FkZXIqIGxvYWRlcikK
IHsKICAgICBpZiAoIWxvYWRlciAmJiAhbV9kb2N1bWVudExvYWRlcikKZGlmZiAtLWdpdCBhL1dl
YkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmggYi9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5o
CmluZGV4IDllMTFmZDAuLjU3YmEwN2EgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvbG9hZGVyL0ZyYW1l
TG9hZGVyLmgKKysrIGIvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuaApAQCAtNjgsNiArNjgs
NyBAQCBjbGFzcyBIVE1MRm9ybUVsZW1lbnQ7CiBjbGFzcyBJY29uTG9hZGVyOwogY2xhc3MgTmF2
aWdhdGlvbkFjdGlvbjsKIGNsYXNzIE5ldHdvcmtpbmdDb250ZXh0OworY2xhc3MgUGFnZTsKIGNs
YXNzIFByb3RlY3Rpb25TcGFjZTsKIGNsYXNzIFJlc291cmNlRXJyb3I7CiBjbGFzcyBSZXNvdXJj
ZUxvYWRlcjsKQEAgLTEzMiw2ICsxMzMsNyBAQCBwdWJsaWM6CiAgICAgYm9vbCBpc0xvYWRpbmdN
YWluUmVzb3VyY2UoKSBjb25zdCB7IHJldHVybiBtX2lzTG9hZGluZ01haW5SZXNvdXJjZTsgfQog
ICAgIGJvb2wgaXNMb2FkaW5nKCkgY29uc3Q7CiAgICAgYm9vbCBmcmFtZUhhc0xvYWRlZCgpIGNv
bnN0OworICAgIHZvaWQgdHJhbnNmZXJMb2FkaW5nUmVzb3VyY2VzRnJvbVBhZ2UoUGFnZSopOwog
CiAgICAgaW50IG51bVBlbmRpbmdPckxvYWRpbmdSZXF1ZXN0cyhib29sIHJlY3Vyc2UpIGNvbnN0
OwogICAgIFN0cmluZyByZWZlcnJlcigpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9sb2Fk
ZXIvRnJhbWVMb2FkZXJDbGllbnQuaCBiL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyQ2xpZW50
LmgKaW5kZXggZWVlYWQ0YS4uMjQ3NmU5NCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9sb2FkZXIvRnJh
bWVMb2FkZXJDbGllbnQuaAorKysgYi9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlckNsaWVudC5o
CkBAIC0yMzAsNiArMjMwLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICB2aXJ0dWFs
IFBhc3NSZWZQdHI8RnJhbWU+IGNyZWF0ZUZyYW1lKGNvbnN0IEtVUkwmIHVybCwgY29uc3QgU3Ry
aW5nJiBuYW1lLCBIVE1MRnJhbWVPd25lckVsZW1lbnQqIG93bmVyRWxlbWVudCwKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgU3RyaW5nJiByZWZlcnJlciwgYm9vbCBh
bGxvd3NTY3JvbGxpbmcsIGludCBtYXJnaW5XaWR0aCwgaW50IG1hcmdpbkhlaWdodCkgPSAwOwog
ICAgICAgICB2aXJ0dWFsIHZvaWQgZGlkVHJhbnNmZXJDaGlsZEZyYW1lVG9OZXdEb2N1bWVudChQ
YWdlKiBvbGRQYWdlKSA9IDA7CisgICAgICAgIHZpcnR1YWwgdm9pZCB0cmFuc2ZlckxvYWRpbmdS
ZXNvdXJjZUZyb21QYWdlKHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgRG9jdW1lbnRMb2FkZXIq
LCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBQYWdlKiBvbGRQYWdlKSA9IDA7CiAgICAgICAgIHZp
cnR1YWwgUGFzc1JlZlB0cjxXaWRnZXQ+IGNyZWF0ZVBsdWdpbihjb25zdCBJbnRTaXplJiwgSFRN
TFBsdWdJbkVsZW1lbnQqLCBjb25zdCBLVVJMJiwgY29uc3QgVmVjdG9yPFN0cmluZz4mLCBjb25z
dCBWZWN0b3I8U3RyaW5nPiYsIGNvbnN0IFN0cmluZyYsIGJvb2wgbG9hZE1hbnVhbGx5KSA9IDA7
CiAgICAgICAgIHZpcnR1YWwgdm9pZCByZWRpcmVjdERhdGFUb1BsdWdpbihXaWRnZXQqIHBsdWdp
bldpZGdldCkgPSAwOwogCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BhZ2UvRnJhbWUuY3BwIGIvV2Vi
Q29yZS9wYWdlL0ZyYW1lLmNwcAppbmRleCBmNzViYzk4Li5iNzY4MjhiIDEwMDY0NAotLS0gYS9X
ZWJDb3JlL3BhZ2UvRnJhbWUuY3BwCisrKyBiL1dlYkNvcmUvcGFnZS9GcmFtZS5jcHAKQEAgLTc0
NCw2ICs3NDQsMTAgQEAgdm9pZCBGcmFtZTo6dHJhbnNmZXJDaGlsZEZyYW1lVG9OZXdEb2N1bWVu
dCgpCiAgICAgICAgIC8vIExldCBleHRlcm5hbCBjbGllbnRzIHVwZGF0ZSB0aGVtc2VsdmVzLgog
ICAgICAgICBsb2FkZXIoKS0+Y2xpZW50KCktPmRpZFRyYW5zZmVyQ2hpbGRGcmFtZVRvTmV3RG9j
dW1lbnQob2xkUGFnZSk7CiAKKyAgICAgICAgLy8gVXBkYXRlIHJlc291cmNlIHRyYWNraW5nIG5v
dyB0aGF0IGZyYW1lIGNvdWxkIGJlIGluIGEgZGlmZmVyZW50IHBhZ2UuCisgICAgICAgIGlmIChv
bGRQYWdlICE9IG5ld1BhZ2UpCisgICAgICAgICAgICBsb2FkZXIoKS0+dHJhbnNmZXJMb2FkaW5n
UmVzb3VyY2VzRnJvbVBhZ2Uob2xkUGFnZSk7CisKICAgICAgICAgLy8gRG8gdGhlIHNhbWUgZm9y
IGFsbCB0aGUgY2hpbGRyZW4uCiAgICAgICAgIGZvciAoRnJhbWUqIGNoaWxkID0gdHJlZSgpLT5m
aXJzdENoaWxkKCk7IGNoaWxkOyBjaGlsZCA9IGNoaWxkLT50cmVlKCktPm5leHRTaWJsaW5nKCkp
CiAgICAgICAgICAgICBjaGlsZC0+dHJhbnNmZXJDaGlsZEZyYW1lVG9OZXdEb2N1bWVudCgpOwpk
aWZmIC0tZ2l0IGEvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZyBiL1dlYktpdC9jaHJvbWl1bS9D
aGFuZ2VMb2cKaW5kZXggOTk0Nzg3ZS4uZTFkMzQxNCAxMDA2NDQKLS0tIGEvV2ViS2l0L2Nocm9t
aXVtL0NoYW5nZUxvZworKysgYi9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MTUgQEAKKzIwMTAtMTAtMjUgIEplbm4gQnJhaXRod2FpdGUgIDxqZW5uYkBjaHJvbWl1bS5vcmc+
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVzb3Vy
Y2UgdHJhY2tpbmcgZmFpbHVyZSB3aGVuIHRyeWluZyB0byBtb3ZlIGEgZnJhbWUgYmV0d2VlbiBk
b2N1bWVudHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTQ0NzEzCisKKyAgICAgICAgKiBzcmMvRnJhbWVMb2FkZXJDbGllbnRJbXBsLmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6RnJhbWVMb2FkZXJDbGllbnRJbXBsOjp0cmFuc2ZlckxvYWRpbmdSZXNvdXJj
ZUZyb21QYWdlKToKKyAgICAgICAgRW1wdHkgbWV0aG9kLgorICAgICAgICAqIHNyYy9GcmFtZUxv
YWRlckNsaWVudEltcGwuaDoKKwogMjAxMC0xMC0yNSAgU2F0aXNoIFNhbXBhdGggIDxzYXRpc2hA
Y2hyb21pdW0ub3JnPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIGZpeCBmb3IgYSBidWlsZCBicmVh
ayBjYXVzZWQgYnkgbXkgZWFybGllciBwYXRjaC4KZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1
bS9zcmMvRnJhbWVMb2FkZXJDbGllbnRJbXBsLmNwcCBiL1dlYktpdC9jaHJvbWl1bS9zcmMvRnJh
bWVMb2FkZXJDbGllbnRJbXBsLmNwcAppbmRleCBlNDMzZDg2Li5jODFjZmMwIDEwMDY0NAotLS0g
YS9XZWJLaXQvY2hyb21pdW0vc3JjL0ZyYW1lTG9hZGVyQ2xpZW50SW1wbC5jcHAKKysrIGIvV2Vi
S2l0L2Nocm9taXVtL3NyYy9GcmFtZUxvYWRlckNsaWVudEltcGwuY3BwCkBAIC0xMzg1LDYgKzEz
ODUsMTEgQEAgdm9pZCBGcmFtZUxvYWRlckNsaWVudEltcGw6OmRpZFRyYW5zZmVyQ2hpbGRGcmFt
ZVRvTmV3RG9jdW1lbnQoUGFnZSopCiAgICAgbV93ZWJGcmFtZS0+c2V0Q2xpZW50KG5ld1BhcmVu
dC0+Y2xpZW50KCkpOwogfQogCit2b2lkIEZyYW1lTG9hZGVyQ2xpZW50SW1wbDo6dHJhbnNmZXJM
b2FkaW5nUmVzb3VyY2VGcm9tUGFnZSh1bnNpZ25lZCBsb25nLCBEb2N1bWVudExvYWRlciosIGNv
bnN0IFJlc291cmNlUmVxdWVzdCYsIFBhZ2UqKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9
CisKIFBhc3NSZWZQdHI8V2lkZ2V0PiBGcmFtZUxvYWRlckNsaWVudEltcGw6OmNyZWF0ZVBsdWdp
bigKICAgICBjb25zdCBJbnRTaXplJiBzaXplLCAvLyBGSVhNRTogaG93IGRvIHdlIHVzZSB0aGlz
PwogICAgIEhUTUxQbHVnSW5FbGVtZW50KiBlbGVtZW50LApkaWZmIC0tZ2l0IGEvV2ViS2l0L2No
cm9taXVtL3NyYy9GcmFtZUxvYWRlckNsaWVudEltcGwuaCBiL1dlYktpdC9jaHJvbWl1bS9zcmMv
RnJhbWVMb2FkZXJDbGllbnRJbXBsLmgKaW5kZXggNDgzYTcyMi4uMzUyZDE4OSAxMDA2NDQKLS0t
IGEvV2ViS2l0L2Nocm9taXVtL3NyYy9GcmFtZUxvYWRlckNsaWVudEltcGwuaAorKysgYi9XZWJL
aXQvY2hyb21pdW0vc3JjL0ZyYW1lTG9hZGVyQ2xpZW50SW1wbC5oCkBAIC0xODAsNiArMTgwLDcg
QEAgcHVibGljOgogICAgICAgICBjb25zdCBXVEY6OlN0cmluZyYgcmVmZXJyZXIsIGJvb2wgYWxs
b3dzU2Nyb2xsaW5nLAogICAgICAgICBpbnQgbWFyZ2luV2lkdGgsIGludCBtYXJnaW5IZWlnaHQp
OwogICAgIHZpcnR1YWwgdm9pZCBkaWRUcmFuc2ZlckNoaWxkRnJhbWVUb05ld0RvY3VtZW50KFdl
YkNvcmU6OlBhZ2UqKTsKKyAgICB2aXJ0dWFsIHZvaWQgdHJhbnNmZXJMb2FkaW5nUmVzb3VyY2VG
cm9tUGFnZSh1bnNpZ25lZCBsb25nLCBXZWJDb3JlOjpEb2N1bWVudExvYWRlciosIGNvbnN0IFdl
YkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIFdlYkNvcmU6OlBhZ2UqKTsKICAgICB2aXJ0dWFsIFBh
c3NSZWZQdHI8V2ViQ29yZTo6V2lkZ2V0PiBjcmVhdGVQbHVnaW4oCiAgICAgICAgIGNvbnN0IFdl
YkNvcmU6OkludFNpemUmLCBXZWJDb3JlOjpIVE1MUGx1Z0luRWxlbWVudCosIGNvbnN0IFdlYkNv
cmU6OktVUkwmLAogICAgICAgICBjb25zdCBWZWN0b3I8V1RGOjpTdHJpbmc+JiwgY29uc3QgVmVj
dG9yPFdURjo6U3RyaW5nPiYsCmRpZmYgLS1naXQgYS9XZWJLaXQvZWZsL0NoYW5nZUxvZyBiL1dl
YktpdC9lZmwvQ2hhbmdlTG9nCmluZGV4IDQ2YTgwZGYuLjEzYTBhMjYgMTAwNjQ0Ci0tLSBhL1dl
YktpdC9lZmwvQ2hhbmdlTG9nCisrKyBiL1dlYktpdC9lZmwvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MTUgQEAKKzIwMTAtMTAtMjUgIEplbm4gQnJhaXRod2FpdGUgIDxqZW5uYkBjaHJvbWl1bS5vcmc+
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVzb3Vy
Y2UgdHJhY2tpbmcgZmFpbHVyZSB3aGVuIHRyeWluZyB0byBtb3ZlIGEgZnJhbWUgYmV0d2VlbiBk
b2N1bWVudHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTQ0NzEzCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEVmbC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRlckNsaWVudEVmbDo6dHJhbnNmZXJMb2Fk
aW5nUmVzb3VyY2VGcm9tUGFnZSk6CisgICAgICAgIEVtcHR5IG1ldGhvZC4KKyAgICAgICAgKiBX
ZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEVmbC5oOgorCiAyMDEwLTEwLTIyICBTYW0g
V2VpbmlnICA8c2FtQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgQW5kZXJzIENh
cmxzc29uLgpkaWZmIC0tZ2l0IGEvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRl
ckNsaWVudEVmbC5jcHAgYi9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xp
ZW50RWZsLmNwcAppbmRleCA4MjY0YTFkLi5lNjVlYjEzIDEwMDY0NAotLS0gYS9XZWJLaXQvZWZs
L1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50RWZsLmNwcAorKysgYi9XZWJLaXQvZWZs
L1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50RWZsLmNwcApAQCAtMzg0LDYgKzM4NCwx
MCBAQCB2b2lkIEZyYW1lTG9hZGVyQ2xpZW50RWZsOjpkaWRUcmFuc2ZlckNoaWxkRnJhbWVUb05l
d0RvY3VtZW50KFBhZ2UqKQogewogfQogCit2b2lkIEZyYW1lTG9hZGVyQ2xpZW50RWZsOjp0cmFu
c2ZlckxvYWRpbmdSZXNvdXJjZUZyb21QYWdlKHVuc2lnbmVkIGxvbmcsIERvY3VtZW50TG9hZGVy
KiwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgUGFnZSopCit7Cit9CisKIHZvaWQgRnJhbWVMb2Fk
ZXJDbGllbnRFZmw6OnJlZGlyZWN0RGF0YVRvUGx1Z2luKFdpZGdldCogcGx1Z2luV2lkZ2V0KQog
ewogICAgIEFTU0VSVCghbV9wbHVnaW5WaWV3KTsKZGlmZiAtLWdpdCBhL1dlYktpdC9lZmwvV2Vi
Q29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRFZmwuaCBiL1dlYktpdC9lZmwvV2ViQ29yZVN1
cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRFZmwuaAppbmRleCBlOGM3ZTBjLi5jZTI3ZmQ2IDEwMDY0
NAotLS0gYS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50RWZsLmgK
KysrIGIvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEVmbC5oCkBA
IC0xMzUsNiArMTM1LDcgQEAgY2xhc3MgRnJhbWVMb2FkZXJDbGllbnRFZmwgOiBwdWJsaWMgRnJh
bWVMb2FkZXJDbGllbnQgewogICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxGcmFtZT4gY3JlYXRlRnJh
bWUoY29uc3QgS1VSTCYgdXJsLCBjb25zdCBTdHJpbmcmIG5hbWUsIEhUTUxGcmFtZU93bmVyRWxl
bWVudCogb3duZXJFbGVtZW50LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0
IFN0cmluZyYgcmVmZXJyZXIsIGJvb2wgYWxsb3dzU2Nyb2xsaW5nLCBpbnQgbWFyZ2luV2lkdGgs
IGludCBtYXJnaW5IZWlnaHQpOwogICAgIHZpcnR1YWwgdm9pZCBkaWRUcmFuc2ZlckNoaWxkRnJh
bWVUb05ld0RvY3VtZW50KFBhZ2UqKTsKKyAgICB2aXJ0dWFsIHZvaWQgdHJhbnNmZXJMb2FkaW5n
UmVzb3VyY2VGcm9tUGFnZSh1bnNpZ25lZCBsb25nLCBXZWJDb3JlOjpEb2N1bWVudExvYWRlcios
IGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIFdlYkNvcmU6OlBhZ2UqKTsKIAogICAgIHZpcnR1YWwg
UGFzc1JlZlB0cjxXaWRnZXQ+IGNyZWF0ZVBsdWdpbihjb25zdCBJbnRTaXplJiwgSFRNTFBsdWdJ
bkVsZW1lbnQqLCBjb25zdCBLVVJMJiwgY29uc3QgV1RGOjpWZWN0b3I8U3RyaW5nPiYsIGNvbnN0
IFdURjo6VmVjdG9yPFN0cmluZz4mLCBjb25zdCBTdHJpbmcmLCBib29sKTsKICAgICB2aXJ0dWFs
IHZvaWQgcmVkaXJlY3REYXRhVG9QbHVnaW4oV2lkZ2V0KiBwbHVnaW5XaWRnZXQpOwpkaWZmIC0t
Z2l0IGEvV2ViS2l0L2d0ay9DaGFuZ2VMb2cgYi9XZWJLaXQvZ3RrL0NoYW5nZUxvZwppbmRleCBk
MTMwNzY2Li4yNzVhODMwIDEwMDY0NAotLS0gYS9XZWJLaXQvZ3RrL0NoYW5nZUxvZworKysgYi9X
ZWJLaXQvZ3RrL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDEwLTEwLTI1ICBKZW5uIEJy
YWl0aHdhaXRlICA8amVubmJAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlc291cmNlIHRyYWNraW5nIGZhaWx1cmUgd2hlbiB0
cnlpbmcgdG8gbW92ZSBhIGZyYW1lIGJldHdlZW4gZG9jdW1lbnRzCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00NDcxMworCisgICAgICAgICogV2ViQ29y
ZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRHdGsuY3BwOgorICAgICAgICAoV2ViS2l0OjpGcmFt
ZUxvYWRlckNsaWVudDo6dHJhbnNmZXJMb2FkaW5nUmVzb3VyY2VGcm9tUGFnZSk6CisgICAgICAg
IEVtcHR5IG1ldGhvZC4KKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVu
dEd0ay5oOgorCiAyMDEwLTEwLTIyICBTYW0gV2VpbmlnICA8c2FtQHdlYmtpdC5vcmc+CiAKICAg
ICAgICAgUmV2aWV3ZWQgYnkgQW5kZXJzIENhcmxzc29uLgpkaWZmIC0tZ2l0IGEvV2ViS2l0L2d0
ay9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEd0ay5jcHAgYi9XZWJLaXQvZ3RrL1dl
YkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50R3RrLmNwcAppbmRleCA1NGU1YWUyLi5hMGQ1
M2EwIDEwMDY0NAotLS0gYS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xp
ZW50R3RrLmNwcAorKysgYi9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xp
ZW50R3RrLmNwcApAQCAtNjE5LDYgKzYxOSwxMCBAQCB2b2lkIEZyYW1lTG9hZGVyQ2xpZW50Ojpk
aWRUcmFuc2ZlckNoaWxkRnJhbWVUb05ld0RvY3VtZW50KFdlYkNvcmU6OlBhZ2UqKQogICAgIEFT
U0VSVChjb3JlKGdldFZpZXdGcm9tRnJhbWUobV9mcmFtZSkpID09IGNvcmVGcmFtZS0+cGFnZSgp
KTsKIH0KIAordm9pZCBGcmFtZUxvYWRlckNsaWVudDo6dHJhbnNmZXJMb2FkaW5nUmVzb3VyY2VG
cm9tUGFnZSh1bnNpZ25lZCBsb25nLCBXZWJDb3JlOjpEb2N1bWVudExvYWRlciosIGNvbnN0IFdl
YkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIFdlYkNvcmU6OlBhZ2UqKQoreworfQorCiB2b2lkIEZy
YW1lTG9hZGVyQ2xpZW50OjpyZWRpcmVjdERhdGFUb1BsdWdpbihXaWRnZXQqIHBsdWdpbldpZGdl
dCkKIHsKICAgICBBU1NFUlQoIW1fcGx1Z2luVmlldyk7CmRpZmYgLS1naXQgYS9XZWJLaXQvZ3Rr
L1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50R3RrLmggYi9XZWJLaXQvZ3RrL1dlYkNv
cmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50R3RrLmgKaW5kZXggZjA2M2ViOC4uM2JiZGNkMyAx
MDA2NDQKLS0tIGEvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEd0
ay5oCisrKyBiL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRHdGsu
aApAQCAtMTE1LDYgKzExNSw3IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogICAgICAgICB2aXJ0dWFs
IFBhc3NSZWZQdHI8V2ViQ29yZTo6RnJhbWU+IGNyZWF0ZUZyYW1lKGNvbnN0IFdlYkNvcmU6OktV
UkwmIHVybCwgY29uc3QgV1RGOjpTdHJpbmcmIG5hbWUsIFdlYkNvcmU6OkhUTUxGcmFtZU93bmVy
RWxlbWVudCogb3duZXJFbGVtZW50LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBjb25zdCBXVEY6OlN0cmluZyYgcmVmZXJyZXIsIGJvb2wgYWxsb3dzU2Nyb2xsaW5nLCBpbnQg
bWFyZ2luV2lkdGgsIGludCBtYXJnaW5IZWlnaHQpOwogICAgICAgICB2aXJ0dWFsIHZvaWQgZGlk
VHJhbnNmZXJDaGlsZEZyYW1lVG9OZXdEb2N1bWVudChXZWJDb3JlOjpQYWdlKik7CisgICAgICAg
IHZpcnR1YWwgdm9pZCB0cmFuc2ZlckxvYWRpbmdSZXNvdXJjZUZyb21QYWdlKHVuc2lnbmVkIGxv
bmcsIFdlYkNvcmU6OkRvY3VtZW50TG9hZGVyKiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1
ZXN0JiwgV2ViQ29yZTo6UGFnZSopOwogICAgICAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8V2ViQ29y
ZTo6V2lkZ2V0PiBjcmVhdGVQbHVnaW4oY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYsIFdlYkNvcmU6
OkhUTUxQbHVnSW5FbGVtZW50KiwgY29uc3QgV2ViQ29yZTo6S1VSTCYsIGNvbnN0IFdURjo6VmVj
dG9yPFdURjo6U3RyaW5nPiYsIGNvbnN0IFdURjo6VmVjdG9yPFdURjo6U3RyaW5nPiYsIGNvbnN0
IFdURjo6U3RyaW5nJiwgYm9vbCk7CiAgICAgICAgIHZpcnR1YWwgdm9pZCByZWRpcmVjdERhdGFU
b1BsdWdpbihXZWJDb3JlOjpXaWRnZXQqIHBsdWdpbldpZGdldCk7CiAgICAgICAgIHZpcnR1YWwg
UGFzc1JlZlB0cjxXZWJDb3JlOjpXaWRnZXQ+IGNyZWF0ZUphdmFBcHBsZXRXaWRnZXQoY29uc3Qg
V2ViQ29yZTo6SW50U2l6ZSYsIFdlYkNvcmU6OkhUTUxBcHBsZXRFbGVtZW50KiwgY29uc3QgV2Vi
Q29yZTo6S1VSTCYgYmFzZVVSTCwgY29uc3QgV1RGOjpWZWN0b3I8V1RGOjpTdHJpbmc+JiBwYXJh
bU5hbWVzLCBjb25zdCBXVEY6OlZlY3RvcjxXVEY6OlN0cmluZz4mIHBhcmFtVmFsdWVzKTsKZGlm
ZiAtLWdpdCBhL1dlYktpdC9oYWlrdS9DaGFuZ2VMb2cgYi9XZWJLaXQvaGFpa3UvQ2hhbmdlTG9n
CmluZGV4IDE3MmU5Y2UuLjc0NGFkMWMgMTAwNjQ0Ci0tLSBhL1dlYktpdC9oYWlrdS9DaGFuZ2VM
b2cKKysrIGIvV2ViS2l0L2hhaWt1L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDEwLTEw
LTI1ICBKZW5uIEJyYWl0aHdhaXRlICA8amVubmJAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlc291cmNlIHRyYWNraW5nIGZh
aWx1cmUgd2hlbiB0cnlpbmcgdG8gbW92ZSBhIGZyYW1lIGJldHdlZW4gZG9jdW1lbnRzCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00NDcxMworCisgICAg
ICAgICogV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRIYWlrdS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpGcmFtZUxvYWRlckNsaWVudEhhaWt1Ojp0cmFuc2ZlckxvYWRpbmdSZXNvdXJj
ZUZyb21QYWdlKToKKyAgICAgICAgRW1wdHkgbWV0aG9kLgorICAgICAgICAqIFdlYkNvcmVTdXBw
b3J0L0ZyYW1lTG9hZGVyQ2xpZW50SGFpa3UuaDoKKwogMjAxMC0xMC0yMiAgU2FtIFdlaW5pZyAg
PHNhbUB3ZWJraXQub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEFuZGVycyBDYXJsc3Nvbi4K
ZGlmZiAtLWdpdCBhL1dlYktpdC9oYWlrdS9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVu
dEhhaWt1LmNwcCBiL1dlYktpdC9oYWlrdS9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVu
dEhhaWt1LmNwcAppbmRleCAyZGI5NDIyLi4xZDAxYWZiIDEwMDY0NAotLS0gYS9XZWJLaXQvaGFp
a3UvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRIYWlrdS5jcHAKKysrIGIvV2ViS2l0
L2hhaWt1L1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50SGFpa3UuY3BwCkBAIC03NDUs
NiArNzQ1LDEwIEBAIHZvaWQgRnJhbWVMb2FkZXJDbGllbnRIYWlrdTo6ZGlkVHJhbnNmZXJDaGls
ZEZyYW1lVG9OZXdEb2N1bWVudChQYWdlKikKIHsKIH0KIAordm9pZCBGcmFtZUxvYWRlckNsaWVu
dEhhaWt1Ojp0cmFuc2ZlckxvYWRpbmdSZXNvdXJjZUZyb21QYWdlKHVuc2lnbmVkIGxvbmcsIERv
Y3VtZW50TG9hZGVyKiwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgUGFnZSopCit7Cit9CisKIE9i
amVjdENvbnRlbnRUeXBlIEZyYW1lTG9hZGVyQ2xpZW50SGFpa3U6Om9iamVjdENvbnRlbnRUeXBl
KGNvbnN0IEtVUkwmIHVybCwgY29uc3QgU3RyaW5nJiBtaW1lVHlwZSkKIHsKICAgICBub3RJbXBs
ZW1lbnRlZCgpOwpkaWZmIC0tZ2l0IGEvV2ViS2l0L2hhaWt1L1dlYkNvcmVTdXBwb3J0L0ZyYW1l
TG9hZGVyQ2xpZW50SGFpa3UuaCBiL1dlYktpdC9oYWlrdS9XZWJDb3JlU3VwcG9ydC9GcmFtZUxv
YWRlckNsaWVudEhhaWt1LmgKaW5kZXggYjJmODljNy4uNzFjMDE0OSAxMDA2NDQKLS0tIGEvV2Vi
S2l0L2hhaWt1L1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50SGFpa3UuaAorKysgYi9X
ZWJLaXQvaGFpa3UvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRIYWlrdS5oCkBAIC0y
MjIsNiArMjIyLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIEhUTUxGcmFtZU93bmVyRWxlbWVudCosIGNvbnN0IFN0
cmluZyYgcmVmZXJyZXIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgYm9vbCBhbGxvd3NTY3JvbGxpbmcsIGludCBtYXJnaW5XaWR0aCwgaW50IG1hcmdpbkhl
aWdodCk7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBkaWRUcmFuc2ZlckNoaWxkRnJhbWVUb05ld0Rv
Y3VtZW50KFdlYkNvcmU6OlBhZ2UqKTsKKyAgICAgICAgdmlydHVhbCB2b2lkIHRyYW5zZmVyTG9h
ZGluZ1Jlc291cmNlRnJvbVBhZ2UodW5zaWduZWQgbG9uZywgV2ViQ29yZTo6RG9jdW1lbnRMb2Fk
ZXIqLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBXZWJDb3JlOjpQYWdlKik7CiAgICAgICAgIHZp
cnR1YWwgUGFzc1JlZlB0cjxXaWRnZXQ+IGNyZWF0ZVBsdWdpbihjb25zdCBJbnRTaXplJiwgSFRN
TFBsdWdJbkVsZW1lbnQqLCBjb25zdCBLVVJMJiwKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiwgY29uc3QgVmVjdG9y
PFN0cmluZz4mLCBjb25zdCBTdHJpbmcmLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgYm9vbCBsb2FkTWFudWFsbHkpOwpkaWZmIC0tZ2l0IGEvV2ViS2l0
L21hYy9DaGFuZ2VMb2cgYi9XZWJLaXQvbWFjL0NoYW5nZUxvZwppbmRleCA2NGIzOTgwLi45NGJk
NDE4IDEwMDY0NAotLS0gYS9XZWJLaXQvbWFjL0NoYW5nZUxvZworKysgYi9XZWJLaXQvbWFjL0No
YW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDEwLTEwLTI1ICBKZW5uIEJyYWl0aHdhaXRlICA8
amVubmJAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIFJlc291cmNlIHRyYWNraW5nIGZhaWx1cmUgd2hlbiB0cnlpbmcgdG8gbW92
ZSBhIGZyYW1lIGJldHdlZW4gZG9jdW1lbnRzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD00NDcxMworCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2Vi
RnJhbWVMb2FkZXJDbGllbnQuaDoKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxv
YWRlckNsaWVudC5tbToKKyAgICAgICAgKFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpkaWRUcmFuc2Zl
ckNoaWxkRnJhbWVUb05ld0RvY3VtZW50KToKKyAgICAgICAgRW1wdHkgbWV0aG9kLgorICAgICAg
ICAoV2ViRnJhbWVMb2FkZXJDbGllbnQ6OnRyYW5zZmVyTG9hZGluZ1Jlc291cmNlRnJvbVBhZ2Up
OgorICAgICAgICBVcGRhdGUgcmVzb3VyY2UgdHJhY2tpbmcgZm9yIGEgcmVzb3VyY2UgbG9hZCB0
aGF0IGhhcyBiZWVuIHRyYW5zZmVycmVkCisgICAgICAgIHRvIGEgbmV3IHBhZ2UuCisKIDIwMTAt
MTAtMjUgIE9saXZlciBIdW50ICA8b2xpdmVyQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdl
ZCBieSBHYXZpbiBCYXJyYWNsb3VnaC4KZGlmZiAtLWdpdCBhL1dlYktpdC9tYWMvV2ViQ29yZVN1
cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaCBiL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQv
V2ViRnJhbWVMb2FkZXJDbGllbnQuaAppbmRleCAzN2JiODYxLi5jOTQyNTZhIDEwMDY0NAotLS0g
YS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmgKKysrIGIv
V2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oCkBAIC0xOTQs
NiArMTk0LDcgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8V2ViQ29yZTo6RnJh
bWU+IGNyZWF0ZUZyYW1lKGNvbnN0IFdlYkNvcmU6OktVUkwmIHVybCwgY29uc3QgV1RGOjpTdHJp
bmcmIG5hbWUsIFdlYkNvcmU6OkhUTUxGcmFtZU93bmVyRWxlbWVudCosCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgV1RGOjpTdHJpbmcmIHJlZmVycmVyLCBi
b29sIGFsbG93c1Njcm9sbGluZywgaW50IG1hcmdpbldpZHRoLCBpbnQgbWFyZ2luSGVpZ2h0KTsK
ICAgICB2aXJ0dWFsIHZvaWQgZGlkVHJhbnNmZXJDaGlsZEZyYW1lVG9OZXdEb2N1bWVudChXZWJD
b3JlOjpQYWdlKiBvbGRQYWdlKTsKKyAgICB2aXJ0dWFsIHZvaWQgdHJhbnNmZXJMb2FkaW5nUmVz
b3VyY2VGcm9tUGFnZSh1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIFdlYkNvcmU6OkRvY3VtZW50
TG9hZGVyKiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgV2ViQ29yZTo6UGFnZSog
b2xkUGFnZSk7CiAgICAgdmlydHVhbCBQYXNzUmVmUHRyPFdlYkNvcmU6OldpZGdldD4gY3JlYXRl
UGx1Z2luKGNvbnN0IFdlYkNvcmU6OkludFNpemUmLCBXZWJDb3JlOjpIVE1MUGx1Z0luRWxlbWVu
dCosIGNvbnN0IFdlYkNvcmU6OktVUkwmLCBjb25zdCBWZWN0b3I8V1RGOjpTdHJpbmc+JiwKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFZlY3RvcjxXVEY6
OlN0cmluZz4mLCBjb25zdCBXVEY6OlN0cmluZyYsIGJvb2wpOwogICAgIHZpcnR1YWwgdm9pZCBy
ZWRpcmVjdERhdGFUb1BsdWdpbihXZWJDb3JlOjpXaWRnZXQqIHBsdWdpbldpZGdldCk7CmRpZmYg
LS1naXQgYS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lm1t
IGIvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5tbQppbmRl
eCBiMzMyOWNkLi4xODI5YWJjIDEwMDY0NAotLS0gYS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0
L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lm1tCisrKyBiL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQv
V2ViRnJhbWVMb2FkZXJDbGllbnQubW0KQEAgLTEzODUsMTEgKzEzODUsMTggQEAgUGFzc1JlZlB0
cjxGcmFtZT4gV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmNyZWF0ZUZyYW1lKGNvbnN0IEtVUkwmIHVy
bCwgY29uc3QgU3RyaW4KIAogdm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlkVHJhbnNmZXJD
aGlsZEZyYW1lVG9OZXdEb2N1bWVudChQYWdlKiBvbGRQYWdlKQogewotICAgIGlmIChvbGRQYWdl
ID09IGNvcmUobV93ZWJGcmFtZS5nZXQoKSktPnBhZ2UoKSkKLSAgICAgICAgcmV0dXJuOworfQor
Cit2b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50Ojp0cmFuc2ZlckxvYWRpbmdSZXNvdXJjZUZyb21Q
YWdlKHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgRG9jdW1lbnRMb2FkZXIqIGxvYWRlciwgY29u
c3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBQYWdlKiBvbGRQYWdlKQoreworICAgIEFTU0VS
VChvbGRQYWdlICE9IGNvcmUobV93ZWJGcmFtZS5nZXQoKSktPnBhZ2UoKSk7CisKKyAgICBXZWJW
aWV3KiB3ZWJWaWV3ID0gZ2V0V2ViVmlldyhtX3dlYkZyYW1lLmdldCgpKTsKKyAgICBBU1NFUlQo
IVt3ZWJWaWV3IF9vYmplY3RGb3JJZGVudGlmaWVyOmlkZW50aWZpZXJdKTsKKworICAgIGFzc2ln
bklkZW50aWZpZXJUb0luaXRpYWxSZXF1ZXN0KGlkZW50aWZpZXIsIGxvYWRlciwgcmVxdWVzdCk7
CiAKLSAgICAvLyBVcGRhdGUgcmVzb3VyY2UgdHJhY2tpbmcgbm93IHRoYXQgZnJhbWUgaXMgaW4g
YSBkaWZmZXJlbnQgcGFnZS4KLSAgICAvLyBUT0RPKGplbm5iKTogdXBkYXRlIHJlc291cmNlIHRy
YWNraW5nIFtidWcgNDQ3MTNdCisgICAgW2tpdChvbGRQYWdlKSBfcmVtb3ZlT2JqZWN0Rm9ySWRl
bnRpZmllcjppZGVudGlmaWVyXTsKIH0KIAogT2JqZWN0Q29udGVudFR5cGUgV2ViRnJhbWVMb2Fk
ZXJDbGllbnQ6Om9iamVjdENvbnRlbnRUeXBlKGNvbnN0IEtVUkwmIHVybCwgY29uc3QgU3RyaW5n
JiBtaW1lVHlwZSkKZGlmZiAtLWdpdCBhL1dlYktpdC9xdC9DaGFuZ2VMb2cgYi9XZWJLaXQvcXQv
Q2hhbmdlTG9nCmluZGV4IGVjNDFmZGYuLmM3NDIyNTQgMTAwNjQ0Ci0tLSBhL1dlYktpdC9xdC9D
aGFuZ2VMb2cKKysrIGIvV2ViS2l0L3F0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDEw
LTEwLTI1ICBKZW5uIEJyYWl0aHdhaXRlICA8amVubmJAY2hyb21pdW0ub3JnPgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlc291cmNlIHRyYWNraW5n
IGZhaWx1cmUgd2hlbiB0cnlpbmcgdG8gbW92ZSBhIGZyYW1lIGJldHdlZW4gZG9jdW1lbnRzCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00NDcxMworCisg
ICAgICAgICogV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRRdC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpGcmFtZUxvYWRlckNsaWVudFF0Ojp0cmFuc2ZlckxvYWRpbmdSZXNvdXJjZUZy
b21QYWdlKToKKyAgICAgICAgRW10cHkgbWV0aG9kLgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0
L0ZyYW1lTG9hZGVyQ2xpZW50UXQuaDoKKwogMjAxMC0xMC0yNSAgTm8nYW0gUm9zZW50aGFsICA8
bm9hbS5yb3NlbnRoYWxAbm9raWEuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEtlbm5ldGgg
Um9oZGUgQ2hyaXN0aWFuc2VuLgpkaWZmIC0tZ2l0IGEvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0
L0ZyYW1lTG9hZGVyQ2xpZW50UXQuY3BwIGIvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0ZyYW1l
TG9hZGVyQ2xpZW50UXQuY3BwCmluZGV4IDIzMTY0ODEuLmExNDQxYTggMTAwNjQ0Ci0tLSBhL1dl
YktpdC9xdC9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudFF0LmNwcAorKysgYi9XZWJL
aXQvcXQvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRRdC5jcHAKQEAgLTEyNzIsNiAr
MTI3MiwxMCBAQCB2b2lkIEZyYW1lTG9hZGVyQ2xpZW50UXQ6OmRpZFRyYW5zZmVyQ2hpbGRGcmFt
ZVRvTmV3RG9jdW1lbnQoUGFnZSopCiAgICAgfQogfQogCit2b2lkIEZyYW1lTG9hZGVyQ2xpZW50
UXQ6OnRyYW5zZmVyTG9hZGluZ1Jlc291cmNlRnJvbVBhZ2UodW5zaWduZWQgbG9uZywgRG9jdW1l
bnRMb2FkZXIqLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBQYWdlKikKK3sKK30KKwogT2JqZWN0
Q29udGVudFR5cGUgRnJhbWVMb2FkZXJDbGllbnRRdDo6b2JqZWN0Q29udGVudFR5cGUoY29uc3Qg
S1VSTCYgdXJsLCBjb25zdCBTdHJpbmcmIF9taW1lVHlwZSkKIHsKIC8vICAgIHFEZWJ1ZygpPDwi
ICsrKysrKysrKysrKysrKysgdXJsIGlzICI8PHVybC5wcmV0dHlVUkwoKTw8IiwgbWltZSA9ICI8
PF9taW1lVHlwZTsKZGlmZiAtLWdpdCBhL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9GcmFtZUxv
YWRlckNsaWVudFF0LmggYi9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGll
bnRRdC5oCmluZGV4IDkxMDEzZGYuLjMxM2EzMjEgMTAwNjQ0Ci0tLSBhL1dlYktpdC9xdC9XZWJD
b3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudFF0LmgKKysrIGIvV2ViS2l0L3F0L1dlYkNvcmVT
dXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50UXQuaApAQCAtMTk5LDYgKzE5OSw3IEBAIHB1YmxpYzoK
ICAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8RnJhbWU+IGNyZWF0ZUZyYW1lKGNvbnN0IEtVUkwmIHVy
bCwgY29uc3QgU3RyaW5nJiBuYW1lLCBIVE1MRnJhbWVPd25lckVsZW1lbnQqIG93bmVyRWxlbWVu
dCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBTdHJpbmcmIHJlZmVycmVy
LCBib29sIGFsbG93c1Njcm9sbGluZywgaW50IG1hcmdpbldpZHRoLCBpbnQgbWFyZ2luSGVpZ2h0
KTsKICAgICB2aXJ0dWFsIHZvaWQgZGlkVHJhbnNmZXJDaGlsZEZyYW1lVG9OZXdEb2N1bWVudChX
ZWJDb3JlOjpQYWdlKik7CisgICAgdmlydHVhbCB2b2lkIHRyYW5zZmVyTG9hZGluZ1Jlc291cmNl
RnJvbVBhZ2UodW5zaWduZWQgbG9uZywgV2ViQ29yZTo6RG9jdW1lbnRMb2FkZXIqLCBjb25zdCBX
ZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBXZWJDb3JlOjpQYWdlKik7CiAgICAgdmlydHVhbCBQ
YXNzUmVmUHRyPFdpZGdldD4gY3JlYXRlUGx1Z2luKGNvbnN0IEludFNpemUmLCBIVE1MUGx1Z0lu
RWxlbWVudCosIGNvbnN0IEtVUkwmLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYsIGNvbnN0IFZlY3Rv
cjxTdHJpbmc+JiwgY29uc3QgU3RyaW5nJiwgYm9vbCk7CiAgICAgdmlydHVhbCB2b2lkIHJlZGly
ZWN0RGF0YVRvUGx1Z2luKFdpZGdldCogcGx1Z2luV2lkZ2V0KTsKIApkaWZmIC0tZ2l0IGEvV2Vi
S2l0L3dpbi9DaGFuZ2VMb2cgYi9XZWJLaXQvd2luL0NoYW5nZUxvZwppbmRleCBiNzFlMjMyLi4z
ZWU5MTJkIDEwMDY0NAotLS0gYS9XZWJLaXQvd2luL0NoYW5nZUxvZworKysgYi9XZWJLaXQvd2lu
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDEwLTEwLTI1ICBKZW5uIEJyYWl0aHdhaXRl
ICA8amVubmJAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIFJlc291cmNlIHRyYWNraW5nIGZhaWx1cmUgd2hlbiB0cnlpbmcgdG8g
bW92ZSBhIGZyYW1lIGJldHdlZW4gZG9jdW1lbnRzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD00NDcxMworCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQv
V2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwOgorICAgICAgICAoV2ViRnJhbWVMb2FkZXJDbGllbnQ6
OnRyYW5zZmVyTG9hZGluZ1Jlc291cmNlRnJvbVBhZ2UpOgorICAgICAgICBFbXB0eSBtZXRob2Qu
CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaDoKKwogMjAx
MC0xMC0yNSAgUGF0cmljayBHYW5zdGVyZXIgIDxwYXJvZ2FAd2Via2l0Lm9yZz4KIAogICAgICAg
ICBSZXZpZXdlZCBieSBEYXZpZCBLaWx6ZXIuCmRpZmYgLS1naXQgYS9XZWJLaXQvd2luL1dlYkNv
cmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcCBiL1dlYktpdC93aW4vV2ViQ29yZVN1
cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCmluZGV4IDE5M2Y2ODUuLmY0OTk4OTIgMTAw
NjQ0Ci0tLSBhL1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQu
Y3BwCisrKyBiL1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQu
Y3BwCkBAIC03MzcsNiArNzM3LDEwIEBAIHZvaWQgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpZFRy
YW5zZmVyQ2hpbGRGcmFtZVRvTmV3RG9jdW1lbnQoUGFnZSopCiAgICAgICAgIG1fd2ViRnJhbWUt
PnNldFdlYlZpZXcod2ViVmlldyk7CiB9CiAKK3ZvaWQgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OnRy
YW5zZmVyTG9hZGluZ1Jlc291cmNlRnJvbVBhZ2UodW5zaWduZWQgbG9uZywgRG9jdW1lbnRMb2Fk
ZXIqLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBQYWdlKikKK3sKK30KKwogUGFzc1JlZlB0cjxG
cmFtZT4gV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmNyZWF0ZUZyYW1lKGNvbnN0IEtVUkwmIFVSTCwg
Y29uc3QgU3RyaW5nJiBuYW1lLCBIVE1MRnJhbWVPd25lckVsZW1lbnQqIG93bmVyRWxlbWVudCwg
Y29uc3QgU3RyaW5nJiByZWZlcnJlcikKIHsKICAgICBGcmFtZSogY29yZUZyYW1lID0gY29yZSht
X3dlYkZyYW1lKTsKZGlmZiAtLWdpdCBhL1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRnJh
bWVMb2FkZXJDbGllbnQuaCBiL1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2Fk
ZXJDbGllbnQuaAppbmRleCBkNGYxNTIzLi5hODdjYTM1IDEwMDY0NAotLS0gYS9XZWJLaXQvd2lu
L1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmgKKysrIGIvV2ViS2l0L3dpbi9X
ZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oCkBAIC0xMTMsNiArMTEzLDcgQEAg
cHVibGljOgogICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxXZWJDb3JlOjpGcmFtZT4gY3JlYXRlRnJh
bWUoY29uc3QgV2ViQ29yZTo6S1VSTCYgdXJsLCBjb25zdCBXVEY6OlN0cmluZyYgbmFtZSwgV2Vi
Q29yZTo6SFRNTEZyYW1lT3duZXJFbGVtZW50KiBvd25lckVsZW1lbnQsCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgY29uc3QgV1RGOjpTdHJpbmcmIHJlZmVycmVyLCBib29sIGFsbG93
c1Njcm9sbGluZywgaW50IG1hcmdpbldpZHRoLCBpbnQgbWFyZ2luSGVpZ2h0KTsKICAgICB2aXJ0
dWFsIHZvaWQgZGlkVHJhbnNmZXJDaGlsZEZyYW1lVG9OZXdEb2N1bWVudChXZWJDb3JlOjpQYWdl
Kik7CisgICAgdmlydHVhbCB2b2lkIHRyYW5zZmVyTG9hZGluZ1Jlc291cmNlRnJvbVBhZ2UodW5z
aWduZWQgbG9uZywgV2ViQ29yZTo6RG9jdW1lbnRMb2FkZXIqLCBjb25zdCBXZWJDb3JlOjpSZXNv
dXJjZVJlcXVlc3QmLCBXZWJDb3JlOjpQYWdlKik7CiAgICAgdmlydHVhbCBQYXNzUmVmUHRyPFdl
YkNvcmU6OldpZGdldD4gY3JlYXRlUGx1Z2luKGNvbnN0IFdlYkNvcmU6OkludFNpemUmLCBXZWJD
b3JlOjpIVE1MUGx1Z0luRWxlbWVudCosIGNvbnN0IFdlYkNvcmU6OktVUkwmLCBjb25zdCBWZWN0
b3I8V1RGOjpTdHJpbmc+JiwgY29uc3QgVmVjdG9yPFdURjo6U3RyaW5nPiYsIGNvbnN0IFdURjo6
U3RyaW5nJiwgYm9vbCBsb2FkTWFudWFsbHkpOwogICAgIHZpcnR1YWwgdm9pZCByZWRpcmVjdERh
dGFUb1BsdWdpbihXZWJDb3JlOjpXaWRnZXQqIHBsdWdpbldpZGdldCk7CiAKZGlmZiAtLWdpdCBh
L1dlYktpdC93aW5jZS9DaGFuZ2VMb2cgYi9XZWJLaXQvd2luY2UvQ2hhbmdlTG9nCmluZGV4IGJl
MmE0ZDguLjU1NDNjNmYgMTAwNjQ0Ci0tLSBhL1dlYktpdC93aW5jZS9DaGFuZ2VMb2cKKysrIGIv
V2ViS2l0L3dpbmNlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDEwLTEwLTI1ICBKZW5u
IEJyYWl0aHdhaXRlICA8amVubmJAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlc291cmNlIHRyYWNraW5nIGZhaWx1cmUgd2hl
biB0cnlpbmcgdG8gbW92ZSBhIGZyYW1lIGJldHdlZW4gZG9jdW1lbnRzCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00NDcxMworCisgICAgICAgICogV2Vi
Q29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRXaW5DRS5jcHA6CisgICAgICAgIChXZWJLaXQ6
OkZyYW1lTG9hZGVyQ2xpZW50V2luQ0U6OnRyYW5zZmVyTG9hZGluZ1Jlc291cmNlRnJvbVBhZ2Up
OgorICAgICAgICBFbXB0eSBtZXRob2QuCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvRnJhbWVM
b2FkZXJDbGllbnRXaW5DRS5oOgorCiAyMDEwLTEwLTI1ICBQYXRyaWNrIEdhbnN0ZXJlciAgPHBh
cm9nYUB3ZWJraXQub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IERhdmlkIEtpbHplci4KZGlm
ZiAtLWdpdCBhL1dlYktpdC93aW5jZS9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudFdp
bkNFLmNwcCBiL1dlYktpdC93aW5jZS9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudFdp
bkNFLmNwcAppbmRleCBmZTM0YWI0Li4wNWYxMjE5IDEwMDY0NAotLS0gYS9XZWJLaXQvd2luY2Uv
V2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRXaW5DRS5jcHAKKysrIGIvV2ViS2l0L3dp
bmNlL1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50V2luQ0UuY3BwCkBAIC0xNjUsNiAr
MTY1LDEwIEBAIHZvaWQgRnJhbWVMb2FkZXJDbGllbnRXaW5DRTo6ZGlkVHJhbnNmZXJDaGlsZEZy
YW1lVG9OZXdEb2N1bWVudChQYWdlKikKIHsKIH0KIAordm9pZCBGcmFtZUxvYWRlckNsaWVudFdp
bkNFOjp0cmFuc2ZlckxvYWRpbmdSZXNvdXJjZUZyb21QYWdlKHVuc2lnbmVkIGxvbmcsIERvY3Vt
ZW50TG9hZGVyKiwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgUGFnZSopCit7Cit9CisKIHZvaWQg
RnJhbWVMb2FkZXJDbGllbnRXaW5DRTo6cmVkaXJlY3REYXRhVG9QbHVnaW4oV2lkZ2V0KiBwbHVn
aW5XaWRnZXQpCiB7CiAgICAgQVNTRVJUKCFtX3BsdWdpblZpZXcpOwpkaWZmIC0tZ2l0IGEvV2Vi
S2l0L3dpbmNlL1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50V2luQ0UuaCBiL1dlYktp
dC93aW5jZS9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudFdpbkNFLmgKaW5kZXggYmY1
ZWFmYi4uYzE4MTljMiAxMDA2NDQKLS0tIGEvV2ViS2l0L3dpbmNlL1dlYkNvcmVTdXBwb3J0L0Zy
YW1lTG9hZGVyQ2xpZW50V2luQ0UuaAorKysgYi9XZWJLaXQvd2luY2UvV2ViQ29yZVN1cHBvcnQv
RnJhbWVMb2FkZXJDbGllbnRXaW5DRS5oCkBAIC0xMDksNiArMTA5LDcgQEAgcHVibGljOgogICAg
IHZpcnR1YWwgUGFzc1JlZlB0cjxXZWJDb3JlOjpGcmFtZT4gY3JlYXRlRnJhbWUoY29uc3QgV2Vi
Q29yZTo6S1VSTCYgdXJsLCBjb25zdCBXVEY6OlN0cmluZyYgbmFtZSwgV2ViQ29yZTo6SFRNTEZy
YW1lT3duZXJFbGVtZW50KiBvd25lckVsZW1lbnQsCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgY29uc3QgV1RGOjpTdHJpbmcmIHJlZmVycmVyLCBib29sIGFsbG93c1Njcm9sbGluZywg
aW50IG1hcmdpbldpZHRoLCBpbnQgbWFyZ2luSGVpZ2h0KTsKICAgICB2aXJ0dWFsIHZvaWQgZGlk
VHJhbnNmZXJDaGlsZEZyYW1lVG9OZXdEb2N1bWVudChXZWJDb3JlOjpQYWdlKik7CisgICAgdmly
dHVhbCB2b2lkIHRyYW5zZmVyTG9hZGluZ1Jlc291cmNlRnJvbVBhZ2UodW5zaWduZWQgbG9uZywg
V2ViQ29yZTo6RG9jdW1lbnRMb2FkZXIqLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3Qm
LCBXZWJDb3JlOjpQYWdlKik7CiAgICAgdmlydHVhbCBQYXNzUmVmUHRyPFdlYkNvcmU6OldpZGdl
dD4gY3JlYXRlUGx1Z2luKGNvbnN0IFdlYkNvcmU6OkludFNpemUmLCBXZWJDb3JlOjpIVE1MUGx1
Z0luRWxlbWVudCosIGNvbnN0IFdlYkNvcmU6OktVUkwmLCBjb25zdCBXVEY6OlZlY3RvcjxXVEY6
OlN0cmluZz4mLCBjb25zdCBXVEY6OlZlY3RvcjxXVEY6OlN0cmluZz4mLCBjb25zdCBXVEY6OlN0
cmluZyYsIGJvb2wpOwogICAgIHZpcnR1YWwgdm9pZCByZWRpcmVjdERhdGFUb1BsdWdpbihXZWJD
b3JlOjpXaWRnZXQqIHBsdWdpbldpZGdldCk7CiAgICAgdmlydHVhbCBQYXNzUmVmUHRyPFdlYkNv
cmU6OldpZGdldD4gY3JlYXRlSmF2YUFwcGxldFdpZGdldChjb25zdCBXZWJDb3JlOjpJbnRTaXpl
JiwgV2ViQ29yZTo6SFRNTEFwcGxldEVsZW1lbnQqLCBjb25zdCBXZWJDb3JlOjpLVVJMJiBiYXNl
VVJMLCBjb25zdCBXVEY6OlZlY3RvcjxXVEY6OlN0cmluZz4mIHBhcmFtTmFtZXMsIGNvbnN0IFdU
Rjo6VmVjdG9yPFdURjo6U3RyaW5nPiYgcGFyYW1WYWx1ZXMpOwpkaWZmIC0tZ2l0IGEvV2ViS2l0
L3d4L0NoYW5nZUxvZyBiL1dlYktpdC93eC9DaGFuZ2VMb2cKaW5kZXggNmFhOWNlNC4uYmM1NjFk
MSAxMDA2NDQKLS0tIGEvV2ViS2l0L3d4L0NoYW5nZUxvZworKysgYi9XZWJLaXQvd3gvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTAtMTAtMjUgIEplbm4gQnJhaXRod2FpdGUgIDxqZW5u
YkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgUmVzb3VyY2UgdHJhY2tpbmcgZmFpbHVyZSB3aGVuIHRyeWluZyB0byBtb3ZlIGEg
ZnJhbWUgYmV0d2VlbiBkb2N1bWVudHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTQ0NzEzCisKKyAgICAgICAgKiBXZWJLaXRTdXBwb3J0L0ZyYW1lTG9h
ZGVyQ2xpZW50V3guY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXJDbGllbnRXeDo6
dHJhbnNmZXJMb2FkaW5nUmVzb3VyY2VGcm9tUGFnZSk6CisgICAgICAgIEVtcHR5IG1ldGhvZC4K
KyAgICAgICAgKiBXZWJLaXRTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50V3guaDoKKwogMjAxMC0x
MC0yMiAgU2FtIFdlaW5pZyAgPHNhbUB3ZWJraXQub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5
IEFuZGVycyBDYXJsc3Nvbi4KZGlmZiAtLWdpdCBhL1dlYktpdC93eC9XZWJLaXRTdXBwb3J0L0Zy
YW1lTG9hZGVyQ2xpZW50V3guY3BwIGIvV2ViS2l0L3d4L1dlYktpdFN1cHBvcnQvRnJhbWVMb2Fk
ZXJDbGllbnRXeC5jcHAKaW5kZXggNDFmMGY4Zi4uMGU0NzFjYSAxMDA2NDQKLS0tIGEvV2ViS2l0
L3d4L1dlYktpdFN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRXeC5jcHAKKysrIGIvV2ViS2l0L3d4
L1dlYktpdFN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRXeC5jcHAKQEAgLTg2Myw2ICs4NjMsMTAg
QEAgdm9pZCBGcmFtZUxvYWRlckNsaWVudFd4OjpkaWRUcmFuc2ZlckNoaWxkRnJhbWVUb05ld0Rv
Y3VtZW50KFBhZ2UqKQogewogfQogCit2b2lkIEZyYW1lTG9hZGVyQ2xpZW50V3g6OnRyYW5zZmVy
TG9hZGluZ1Jlc291cmNlRnJvbVBhZ2UodW5zaWduZWQgbG9uZywgRG9jdW1lbnRMb2FkZXIqLCBj
b25zdCBSZXNvdXJjZVJlcXVlc3QmLCBQYWdlKikKK3sKK30KKwogT2JqZWN0Q29udGVudFR5cGUg
RnJhbWVMb2FkZXJDbGllbnRXeDo6b2JqZWN0Q29udGVudFR5cGUoY29uc3QgS1VSTCYgdXJsLCBj
b25zdCBTdHJpbmcmIG1pbWVUeXBlKQogewogICAgIG5vdEltcGxlbWVudGVkKCk7CmRpZmYgLS1n
aXQgYS9XZWJLaXQvd3gvV2ViS2l0U3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudFd4LmggYi9XZWJL
aXQvd3gvV2ViS2l0U3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudFd4LmgKaW5kZXggYmI4Mzc4NC4u
YjE5NjdmMiAxMDA2NDQKLS0tIGEvV2ViS2l0L3d4L1dlYktpdFN1cHBvcnQvRnJhbWVMb2FkZXJD
bGllbnRXeC5oCisrKyBiL1dlYktpdC93eC9XZWJLaXRTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50
V3guaApAQCAtMjA0LDYgKzIwNCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgdmly
dHVhbCBQYXNzUmVmUHRyPEZyYW1lPiBjcmVhdGVGcmFtZShjb25zdCBLVVJMJiB1cmwsIGNvbnN0
IFN0cmluZyYgbmFtZSwgSFRNTEZyYW1lT3duZXJFbGVtZW50KiBvd25lckVsZW1lbnQsCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFN0cmluZyYgcmVmZXJyZXIsIGJv
b2wgYWxsb3dzU2Nyb2xsaW5nLCBpbnQgbWFyZ2luV2lkdGgsIGludCBtYXJnaW5IZWlnaHQpOwog
ICAgICAgICB2aXJ0dWFsIHZvaWQgZGlkVHJhbnNmZXJDaGlsZEZyYW1lVG9OZXdEb2N1bWVudChQ
YWdlKik7CisgICAgICAgIHZpcnR1YWwgdm9pZCB0cmFuc2ZlckxvYWRpbmdSZXNvdXJjZUZyb21Q
YWdlKHVuc2lnbmVkIGxvbmcsIERvY3VtZW50TG9hZGVyKiwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0
JiwgUGFnZSopOwogICAgICAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8V2lkZ2V0PiBjcmVhdGVQbHVn
aW4oY29uc3QgSW50U2l6ZSYsIEhUTUxQbHVnSW5FbGVtZW50KiwgY29uc3QgS1VSTCYsIGNvbnN0
IFZlY3RvcjxTdHJpbmc+JiwgY29uc3QgVmVjdG9yPFN0cmluZz4mLCBjb25zdCBTdHJpbmcmLCBi
b29sIGxvYWRNYW51YWxseSkgOwogICAgICAgICB2aXJ0dWFsIHZvaWQgcmVkaXJlY3REYXRhVG9Q
bHVnaW4oV2lkZ2V0KiBwbHVnaW5XaWRnZXQpOwogICAgICAgICB2aXJ0dWFsIFJlc291cmNlRXJy
b3IgcGx1Z2luV2lsbEhhbmRsZUxvYWRFcnJvcihjb25zdCBSZXNvdXJjZVJlc3BvbnNlJik7CmRp
ZmYgLS1naXQgYS9XZWJLaXQyL0NoYW5nZUxvZyBiL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IDNj
Y2Q3NzUuLjQ2MDA1MWEgMTAwNjQ0Ci0tLSBhL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1dlYktp
dDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTAtMTAtMjUgIEplbm4gQnJhaXRod2Fp
dGUgIDxqZW5uYkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgUmVzb3VyY2UgdHJhY2tpbmcgZmFpbHVyZSB3aGVuIHRyeWluZyB0
byBtb3ZlIGEgZnJhbWUgYmV0d2VlbiBkb2N1bWVudHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ0NzEzCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcDoKKyAgICAgICAgKFdlYktpdDo6
V2ViRnJhbWVMb2FkZXJDbGllbnQ6OnRyYW5zZmVyTG9hZGluZ1Jlc291cmNlRnJvbVBhZ2UpOgor
ICAgICAgICBFbXB0eSBtZXRob2QuCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9XZWJGcmFtZUxvYWRlckNsaWVudC5oOgorCiAyMDEwLTEwLTI1ICBEYW4gQmVybnN0ZWluICA8
bWl0ekBhcHBsZS5jb20+CiAKICAgICAgICAgTm9uLUNhcmJvbiBidWlsZCBmaXguCmRpZmYgLS1n
aXQgYS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGll
bnQuY3BwIGIvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVy
Q2xpZW50LmNwcAppbmRleCBkYTNhNzNiLi43ZTM4NWQwIDEwMDY0NAotLS0gYS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCisrKyBiL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAK
QEAgLTk2OSw2ICs5NjksMTEgQEAgdm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlkVHJhbnNm
ZXJDaGlsZEZyYW1lVG9OZXdEb2N1bWVudChQYWdlKikKICAgICBub3RJbXBsZW1lbnRlZCgpOwog
fQogCit2b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50Ojp0cmFuc2ZlckxvYWRpbmdSZXNvdXJjZUZy
b21QYWdlKHVuc2lnbmVkIGxvbmcsIERvY3VtZW50TG9hZGVyKiwgY29uc3QgUmVzb3VyY2VSZXF1
ZXN0JiwgUGFnZSopCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwogUGFzc1JlZlB0cjxX
aWRnZXQ+IFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpjcmVhdGVQbHVnaW4oY29uc3QgSW50U2l6ZSYs
IEhUTUxQbHVnSW5FbGVtZW50KiBwbHVnaW5FbGVtZW50LCBjb25zdCBLVVJMJiB1cmwsIGNvbnN0
IFZlY3RvcjxTdHJpbmc+JiBwYXJhbU5hbWVzLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgcGFyYW1W
YWx1ZXMsIGNvbnN0IFN0cmluZyYgbWltZVR5cGUsIGJvb2wgbG9hZE1hbnVhbGx5KQogewogICAg
IEFTU0VSVChwYXJhbU5hbWVzLnNpemUoKSA9PSBwYXJhbVZhbHVlcy5zaXplKCkpOwpkaWZmIC0t
Z2l0IGEvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xp
ZW50LmggYi9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJD
bGllbnQuaAppbmRleCAxYWJkYWY3Li44NjZhMDcwIDEwMDY0NAotLS0gYS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaAorKysgYi9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaApAQCAtMTc2
LDYgKzE3Niw3IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCBQYXNzUmVmUHRyPFdlYkNvcmU6OkZy
YW1lPiBjcmVhdGVGcmFtZShjb25zdCBXZWJDb3JlOjpLVVJMJiB1cmwsIGNvbnN0IFN0cmluZyYg
bmFtZSwgV2ViQ29yZTo6SFRNTEZyYW1lT3duZXJFbGVtZW50KiBvd25lckVsZW1lbnQsCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBTdHJpbmcmIHJlZmVy
cmVyLCBib29sIGFsbG93c1Njcm9sbGluZywgaW50IG1hcmdpbldpZHRoLCBpbnQgbWFyZ2luSGVp
Z2h0KTsKICAgICB2aXJ0dWFsIHZvaWQgZGlkVHJhbnNmZXJDaGlsZEZyYW1lVG9OZXdEb2N1bWVu
dChXZWJDb3JlOjpQYWdlKik7CisgICAgdmlydHVhbCB2b2lkIHRyYW5zZmVyTG9hZGluZ1Jlc291
cmNlRnJvbVBhZ2UodW5zaWduZWQgbG9uZywgV2ViQ29yZTo6RG9jdW1lbnRMb2FkZXIqLCBjb25z
dCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBXZWJDb3JlOjpQYWdlKik7CiAgICAgCiAgICAg
dmlydHVhbCBQYXNzUmVmUHRyPFdlYkNvcmU6OldpZGdldD4gY3JlYXRlUGx1Z2luKGNvbnN0IFdl
YkNvcmU6OkludFNpemUmLCBXZWJDb3JlOjpIVE1MUGx1Z0luRWxlbWVudCosIGNvbnN0IFdlYkNv
cmU6OktVUkwmLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYsIGNvbnN0IFZlY3RvcjxTdHJpbmc+Jiwg
Y29uc3QgU3RyaW5nJiwgYm9vbCBsb2FkTWFudWFsbHkpOwogICAgIHZpcnR1YWwgdm9pZCByZWRp
cmVjdERhdGFUb1BsdWdpbihXZWJDb3JlOjpXaWRnZXQqIHBsdWdpbldpZGdldCk7Cg==
</data>
<flag name="review"
          id="61951"
          type_id="1"
          status="+"
          setter="dimich"
    />
    <flag name="commit-queue"
          id="61952"
          type_id="3"
          status="-"
          setter="commit-queue"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>71933</attachid>
            <date>2010-10-26 13:30:53 -0700</date>
            <delta_ts>2010-10-26 14:10:59 -0700</delta_ts>
            <desc>patch to fix release version build error</desc>
            <filename>patch44713-5.txt</filename>
            <type>text/plain</type>
            <size>35525</size>
            <attacher name="Jenn Braithwaite">jennb</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBjMjMxYjkwLi4wNjQyOTgzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTAtMTAt
MjUgIEplbm4gQnJhaXRod2FpdGUgIDxqZW5uYkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVzb3VyY2UgdHJhY2tpbmcgZmFp
bHVyZSB3aGVuIHRyeWluZyB0byBtb3ZlIGEgZnJhbWUgYmV0d2VlbiBkb2N1bWVudHMKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ0NzEzCisKKyAgICAg
ICAgKiBmYXN0L2ZyYW1lcy9pZnJhbWUtcmVwYXJlbnRpbmctZmFpbC1sb2FkLWV4cGVjdGVkLnR4
dDogQWRkZWQuCisgICAgICAgICogZmFzdC9mcmFtZXMvaWZyYW1lLXJlcGFyZW50aW5nLWZhaWwt
bG9hZC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvU2tpcHBlZDoKKyAgICAg
ICAgUmUtZW5hYmxlZCB0ZXN0IHRoYXQgZmFpbGVkIGR1ZSB0byB0aGlzIGJ1Zy4KKwogMjAxMC0x
MC0yNSAgS2VubmV0aCBSdXNzZWxsICA8a2JyQGdvb2dsZS5jb20+CiAKICAgICAgICAgVW5yZXZp
ZXdlZCwgdGVzdCBleHBlY3RhdGlvbnMgdXBkYXRlLiBUZW1wb3JhcmlseSBXZWJHTCBsYXlvdXQK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZnJhbWVzL2lmcmFtZS1yZXBhcmVudGluZy1m
YWlsLWxvYWQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9mcmFtZXMvaWZyYW1lLXJl
cGFyZW50aW5nLWZhaWwtbG9hZC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMC4uMmUxY2VlMAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qv
ZnJhbWVzL2lmcmFtZS1yZXBhcmVudGluZy1mYWlsLWxvYWQtZXhwZWN0ZWQudHh0CkBAIC0wLDAg
KzEgQEAKK1RoaXMgdGVzdCBhZG9wdHMgYW4gaWZyYW1lIGludG8gYSBzZWNvbmQgcGFnZSwgdGhl
biBjbG9zZXMgdGhhdCBwYWdlLCBjYW5jZWxsaW5nIHRoYXQgaWZyYW1lIGxvYWQuIFRoZSBjYW5j
ZWxsZWQgbG9hZCBpcyB0cmVhdGVkIGFzIGEgZmFpbGVkIGxvYWQuIFRoaXMgdGVzdCB3aWxsIGNy
YXNoIGlmIHJlc291cmNlIHRyYWNraW5nIGhhcyBub3QgYmVlbiB1cGRhdGVkIGFmdGVyIHRoZSBp
ZnJhbWUgaGFzIGJlZW4gYWRvcHRlZCB0byBhIGRpZmZlcmVudCBwYWdlIGJlY2F1c2UgdGhlIGZh
aWxlZCBsb2FkIHdpbGwgYmUgcmVwb3J0ZWQgdG8gdGhlIHdyb25nIHBsYWNlLgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvZmFzdC9mcmFtZXMvaWZyYW1lLXJlcGFyZW50aW5nLWZhaWwtbG9hZC5o
dG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9mcmFtZXMvaWZyYW1lLXJlcGFyZW50aW5nLWZhaWwtbG9h
ZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQ2NmM0ZGEKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2ZyYW1lcy9pZnJhbWUtcmVwYXJlbnRpbmct
ZmFpbC1sb2FkLmh0bWwKQEAgLTAsMCArMSwyMiBAQAorPGh0bWw+Cis8c2NyaXB0PgoraWYgKHdp
bmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgeworICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1
bXBBc1RleHQoKTsKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7Cisg
ICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuc2V0Q2FuT3BlbldpbmRvd3ModHJ1ZSk7Cit9CisKK2Z1
bmN0aW9uIHRlc3QoKQoreworICAgIHZhciB3ID0gd2luZG93Lm9wZW4oImFib3V0OmJsYW5rIik7
CisgICAgdmFyIGYgPSB3LmRvY3VtZW50LmFkb3B0Tm9kZShkb2N1bWVudC5nZXRFbGVtZW50c0J5
VGFnTmFtZSgiaWZyYW1lIilbMF0pOworICAgIHcuZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChm
KTsKKyAgICB3LmNsb3NlKCk7CisgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikK
KyAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgpOworfQorPC9zY3JpcHQ+
Cis8Ym9keSBvbmxvYWQ9InRlc3QoKSI+Cis8aWZyYW1lIHNyYz0iZGF0YTp0ZXh0L2h0bWwsZm9v
Ij48L2lmcmFtZT4KKzxwPlRoaXMgdGVzdCBhZG9wdHMgYW4gaWZyYW1lIGludG8gYSBzZWNvbmQg
cGFnZSwgdGhlbiBjbG9zZXMgdGhhdCBwYWdlLCBjYW5jZWxsaW5nIHRoYXQgaWZyYW1lIGxvYWQu
IFRoZSBjYW5jZWxsZWQgbG9hZCBpcyB0cmVhdGVkIGFzIGEgZmFpbGVkIGxvYWQuIFRoaXMgdGVz
dCB3aWxsIGNyYXNoIGlmIHJlc291cmNlIHRyYWNraW5nIGhhcyBub3QgYmVlbiB1cGRhdGVkIGFm
dGVyIHRoZSBpZnJhbWUgaGFzIGJlZW4gYWRvcHRlZCB0byBhIGRpZmZlcmVudCBwYWdlIGJlY2F1
c2UgdGhlIGZhaWxlZCBsb2FkIHdpbGwgYmUgcmVwb3J0ZWQgdG8gdGhlIHdyb25nIHBsYWNlLjwv
cD4KKzwvYm9keT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9Ta2lwcGVk
IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1NraXBwZWQKaW5kZXggZGVjNjQ0Zi4uYzUwYzk0
NSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1NraXBwZWQKKysrIGIvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1NraXBwZWQKQEAgLTI5OSw5ICsyOTksNiBAQCBtZWRpYS9j
b250ZXh0LW1lbnUtYWN0aW9ucy5odG1sCiAjIEZpbGVTeXN0ZW0gQVBJIGlzIG5vdCBzdXBwb3J0
ZWQuCiBmYXN0L2ZpbGVzeXN0ZW0KIAotIyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9NDQ3MTMKLWZhc3QvZnJhbWVzL2lmcmFtZS1yZXBhcmVudGluZy1hZG9wdC1ub2Rl
Lmh0bWwKLQogIyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDYyMjMK
ICMgVGhlIFdlYktpdCBwbHVnaW4gaW1wbGVtZW50YXRpb24gZG9lcyBub3Qgc3VwcG9ydCBpZnJh
bWUgc2hpbXMuCiBwbHVnaW5zL2lmcmFtZS1zaGltcy5odG1sCmRpZmYgLS1naXQgYS9XZWJDb3Jl
L0NoYW5nZUxvZyBiL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGZhNTg5MjUuLmExYzk0MDggMTAw
NjQ0Ci0tLSBhL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMzIgQEAKKzIwMTAtMTAtMjUgIEplbm4gQnJhaXRod2FpdGUgIDxqZW5uYkBjaHJvbWl1
bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
UmVzb3VyY2UgdHJhY2tpbmcgZmFpbHVyZSB3aGVuIHRyeWluZyB0byBtb3ZlIGEgZnJhbWUgYmV0
d2VlbiBkb2N1bWVudHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTQ0NzEzCisKKyAgICAgICAgVGVzdDogZmFzdC9mcmFtZXMvaWZyYW1lLXJlcGFyZW50
aW5nLWZhaWwtbG9hZC5odG1sCisKKyAgICAgICAgKiBsb2FkZXIvRG9jdW1lbnRMb2FkZXIuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnRMb2FkZXI6OnRyYW5zZmVyTG9hZGluZ1Jlc291
cmNlc0Zyb21QYWdlKToKKyAgICAgICAgQWRkZWQgbWV0aG9kIHRoYXQgbm90aWZpZXMgdGhlIGNs
aWVudCB0byB1cGRhdGUgcmVzb3VyY2UgdHJhY2tpbmcgZm9yCisgICAgICAgIGxvYWRpbmcgcmVz
b3VyY2VzIHRoYXQgaGF2ZSBiZWVuIHRyYW5zZmVycmVkIHRvIGEgZGlmZmVyZW50IHBhZ2UuCisg
ICAgICAgICogbG9hZGVyL0RvY3VtZW50TG9hZGVyLmg6CisgICAgICAgICogbG9hZGVyL0VtcHR5
Q2xpZW50cy5oOgorICAgICAgICAoV2ViQ29yZTo6RW1wdHlGcmFtZUxvYWRlckNsaWVudDo6dHJh
bnNmZXJMb2FkaW5nUmVzb3VyY2VGcm9tUGFnZSk6CisgICAgICAgIEVtcHR5IG1ldGhvZC4KKyAg
ICAgICAgKiBsb2FkZXIvRnJhbWVMb2FkZXIuaDoKKyAgICAgICAgKiBsb2FkZXIvRnJhbWVMb2Fk
ZXIuY3BwOgorICAgICAgICBBZGRlZCBtZXRob2QgdGhhdCB0cmlnZ2VycyByZXNvdXJjZSB0cmFj
a2luZyB1cGRhdGVzLiBUaGlzIHdyYXBzCisgICAgICAgIHRoZSBEb2N1bWVudExvYWRlciBtZXRo
b2QgYXMgaXQgYXBwZWFycyBEb2N1bWVudExvYWRlciBpcyBvcGFxdWUKKyAgICAgICAgdG8gRnJh
bWUuCisgICAgICAgICogbG9hZGVyL0ZyYW1lTG9hZGVyQ2xpZW50Lmg6CisgICAgICAgIEFkZGVk
IEFQSSB0byBub3RpZnkgdGhlIGNsaWVudCB0byB1cGRhdGUgcmVzb3VyY2UgdHJhY2tpbmcgZm9y
CisgICAgICAgIGEgbG9hZGluZyByZXNvdXJjZSB0aGF0IGhhcyBiZWVuIHRyYW5zZmVycmVkIHRv
IGEgZGlmZmVyZW50IHBhZ2UuCisgICAgICAgICogcGFnZS9GcmFtZS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpGcmFtZTo6dHJhbnNmZXJDaGlsZEZyYW1lVG9OZXdEb2N1bWVudCk6CisgICAgICAg
IFVwZGF0ZSByZXNvdXJjZSB0cmFja2luZyBpZiBwYWdlIGhhcyBjaGFuZ2VkLgorCiAyMDEwLTEw
LTI1ICBSeW9zdWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgogCiAgICAgICAgIFVucmV2aWV3
ZWQgUXQgYnVpbGQgZml4IGZvciByNzA0OTYuCmRpZmYgLS1naXQgYS9XZWJDb3JlL2xvYWRlci9E
b2N1bWVudExvYWRlci5jcHAgYi9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudExvYWRlci5jcHAKaW5k
ZXggN2VlN2JjYy4uMzBiODBlYiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRM
b2FkZXIuY3BwCisrKyBiL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50TG9hZGVyLmNwcApAQCAtNzg3
LDYgKzc4NywyNyBAQCB2b2lkIERvY3VtZW50TG9hZGVyOjpzdWJyZXNvdXJjZUxvYWRlckZpbmlz
aGVkTG9hZGluZ09uZVBhcnQoUmVzb3VyY2VMb2FkZXIqIGxvYQogICAgICAgICBmcmFtZS0+bG9h
ZGVyKCktPmNoZWNrTG9hZENvbXBsZXRlKCk7ICAgIAogfQogCit2b2lkIERvY3VtZW50TG9hZGVy
Ojp0cmFuc2ZlckxvYWRpbmdSZXNvdXJjZXNGcm9tUGFnZShQYWdlKiBvbGRQYWdlKQoreworICAg
IEFTU0VSVChvbGRQYWdlICE9IG1fZnJhbWUtPnBhZ2UoKSk7CisKKyAgICBGcmFtZUxvYWRlckNs
aWVudCogZnJhbWVMb2FkZXJDbGllbnQgPSBmcmFtZUxvYWRlcigpLT5jbGllbnQoKTsKKyAgICBj
b25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QgPSBvcmlnaW5hbFJlcXVlc3QoKTsKKyAgICBp
ZiAoaXNMb2FkaW5nTWFpblJlc291cmNlKCkpIHsKKyAgICAgICAgZnJhbWVMb2FkZXJDbGllbnQt
PnRyYW5zZmVyTG9hZGluZ1Jlc291cmNlRnJvbVBhZ2UoCisgICAgICAgICAgICBtX21haW5SZXNv
dXJjZUxvYWRlci0+aWRlbnRpZmllcigpLCB0aGlzLCByZXF1ZXN0LCBvbGRQYWdlKTsKKyAgICB9
CisKKyAgICBpZiAoaXNMb2FkaW5nU3VicmVzb3VyY2VzKCkpIHsKKyAgICAgICAgUmVzb3VyY2VM
b2FkZXJTZXQ6OmNvbnN0X2l0ZXJhdG9yIGl0ID0gbV9zdWJyZXNvdXJjZUxvYWRlcnMuYmVnaW4o
KTsKKyAgICAgICAgUmVzb3VyY2VMb2FkZXJTZXQ6OmNvbnN0X2l0ZXJhdG9yIGVuZCA9IG1fc3Vi
cmVzb3VyY2VMb2FkZXJzLmVuZCgpOworICAgICAgICBmb3IgKDsgaXQgIT0gZW5kOyArK2l0KSB7
CisgICAgICAgICAgICBmcmFtZUxvYWRlckNsaWVudC0+dHJhbnNmZXJMb2FkaW5nUmVzb3VyY2VG
cm9tUGFnZSgKKyAgICAgICAgICAgICAgICAoKml0KS0+aWRlbnRpZmllcigpLCB0aGlzLCByZXF1
ZXN0LCBvbGRQYWdlKTsKKyAgICAgICAgfQorICAgIH0KK30KKwogdm9pZCBEb2N1bWVudExvYWRl
cjo6aWNvbkxvYWREZWNpc2lvbkF2YWlsYWJsZSgpCiB7CiAgICAgaWYgKG1fZnJhbWUpCmRpZmYg
LS1naXQgYS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudExvYWRlci5oIGIvV2ViQ29yZS9sb2FkZXIv
RG9jdW1lbnRMb2FkZXIuaAppbmRleCA1MDg3OWI3Li5lMWY3NWVkIDEwMDY0NAotLS0gYS9XZWJD
b3JlL2xvYWRlci9Eb2N1bWVudExvYWRlci5oCisrKyBiL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50
TG9hZGVyLmgKQEAgLTQ2LDYgKzQ2LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIGNsYXNz
IEZyYW1lOwogICAgIGNsYXNzIEZyYW1lTG9hZGVyOwogICAgIGNsYXNzIE1haW5SZXNvdXJjZUxv
YWRlcjsKKyAgICBjbGFzcyBQYWdlOwogICAgIGNsYXNzIFJlc291cmNlTG9hZGVyOwogICAgIGNs
YXNzIFNjaGVkdWxlUGFpcjsKICAgICBjbGFzcyBTaGFyZWRCdWZmZXI7CkBAIC0xOTUsNyArMTk2
LDkgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICB2b2lkIHJlbW92ZVBsdWdJblN0cmVh
bUxvYWRlcihSZXNvdXJjZUxvYWRlciopOwogCiAgICAgICAgIHZvaWQgc3VicmVzb3VyY2VMb2Fk
ZXJGaW5pc2hlZExvYWRpbmdPbmVQYXJ0KFJlc291cmNlTG9hZGVyKik7Ci0gICAgICAgIAorCisg
ICAgICAgIHZvaWQgdHJhbnNmZXJMb2FkaW5nUmVzb3VyY2VzRnJvbVBhZ2UoUGFnZSopOworCiAg
ICAgICAgIHZvaWQgc2V0RGVmZXJNYWluUmVzb3VyY2VEYXRhTG9hZChib29sIGRlZmVyKSB7IG1f
ZGVmZXJNYWluUmVzb3VyY2VEYXRhTG9hZCA9IGRlZmVyOyB9CiAgICAgICAgIGJvb2wgZGVmZXJN
YWluUmVzb3VyY2VEYXRhTG9hZCgpIGNvbnN0IHsgcmV0dXJuIG1fZGVmZXJNYWluUmVzb3VyY2VE
YXRhTG9hZDsgfQogICAgICAgICAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xp
ZW50cy5oIGIvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmgKaW5kZXggZjM3Y2JmMy4uZWMz
NzY2OCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmgKKysrIGIvV2Vi
Q29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmgKQEAgLTMzNyw2ICszMzcsNyBAQCBwdWJsaWM6CiAg
ICAgdmlydHVhbCB2b2lkIGRpZFJ1bkluc2VjdXJlQ29udGVudChTZWN1cml0eU9yaWdpbiopIHsg
fQogICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxGcmFtZT4gY3JlYXRlRnJhbWUoY29uc3QgS1VSTCYs
IGNvbnN0IFN0cmluZyYsIEhUTUxGcmFtZU93bmVyRWxlbWVudCosIGNvbnN0IFN0cmluZyYsIGJv
b2wsIGludCwgaW50KSB7IHJldHVybiAwOyB9CiAgICAgdmlydHVhbCB2b2lkIGRpZFRyYW5zZmVy
Q2hpbGRGcmFtZVRvTmV3RG9jdW1lbnQoUGFnZSopIHsgfQorICAgIHZpcnR1YWwgdm9pZCB0cmFu
c2ZlckxvYWRpbmdSZXNvdXJjZUZyb21QYWdlKHVuc2lnbmVkIGxvbmcsIERvY3VtZW50TG9hZGVy
KiwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgUGFnZSopIHsgfQogICAgIHZpcnR1YWwgUGFzc1Jl
ZlB0cjxXaWRnZXQ+IGNyZWF0ZVBsdWdpbihjb25zdCBJbnRTaXplJiwgSFRNTFBsdWdJbkVsZW1l
bnQqLCBjb25zdCBLVVJMJiwgY29uc3QgVmVjdG9yPFN0cmluZz4mLCBjb25zdCBWZWN0b3I8U3Ry
aW5nPiYsIGNvbnN0IFN0cmluZyYsIGJvb2wpIHsgcmV0dXJuIDA7IH0KICAgICB2aXJ0dWFsIFBh
c3NSZWZQdHI8V2lkZ2V0PiBjcmVhdGVKYXZhQXBwbGV0V2lkZ2V0KGNvbnN0IEludFNpemUmLCBI
VE1MQXBwbGV0RWxlbWVudCosIGNvbnN0IEtVUkwmLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYsIGNv
bnN0IFZlY3RvcjxTdHJpbmc+JikgeyByZXR1cm4gMDsgfQogI2lmIEVOQUJMRShQTFVHSU5fUFJP
WFlfRk9SX1ZJREVPKQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3Bw
IGIvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCmluZGV4IDM3N2U1ZjAuLjlkM2I1N2Mg
MTAwNjQ0Ci0tLSBhL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcAorKysgYi9XZWJDb3Jl
L2xvYWRlci9GcmFtZUxvYWRlci5jcHAKQEAgLTE3NDEsNiArMTc0MSwxMyBAQCBib29sIEZyYW1l
TG9hZGVyOjpmcmFtZUhhc0xvYWRlZCgpIGNvbnN0CiAgICAgcmV0dXJuIG1fc3RhdGVNYWNoaW5l
LmNvbW1pdHRlZEZpcnN0UmVhbERvY3VtZW50TG9hZCgpIHx8IChtX3Byb3Zpc2lvbmFsRG9jdW1l
bnRMb2FkZXIgJiYgIW1fc3RhdGVNYWNoaW5lLmNyZWF0aW5nSW5pdGlhbEVtcHR5RG9jdW1lbnQo
KSk7IAogfQogCit2b2lkIEZyYW1lTG9hZGVyOjp0cmFuc2ZlckxvYWRpbmdSZXNvdXJjZXNGcm9t
UGFnZShQYWdlKiBvbGRQYWdlKQoreworICAgIEFTU0VSVChvbGRQYWdlICE9IG1fZnJhbWUtPnBh
Z2UoKSk7CisgICAgaWYgKGlzTG9hZGluZygpKQorICAgICAgICBhY3RpdmVEb2N1bWVudExvYWRl
cigpLT50cmFuc2ZlckxvYWRpbmdSZXNvdXJjZXNGcm9tUGFnZShvbGRQYWdlKTsKK30KKwogdm9p
ZCBGcmFtZUxvYWRlcjo6c2V0RG9jdW1lbnRMb2FkZXIoRG9jdW1lbnRMb2FkZXIqIGxvYWRlcikK
IHsKICAgICBpZiAoIWxvYWRlciAmJiAhbV9kb2N1bWVudExvYWRlcikKZGlmZiAtLWdpdCBhL1dl
YkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmggYi9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5o
CmluZGV4IDllMTFmZDAuLjU3YmEwN2EgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvbG9hZGVyL0ZyYW1l
TG9hZGVyLmgKKysrIGIvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuaApAQCAtNjgsNiArNjgs
NyBAQCBjbGFzcyBIVE1MRm9ybUVsZW1lbnQ7CiBjbGFzcyBJY29uTG9hZGVyOwogY2xhc3MgTmF2
aWdhdGlvbkFjdGlvbjsKIGNsYXNzIE5ldHdvcmtpbmdDb250ZXh0OworY2xhc3MgUGFnZTsKIGNs
YXNzIFByb3RlY3Rpb25TcGFjZTsKIGNsYXNzIFJlc291cmNlRXJyb3I7CiBjbGFzcyBSZXNvdXJj
ZUxvYWRlcjsKQEAgLTEzMiw2ICsxMzMsNyBAQCBwdWJsaWM6CiAgICAgYm9vbCBpc0xvYWRpbmdN
YWluUmVzb3VyY2UoKSBjb25zdCB7IHJldHVybiBtX2lzTG9hZGluZ01haW5SZXNvdXJjZTsgfQog
ICAgIGJvb2wgaXNMb2FkaW5nKCkgY29uc3Q7CiAgICAgYm9vbCBmcmFtZUhhc0xvYWRlZCgpIGNv
bnN0OworICAgIHZvaWQgdHJhbnNmZXJMb2FkaW5nUmVzb3VyY2VzRnJvbVBhZ2UoUGFnZSopOwog
CiAgICAgaW50IG51bVBlbmRpbmdPckxvYWRpbmdSZXF1ZXN0cyhib29sIHJlY3Vyc2UpIGNvbnN0
OwogICAgIFN0cmluZyByZWZlcnJlcigpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9sb2Fk
ZXIvRnJhbWVMb2FkZXJDbGllbnQuaCBiL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyQ2xpZW50
LmgKaW5kZXggZWVlYWQ0YS4uMjQ3NmU5NCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9sb2FkZXIvRnJh
bWVMb2FkZXJDbGllbnQuaAorKysgYi9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlckNsaWVudC5o
CkBAIC0yMzAsNiArMjMwLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICB2aXJ0dWFs
IFBhc3NSZWZQdHI8RnJhbWU+IGNyZWF0ZUZyYW1lKGNvbnN0IEtVUkwmIHVybCwgY29uc3QgU3Ry
aW5nJiBuYW1lLCBIVE1MRnJhbWVPd25lckVsZW1lbnQqIG93bmVyRWxlbWVudCwKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgU3RyaW5nJiByZWZlcnJlciwgYm9vbCBh
bGxvd3NTY3JvbGxpbmcsIGludCBtYXJnaW5XaWR0aCwgaW50IG1hcmdpbkhlaWdodCkgPSAwOwog
ICAgICAgICB2aXJ0dWFsIHZvaWQgZGlkVHJhbnNmZXJDaGlsZEZyYW1lVG9OZXdEb2N1bWVudChQ
YWdlKiBvbGRQYWdlKSA9IDA7CisgICAgICAgIHZpcnR1YWwgdm9pZCB0cmFuc2ZlckxvYWRpbmdS
ZXNvdXJjZUZyb21QYWdlKHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgRG9jdW1lbnRMb2FkZXIq
LCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBQYWdlKiBvbGRQYWdlKSA9IDA7CiAgICAgICAgIHZp
cnR1YWwgUGFzc1JlZlB0cjxXaWRnZXQ+IGNyZWF0ZVBsdWdpbihjb25zdCBJbnRTaXplJiwgSFRN
TFBsdWdJbkVsZW1lbnQqLCBjb25zdCBLVVJMJiwgY29uc3QgVmVjdG9yPFN0cmluZz4mLCBjb25z
dCBWZWN0b3I8U3RyaW5nPiYsIGNvbnN0IFN0cmluZyYsIGJvb2wgbG9hZE1hbnVhbGx5KSA9IDA7
CiAgICAgICAgIHZpcnR1YWwgdm9pZCByZWRpcmVjdERhdGFUb1BsdWdpbihXaWRnZXQqIHBsdWdp
bldpZGdldCkgPSAwOwogCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BhZ2UvRnJhbWUuY3BwIGIvV2Vi
Q29yZS9wYWdlL0ZyYW1lLmNwcAppbmRleCBmNzViYzk4Li5iNzY4MjhiIDEwMDY0NAotLS0gYS9X
ZWJDb3JlL3BhZ2UvRnJhbWUuY3BwCisrKyBiL1dlYkNvcmUvcGFnZS9GcmFtZS5jcHAKQEAgLTc0
NCw2ICs3NDQsMTAgQEAgdm9pZCBGcmFtZTo6dHJhbnNmZXJDaGlsZEZyYW1lVG9OZXdEb2N1bWVu
dCgpCiAgICAgICAgIC8vIExldCBleHRlcm5hbCBjbGllbnRzIHVwZGF0ZSB0aGVtc2VsdmVzLgog
ICAgICAgICBsb2FkZXIoKS0+Y2xpZW50KCktPmRpZFRyYW5zZmVyQ2hpbGRGcmFtZVRvTmV3RG9j
dW1lbnQob2xkUGFnZSk7CiAKKyAgICAgICAgLy8gVXBkYXRlIHJlc291cmNlIHRyYWNraW5nIG5v
dyB0aGF0IGZyYW1lIGNvdWxkIGJlIGluIGEgZGlmZmVyZW50IHBhZ2UuCisgICAgICAgIGlmIChv
bGRQYWdlICE9IG5ld1BhZ2UpCisgICAgICAgICAgICBsb2FkZXIoKS0+dHJhbnNmZXJMb2FkaW5n
UmVzb3VyY2VzRnJvbVBhZ2Uob2xkUGFnZSk7CisKICAgICAgICAgLy8gRG8gdGhlIHNhbWUgZm9y
IGFsbCB0aGUgY2hpbGRyZW4uCiAgICAgICAgIGZvciAoRnJhbWUqIGNoaWxkID0gdHJlZSgpLT5m
aXJzdENoaWxkKCk7IGNoaWxkOyBjaGlsZCA9IGNoaWxkLT50cmVlKCktPm5leHRTaWJsaW5nKCkp
CiAgICAgICAgICAgICBjaGlsZC0+dHJhbnNmZXJDaGlsZEZyYW1lVG9OZXdEb2N1bWVudCgpOwpk
aWZmIC0tZ2l0IGEvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZyBiL1dlYktpdC9jaHJvbWl1bS9D
aGFuZ2VMb2cKaW5kZXggOTk0Nzg3ZS4uZTFkMzQxNCAxMDA2NDQKLS0tIGEvV2ViS2l0L2Nocm9t
aXVtL0NoYW5nZUxvZworKysgYi9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MTUgQEAKKzIwMTAtMTAtMjUgIEplbm4gQnJhaXRod2FpdGUgIDxqZW5uYkBjaHJvbWl1bS5vcmc+
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVzb3Vy
Y2UgdHJhY2tpbmcgZmFpbHVyZSB3aGVuIHRyeWluZyB0byBtb3ZlIGEgZnJhbWUgYmV0d2VlbiBk
b2N1bWVudHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTQ0NzEzCisKKyAgICAgICAgKiBzcmMvRnJhbWVMb2FkZXJDbGllbnRJbXBsLmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6RnJhbWVMb2FkZXJDbGllbnRJbXBsOjp0cmFuc2ZlckxvYWRpbmdSZXNvdXJj
ZUZyb21QYWdlKToKKyAgICAgICAgRW1wdHkgbWV0aG9kLgorICAgICAgICAqIHNyYy9GcmFtZUxv
YWRlckNsaWVudEltcGwuaDoKKwogMjAxMC0xMC0yNSAgU2F0aXNoIFNhbXBhdGggIDxzYXRpc2hA
Y2hyb21pdW0ub3JnPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIGZpeCBmb3IgYSBidWlsZCBicmVh
ayBjYXVzZWQgYnkgbXkgZWFybGllciBwYXRjaC4KZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1
bS9zcmMvRnJhbWVMb2FkZXJDbGllbnRJbXBsLmNwcCBiL1dlYktpdC9jaHJvbWl1bS9zcmMvRnJh
bWVMb2FkZXJDbGllbnRJbXBsLmNwcAppbmRleCBlNDMzZDg2Li5jODFjZmMwIDEwMDY0NAotLS0g
YS9XZWJLaXQvY2hyb21pdW0vc3JjL0ZyYW1lTG9hZGVyQ2xpZW50SW1wbC5jcHAKKysrIGIvV2Vi
S2l0L2Nocm9taXVtL3NyYy9GcmFtZUxvYWRlckNsaWVudEltcGwuY3BwCkBAIC0xMzg1LDYgKzEz
ODUsMTEgQEAgdm9pZCBGcmFtZUxvYWRlckNsaWVudEltcGw6OmRpZFRyYW5zZmVyQ2hpbGRGcmFt
ZVRvTmV3RG9jdW1lbnQoUGFnZSopCiAgICAgbV93ZWJGcmFtZS0+c2V0Q2xpZW50KG5ld1BhcmVu
dC0+Y2xpZW50KCkpOwogfQogCit2b2lkIEZyYW1lTG9hZGVyQ2xpZW50SW1wbDo6dHJhbnNmZXJM
b2FkaW5nUmVzb3VyY2VGcm9tUGFnZSh1bnNpZ25lZCBsb25nLCBEb2N1bWVudExvYWRlciosIGNv
bnN0IFJlc291cmNlUmVxdWVzdCYsIFBhZ2UqKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9
CisKIFBhc3NSZWZQdHI8V2lkZ2V0PiBGcmFtZUxvYWRlckNsaWVudEltcGw6OmNyZWF0ZVBsdWdp
bigKICAgICBjb25zdCBJbnRTaXplJiBzaXplLCAvLyBGSVhNRTogaG93IGRvIHdlIHVzZSB0aGlz
PwogICAgIEhUTUxQbHVnSW5FbGVtZW50KiBlbGVtZW50LApkaWZmIC0tZ2l0IGEvV2ViS2l0L2No
cm9taXVtL3NyYy9GcmFtZUxvYWRlckNsaWVudEltcGwuaCBiL1dlYktpdC9jaHJvbWl1bS9zcmMv
RnJhbWVMb2FkZXJDbGllbnRJbXBsLmgKaW5kZXggNDgzYTcyMi4uMzUyZDE4OSAxMDA2NDQKLS0t
IGEvV2ViS2l0L2Nocm9taXVtL3NyYy9GcmFtZUxvYWRlckNsaWVudEltcGwuaAorKysgYi9XZWJL
aXQvY2hyb21pdW0vc3JjL0ZyYW1lTG9hZGVyQ2xpZW50SW1wbC5oCkBAIC0xODAsNiArMTgwLDcg
QEAgcHVibGljOgogICAgICAgICBjb25zdCBXVEY6OlN0cmluZyYgcmVmZXJyZXIsIGJvb2wgYWxs
b3dzU2Nyb2xsaW5nLAogICAgICAgICBpbnQgbWFyZ2luV2lkdGgsIGludCBtYXJnaW5IZWlnaHQp
OwogICAgIHZpcnR1YWwgdm9pZCBkaWRUcmFuc2ZlckNoaWxkRnJhbWVUb05ld0RvY3VtZW50KFdl
YkNvcmU6OlBhZ2UqKTsKKyAgICB2aXJ0dWFsIHZvaWQgdHJhbnNmZXJMb2FkaW5nUmVzb3VyY2VG
cm9tUGFnZSh1bnNpZ25lZCBsb25nLCBXZWJDb3JlOjpEb2N1bWVudExvYWRlciosIGNvbnN0IFdl
YkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIFdlYkNvcmU6OlBhZ2UqKTsKICAgICB2aXJ0dWFsIFBh
c3NSZWZQdHI8V2ViQ29yZTo6V2lkZ2V0PiBjcmVhdGVQbHVnaW4oCiAgICAgICAgIGNvbnN0IFdl
YkNvcmU6OkludFNpemUmLCBXZWJDb3JlOjpIVE1MUGx1Z0luRWxlbWVudCosIGNvbnN0IFdlYkNv
cmU6OktVUkwmLAogICAgICAgICBjb25zdCBWZWN0b3I8V1RGOjpTdHJpbmc+JiwgY29uc3QgVmVj
dG9yPFdURjo6U3RyaW5nPiYsCmRpZmYgLS1naXQgYS9XZWJLaXQvZWZsL0NoYW5nZUxvZyBiL1dl
YktpdC9lZmwvQ2hhbmdlTG9nCmluZGV4IDQ2YTgwZGYuLjEzYTBhMjYgMTAwNjQ0Ci0tLSBhL1dl
YktpdC9lZmwvQ2hhbmdlTG9nCisrKyBiL1dlYktpdC9lZmwvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MTUgQEAKKzIwMTAtMTAtMjUgIEplbm4gQnJhaXRod2FpdGUgIDxqZW5uYkBjaHJvbWl1bS5vcmc+
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVzb3Vy
Y2UgdHJhY2tpbmcgZmFpbHVyZSB3aGVuIHRyeWluZyB0byBtb3ZlIGEgZnJhbWUgYmV0d2VlbiBk
b2N1bWVudHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTQ0NzEzCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEVmbC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRlckNsaWVudEVmbDo6dHJhbnNmZXJMb2Fk
aW5nUmVzb3VyY2VGcm9tUGFnZSk6CisgICAgICAgIEVtcHR5IG1ldGhvZC4KKyAgICAgICAgKiBX
ZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEVmbC5oOgorCiAyMDEwLTEwLTIyICBTYW0g
V2VpbmlnICA8c2FtQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgQW5kZXJzIENh
cmxzc29uLgpkaWZmIC0tZ2l0IGEvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRl
ckNsaWVudEVmbC5jcHAgYi9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xp
ZW50RWZsLmNwcAppbmRleCA4MjY0YTFkLi5lNjVlYjEzIDEwMDY0NAotLS0gYS9XZWJLaXQvZWZs
L1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50RWZsLmNwcAorKysgYi9XZWJLaXQvZWZs
L1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50RWZsLmNwcApAQCAtMzg0LDYgKzM4NCwx
MCBAQCB2b2lkIEZyYW1lTG9hZGVyQ2xpZW50RWZsOjpkaWRUcmFuc2ZlckNoaWxkRnJhbWVUb05l
d0RvY3VtZW50KFBhZ2UqKQogewogfQogCit2b2lkIEZyYW1lTG9hZGVyQ2xpZW50RWZsOjp0cmFu
c2ZlckxvYWRpbmdSZXNvdXJjZUZyb21QYWdlKHVuc2lnbmVkIGxvbmcsIERvY3VtZW50TG9hZGVy
KiwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgUGFnZSopCit7Cit9CisKIHZvaWQgRnJhbWVMb2Fk
ZXJDbGllbnRFZmw6OnJlZGlyZWN0RGF0YVRvUGx1Z2luKFdpZGdldCogcGx1Z2luV2lkZ2V0KQog
ewogICAgIEFTU0VSVCghbV9wbHVnaW5WaWV3KTsKZGlmZiAtLWdpdCBhL1dlYktpdC9lZmwvV2Vi
Q29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRFZmwuaCBiL1dlYktpdC9lZmwvV2ViQ29yZVN1
cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRFZmwuaAppbmRleCBlOGM3ZTBjLi5jZTI3ZmQ2IDEwMDY0
NAotLS0gYS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50RWZsLmgK
KysrIGIvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEVmbC5oCkBA
IC0xMzUsNiArMTM1LDcgQEAgY2xhc3MgRnJhbWVMb2FkZXJDbGllbnRFZmwgOiBwdWJsaWMgRnJh
bWVMb2FkZXJDbGllbnQgewogICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxGcmFtZT4gY3JlYXRlRnJh
bWUoY29uc3QgS1VSTCYgdXJsLCBjb25zdCBTdHJpbmcmIG5hbWUsIEhUTUxGcmFtZU93bmVyRWxl
bWVudCogb3duZXJFbGVtZW50LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0
IFN0cmluZyYgcmVmZXJyZXIsIGJvb2wgYWxsb3dzU2Nyb2xsaW5nLCBpbnQgbWFyZ2luV2lkdGgs
IGludCBtYXJnaW5IZWlnaHQpOwogICAgIHZpcnR1YWwgdm9pZCBkaWRUcmFuc2ZlckNoaWxkRnJh
bWVUb05ld0RvY3VtZW50KFBhZ2UqKTsKKyAgICB2aXJ0dWFsIHZvaWQgdHJhbnNmZXJMb2FkaW5n
UmVzb3VyY2VGcm9tUGFnZSh1bnNpZ25lZCBsb25nLCBXZWJDb3JlOjpEb2N1bWVudExvYWRlcios
IGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIFdlYkNvcmU6OlBhZ2UqKTsKIAogICAgIHZpcnR1YWwg
UGFzc1JlZlB0cjxXaWRnZXQ+IGNyZWF0ZVBsdWdpbihjb25zdCBJbnRTaXplJiwgSFRNTFBsdWdJ
bkVsZW1lbnQqLCBjb25zdCBLVVJMJiwgY29uc3QgV1RGOjpWZWN0b3I8U3RyaW5nPiYsIGNvbnN0
IFdURjo6VmVjdG9yPFN0cmluZz4mLCBjb25zdCBTdHJpbmcmLCBib29sKTsKICAgICB2aXJ0dWFs
IHZvaWQgcmVkaXJlY3REYXRhVG9QbHVnaW4oV2lkZ2V0KiBwbHVnaW5XaWRnZXQpOwpkaWZmIC0t
Z2l0IGEvV2ViS2l0L2d0ay9DaGFuZ2VMb2cgYi9XZWJLaXQvZ3RrL0NoYW5nZUxvZwppbmRleCBk
MTMwNzY2Li4yNzVhODMwIDEwMDY0NAotLS0gYS9XZWJLaXQvZ3RrL0NoYW5nZUxvZworKysgYi9X
ZWJLaXQvZ3RrL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDEwLTEwLTI1ICBKZW5uIEJy
YWl0aHdhaXRlICA8amVubmJAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlc291cmNlIHRyYWNraW5nIGZhaWx1cmUgd2hlbiB0
cnlpbmcgdG8gbW92ZSBhIGZyYW1lIGJldHdlZW4gZG9jdW1lbnRzCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00NDcxMworCisgICAgICAgICogV2ViQ29y
ZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRHdGsuY3BwOgorICAgICAgICAoV2ViS2l0OjpGcmFt
ZUxvYWRlckNsaWVudDo6dHJhbnNmZXJMb2FkaW5nUmVzb3VyY2VGcm9tUGFnZSk6CisgICAgICAg
IEVtcHR5IG1ldGhvZC4KKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVu
dEd0ay5oOgorCiAyMDEwLTEwLTIyICBTYW0gV2VpbmlnICA8c2FtQHdlYmtpdC5vcmc+CiAKICAg
ICAgICAgUmV2aWV3ZWQgYnkgQW5kZXJzIENhcmxzc29uLgpkaWZmIC0tZ2l0IGEvV2ViS2l0L2d0
ay9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEd0ay5jcHAgYi9XZWJLaXQvZ3RrL1dl
YkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50R3RrLmNwcAppbmRleCA1NGU1YWUyLi5hMGQ1
M2EwIDEwMDY0NAotLS0gYS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xp
ZW50R3RrLmNwcAorKysgYi9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xp
ZW50R3RrLmNwcApAQCAtNjE5LDYgKzYxOSwxMCBAQCB2b2lkIEZyYW1lTG9hZGVyQ2xpZW50Ojpk
aWRUcmFuc2ZlckNoaWxkRnJhbWVUb05ld0RvY3VtZW50KFdlYkNvcmU6OlBhZ2UqKQogICAgIEFT
U0VSVChjb3JlKGdldFZpZXdGcm9tRnJhbWUobV9mcmFtZSkpID09IGNvcmVGcmFtZS0+cGFnZSgp
KTsKIH0KIAordm9pZCBGcmFtZUxvYWRlckNsaWVudDo6dHJhbnNmZXJMb2FkaW5nUmVzb3VyY2VG
cm9tUGFnZSh1bnNpZ25lZCBsb25nLCBXZWJDb3JlOjpEb2N1bWVudExvYWRlciosIGNvbnN0IFdl
YkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIFdlYkNvcmU6OlBhZ2UqKQoreworfQorCiB2b2lkIEZy
YW1lTG9hZGVyQ2xpZW50OjpyZWRpcmVjdERhdGFUb1BsdWdpbihXaWRnZXQqIHBsdWdpbldpZGdl
dCkKIHsKICAgICBBU1NFUlQoIW1fcGx1Z2luVmlldyk7CmRpZmYgLS1naXQgYS9XZWJLaXQvZ3Rr
L1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50R3RrLmggYi9XZWJLaXQvZ3RrL1dlYkNv
cmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50R3RrLmgKaW5kZXggZjA2M2ViOC4uM2JiZGNkMyAx
MDA2NDQKLS0tIGEvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEd0
ay5oCisrKyBiL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRHdGsu
aApAQCAtMTE1LDYgKzExNSw3IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogICAgICAgICB2aXJ0dWFs
IFBhc3NSZWZQdHI8V2ViQ29yZTo6RnJhbWU+IGNyZWF0ZUZyYW1lKGNvbnN0IFdlYkNvcmU6OktV
UkwmIHVybCwgY29uc3QgV1RGOjpTdHJpbmcmIG5hbWUsIFdlYkNvcmU6OkhUTUxGcmFtZU93bmVy
RWxlbWVudCogb3duZXJFbGVtZW50LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBjb25zdCBXVEY6OlN0cmluZyYgcmVmZXJyZXIsIGJvb2wgYWxsb3dzU2Nyb2xsaW5nLCBpbnQg
bWFyZ2luV2lkdGgsIGludCBtYXJnaW5IZWlnaHQpOwogICAgICAgICB2aXJ0dWFsIHZvaWQgZGlk
VHJhbnNmZXJDaGlsZEZyYW1lVG9OZXdEb2N1bWVudChXZWJDb3JlOjpQYWdlKik7CisgICAgICAg
IHZpcnR1YWwgdm9pZCB0cmFuc2ZlckxvYWRpbmdSZXNvdXJjZUZyb21QYWdlKHVuc2lnbmVkIGxv
bmcsIFdlYkNvcmU6OkRvY3VtZW50TG9hZGVyKiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1
ZXN0JiwgV2ViQ29yZTo6UGFnZSopOwogICAgICAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8V2ViQ29y
ZTo6V2lkZ2V0PiBjcmVhdGVQbHVnaW4oY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYsIFdlYkNvcmU6
OkhUTUxQbHVnSW5FbGVtZW50KiwgY29uc3QgV2ViQ29yZTo6S1VSTCYsIGNvbnN0IFdURjo6VmVj
dG9yPFdURjo6U3RyaW5nPiYsIGNvbnN0IFdURjo6VmVjdG9yPFdURjo6U3RyaW5nPiYsIGNvbnN0
IFdURjo6U3RyaW5nJiwgYm9vbCk7CiAgICAgICAgIHZpcnR1YWwgdm9pZCByZWRpcmVjdERhdGFU
b1BsdWdpbihXZWJDb3JlOjpXaWRnZXQqIHBsdWdpbldpZGdldCk7CiAgICAgICAgIHZpcnR1YWwg
UGFzc1JlZlB0cjxXZWJDb3JlOjpXaWRnZXQ+IGNyZWF0ZUphdmFBcHBsZXRXaWRnZXQoY29uc3Qg
V2ViQ29yZTo6SW50U2l6ZSYsIFdlYkNvcmU6OkhUTUxBcHBsZXRFbGVtZW50KiwgY29uc3QgV2Vi
Q29yZTo6S1VSTCYgYmFzZVVSTCwgY29uc3QgV1RGOjpWZWN0b3I8V1RGOjpTdHJpbmc+JiBwYXJh
bU5hbWVzLCBjb25zdCBXVEY6OlZlY3RvcjxXVEY6OlN0cmluZz4mIHBhcmFtVmFsdWVzKTsKZGlm
ZiAtLWdpdCBhL1dlYktpdC9oYWlrdS9DaGFuZ2VMb2cgYi9XZWJLaXQvaGFpa3UvQ2hhbmdlTG9n
CmluZGV4IDE3MmU5Y2UuLjc0NGFkMWMgMTAwNjQ0Ci0tLSBhL1dlYktpdC9oYWlrdS9DaGFuZ2VM
b2cKKysrIGIvV2ViS2l0L2hhaWt1L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDEwLTEw
LTI1ICBKZW5uIEJyYWl0aHdhaXRlICA8amVubmJAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlc291cmNlIHRyYWNraW5nIGZh
aWx1cmUgd2hlbiB0cnlpbmcgdG8gbW92ZSBhIGZyYW1lIGJldHdlZW4gZG9jdW1lbnRzCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00NDcxMworCisgICAg
ICAgICogV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRIYWlrdS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpGcmFtZUxvYWRlckNsaWVudEhhaWt1Ojp0cmFuc2ZlckxvYWRpbmdSZXNvdXJj
ZUZyb21QYWdlKToKKyAgICAgICAgRW1wdHkgbWV0aG9kLgorICAgICAgICAqIFdlYkNvcmVTdXBw
b3J0L0ZyYW1lTG9hZGVyQ2xpZW50SGFpa3UuaDoKKwogMjAxMC0xMC0yMiAgU2FtIFdlaW5pZyAg
PHNhbUB3ZWJraXQub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEFuZGVycyBDYXJsc3Nvbi4K
ZGlmZiAtLWdpdCBhL1dlYktpdC9oYWlrdS9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVu
dEhhaWt1LmNwcCBiL1dlYktpdC9oYWlrdS9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVu
dEhhaWt1LmNwcAppbmRleCAyZGI5NDIyLi4xZDAxYWZiIDEwMDY0NAotLS0gYS9XZWJLaXQvaGFp
a3UvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRIYWlrdS5jcHAKKysrIGIvV2ViS2l0
L2hhaWt1L1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50SGFpa3UuY3BwCkBAIC03NDUs
NiArNzQ1LDEwIEBAIHZvaWQgRnJhbWVMb2FkZXJDbGllbnRIYWlrdTo6ZGlkVHJhbnNmZXJDaGls
ZEZyYW1lVG9OZXdEb2N1bWVudChQYWdlKikKIHsKIH0KIAordm9pZCBGcmFtZUxvYWRlckNsaWVu
dEhhaWt1Ojp0cmFuc2ZlckxvYWRpbmdSZXNvdXJjZUZyb21QYWdlKHVuc2lnbmVkIGxvbmcsIERv
Y3VtZW50TG9hZGVyKiwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgUGFnZSopCit7Cit9CisKIE9i
amVjdENvbnRlbnRUeXBlIEZyYW1lTG9hZGVyQ2xpZW50SGFpa3U6Om9iamVjdENvbnRlbnRUeXBl
KGNvbnN0IEtVUkwmIHVybCwgY29uc3QgU3RyaW5nJiBtaW1lVHlwZSkKIHsKICAgICBub3RJbXBs
ZW1lbnRlZCgpOwpkaWZmIC0tZ2l0IGEvV2ViS2l0L2hhaWt1L1dlYkNvcmVTdXBwb3J0L0ZyYW1l
TG9hZGVyQ2xpZW50SGFpa3UuaCBiL1dlYktpdC9oYWlrdS9XZWJDb3JlU3VwcG9ydC9GcmFtZUxv
YWRlckNsaWVudEhhaWt1LmgKaW5kZXggYjJmODljNy4uNzFjMDE0OSAxMDA2NDQKLS0tIGEvV2Vi
S2l0L2hhaWt1L1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50SGFpa3UuaAorKysgYi9X
ZWJLaXQvaGFpa3UvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRIYWlrdS5oCkBAIC0y
MjIsNiArMjIyLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIEhUTUxGcmFtZU93bmVyRWxlbWVudCosIGNvbnN0IFN0
cmluZyYgcmVmZXJyZXIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgYm9vbCBhbGxvd3NTY3JvbGxpbmcsIGludCBtYXJnaW5XaWR0aCwgaW50IG1hcmdpbkhl
aWdodCk7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBkaWRUcmFuc2ZlckNoaWxkRnJhbWVUb05ld0Rv
Y3VtZW50KFdlYkNvcmU6OlBhZ2UqKTsKKyAgICAgICAgdmlydHVhbCB2b2lkIHRyYW5zZmVyTG9h
ZGluZ1Jlc291cmNlRnJvbVBhZ2UodW5zaWduZWQgbG9uZywgV2ViQ29yZTo6RG9jdW1lbnRMb2Fk
ZXIqLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBXZWJDb3JlOjpQYWdlKik7CiAgICAgICAgIHZp
cnR1YWwgUGFzc1JlZlB0cjxXaWRnZXQ+IGNyZWF0ZVBsdWdpbihjb25zdCBJbnRTaXplJiwgSFRN
TFBsdWdJbkVsZW1lbnQqLCBjb25zdCBLVVJMJiwKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiwgY29uc3QgVmVjdG9y
PFN0cmluZz4mLCBjb25zdCBTdHJpbmcmLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgYm9vbCBsb2FkTWFudWFsbHkpOwpkaWZmIC0tZ2l0IGEvV2ViS2l0
L21hYy9DaGFuZ2VMb2cgYi9XZWJLaXQvbWFjL0NoYW5nZUxvZwppbmRleCA2NGIzOTgwLi45NGJk
NDE4IDEwMDY0NAotLS0gYS9XZWJLaXQvbWFjL0NoYW5nZUxvZworKysgYi9XZWJLaXQvbWFjL0No
YW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDEwLTEwLTI1ICBKZW5uIEJyYWl0aHdhaXRlICA8
amVubmJAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIFJlc291cmNlIHRyYWNraW5nIGZhaWx1cmUgd2hlbiB0cnlpbmcgdG8gbW92
ZSBhIGZyYW1lIGJldHdlZW4gZG9jdW1lbnRzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD00NDcxMworCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2Vi
RnJhbWVMb2FkZXJDbGllbnQuaDoKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxv
YWRlckNsaWVudC5tbToKKyAgICAgICAgKFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpkaWRUcmFuc2Zl
ckNoaWxkRnJhbWVUb05ld0RvY3VtZW50KToKKyAgICAgICAgRW1wdHkgbWV0aG9kLgorICAgICAg
ICAoV2ViRnJhbWVMb2FkZXJDbGllbnQ6OnRyYW5zZmVyTG9hZGluZ1Jlc291cmNlRnJvbVBhZ2Up
OgorICAgICAgICBVcGRhdGUgcmVzb3VyY2UgdHJhY2tpbmcgZm9yIGEgcmVzb3VyY2UgbG9hZCB0
aGF0IGhhcyBiZWVuIHRyYW5zZmVycmVkCisgICAgICAgIHRvIGEgbmV3IHBhZ2UuCisKIDIwMTAt
MTAtMjUgIE9saXZlciBIdW50ICA8b2xpdmVyQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdl
ZCBieSBHYXZpbiBCYXJyYWNsb3VnaC4KZGlmZiAtLWdpdCBhL1dlYktpdC9tYWMvV2ViQ29yZVN1
cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaCBiL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQv
V2ViRnJhbWVMb2FkZXJDbGllbnQuaAppbmRleCAzN2JiODYxLi5jOTQyNTZhIDEwMDY0NAotLS0g
YS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmgKKysrIGIv
V2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oCkBAIC0xOTQs
NiArMTk0LDcgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8V2ViQ29yZTo6RnJh
bWU+IGNyZWF0ZUZyYW1lKGNvbnN0IFdlYkNvcmU6OktVUkwmIHVybCwgY29uc3QgV1RGOjpTdHJp
bmcmIG5hbWUsIFdlYkNvcmU6OkhUTUxGcmFtZU93bmVyRWxlbWVudCosCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgV1RGOjpTdHJpbmcmIHJlZmVycmVyLCBi
b29sIGFsbG93c1Njcm9sbGluZywgaW50IG1hcmdpbldpZHRoLCBpbnQgbWFyZ2luSGVpZ2h0KTsK
ICAgICB2aXJ0dWFsIHZvaWQgZGlkVHJhbnNmZXJDaGlsZEZyYW1lVG9OZXdEb2N1bWVudChXZWJD
b3JlOjpQYWdlKiBvbGRQYWdlKTsKKyAgICB2aXJ0dWFsIHZvaWQgdHJhbnNmZXJMb2FkaW5nUmVz
b3VyY2VGcm9tUGFnZSh1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIFdlYkNvcmU6OkRvY3VtZW50
TG9hZGVyKiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgV2ViQ29yZTo6UGFnZSog
b2xkUGFnZSk7CiAgICAgdmlydHVhbCBQYXNzUmVmUHRyPFdlYkNvcmU6OldpZGdldD4gY3JlYXRl
UGx1Z2luKGNvbnN0IFdlYkNvcmU6OkludFNpemUmLCBXZWJDb3JlOjpIVE1MUGx1Z0luRWxlbWVu
dCosIGNvbnN0IFdlYkNvcmU6OktVUkwmLCBjb25zdCBWZWN0b3I8V1RGOjpTdHJpbmc+JiwKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFZlY3RvcjxXVEY6
OlN0cmluZz4mLCBjb25zdCBXVEY6OlN0cmluZyYsIGJvb2wpOwogICAgIHZpcnR1YWwgdm9pZCBy
ZWRpcmVjdERhdGFUb1BsdWdpbihXZWJDb3JlOjpXaWRnZXQqIHBsdWdpbldpZGdldCk7CmRpZmYg
LS1naXQgYS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lm1t
IGIvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5tbQppbmRl
eCBiMzMyOWNkLi41OTI2MjMxIDEwMDY0NAotLS0gYS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0
L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lm1tCisrKyBiL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQv
V2ViRnJhbWVMb2FkZXJDbGllbnQubW0KQEAgLTEzODUsMTEgKzEzODUsMTYgQEAgUGFzc1JlZlB0
cjxGcmFtZT4gV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmNyZWF0ZUZyYW1lKGNvbnN0IEtVUkwmIHVy
bCwgY29uc3QgU3RyaW4KIAogdm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlkVHJhbnNmZXJD
aGlsZEZyYW1lVG9OZXdEb2N1bWVudChQYWdlKiBvbGRQYWdlKQogewotICAgIGlmIChvbGRQYWdl
ID09IGNvcmUobV93ZWJGcmFtZS5nZXQoKSktPnBhZ2UoKSkKLSAgICAgICAgcmV0dXJuOworfQor
Cit2b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50Ojp0cmFuc2ZlckxvYWRpbmdSZXNvdXJjZUZyb21Q
YWdlKHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgRG9jdW1lbnRMb2FkZXIqIGxvYWRlciwgY29u
c3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBQYWdlKiBvbGRQYWdlKQoreworICAgIEFTU0VS
VChvbGRQYWdlICE9IGNvcmUobV93ZWJGcmFtZS5nZXQoKSktPnBhZ2UoKSk7CisgICAgQVNTRVJU
KCFbZ2V0V2ViVmlldyhtX3dlYkZyYW1lLmdldCgpKSBfb2JqZWN0Rm9ySWRlbnRpZmllcjppZGVu
dGlmaWVyXSk7CisKKyAgICBhc3NpZ25JZGVudGlmaWVyVG9Jbml0aWFsUmVxdWVzdChpZGVudGlm
aWVyLCBsb2FkZXIsIHJlcXVlc3QpOwogCi0gICAgLy8gVXBkYXRlIHJlc291cmNlIHRyYWNraW5n
IG5vdyB0aGF0IGZyYW1lIGlzIGluIGEgZGlmZmVyZW50IHBhZ2UuCi0gICAgLy8gVE9ETyhqZW5u
Yik6IHVwZGF0ZSByZXNvdXJjZSB0cmFja2luZyBbYnVnIDQ0NzEzXQorICAgIFtraXQob2xkUGFn
ZSkgX3JlbW92ZU9iamVjdEZvcklkZW50aWZpZXI6aWRlbnRpZmllcl07CiB9CiAKIE9iamVjdENv
bnRlbnRUeXBlIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpvYmplY3RDb250ZW50VHlwZShjb25zdCBL
VVJMJiB1cmwsIGNvbnN0IFN0cmluZyYgbWltZVR5cGUpCmRpZmYgLS1naXQgYS9XZWJLaXQvcXQv
Q2hhbmdlTG9nIGIvV2ViS2l0L3F0L0NoYW5nZUxvZwppbmRleCBlYzQxZmRmLi5jNzQyMjU0IDEw
MDY0NAotLS0gYS9XZWJLaXQvcXQvQ2hhbmdlTG9nCisrKyBiL1dlYktpdC9xdC9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwxNSBAQAorMjAxMC0xMC0yNSAgSmVubiBCcmFpdGh3YWl0ZSAgPGplbm5iQGNo
cm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBSZXNvdXJjZSB0cmFja2luZyBmYWlsdXJlIHdoZW4gdHJ5aW5nIHRvIG1vdmUgYSBmcmFt
ZSBiZXR3ZWVuIGRvY3VtZW50cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9NDQ3MTMKKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVy
Q2xpZW50UXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXJDbGllbnRRdDo6dHJh
bnNmZXJMb2FkaW5nUmVzb3VyY2VGcm9tUGFnZSk6CisgICAgICAgIEVtdHB5IG1ldGhvZC4KKyAg
ICAgICAgKiBXZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudFF0Lmg6CisKIDIwMTAtMTAt
MjUgIE5vJ2FtIFJvc2VudGhhbCAgPG5vYW0ucm9zZW50aGFsQG5va2lhLmNvbT4KIAogICAgICAg
ICBSZXZpZXdlZCBieSBLZW5uZXRoIFJvaGRlIENocmlzdGlhbnNlbi4KZGlmZiAtLWdpdCBhL1dl
YktpdC9xdC9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudFF0LmNwcCBiL1dlYktpdC9x
dC9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudFF0LmNwcAppbmRleCAyMzE2NDgxLi5h
MTQ0MWE4IDEwMDY0NAotLS0gYS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJD
bGllbnRRdC5jcHAKKysrIGIvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xp
ZW50UXQuY3BwCkBAIC0xMjcyLDYgKzEyNzIsMTAgQEAgdm9pZCBGcmFtZUxvYWRlckNsaWVudFF0
OjpkaWRUcmFuc2ZlckNoaWxkRnJhbWVUb05ld0RvY3VtZW50KFBhZ2UqKQogICAgIH0KIH0KIAor
dm9pZCBGcmFtZUxvYWRlckNsaWVudFF0Ojp0cmFuc2ZlckxvYWRpbmdSZXNvdXJjZUZyb21QYWdl
KHVuc2lnbmVkIGxvbmcsIERvY3VtZW50TG9hZGVyKiwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0Jiwg
UGFnZSopCit7Cit9CisKIE9iamVjdENvbnRlbnRUeXBlIEZyYW1lTG9hZGVyQ2xpZW50UXQ6Om9i
amVjdENvbnRlbnRUeXBlKGNvbnN0IEtVUkwmIHVybCwgY29uc3QgU3RyaW5nJiBfbWltZVR5cGUp
CiB7CiAvLyAgICBxRGVidWcoKTw8IiArKysrKysrKysrKysrKysrIHVybCBpcyAiPDx1cmwucHJl
dHR5VVJMKCk8PCIsIG1pbWUgPSAiPDxfbWltZVR5cGU7CmRpZmYgLS1naXQgYS9XZWJLaXQvcXQv
V2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRRdC5oIGIvV2ViS2l0L3F0L1dlYkNvcmVT
dXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50UXQuaAppbmRleCA5MTAxM2RmLi4zMTNhMzIxIDEwMDY0
NAotLS0gYS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRRdC5oCisr
KyBiL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudFF0LmgKQEAgLTE5
OSw2ICsxOTksNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBQYXNzUmVmUHRyPEZyYW1lPiBjcmVh
dGVGcmFtZShjb25zdCBLVVJMJiB1cmwsIGNvbnN0IFN0cmluZyYgbmFtZSwgSFRNTEZyYW1lT3du
ZXJFbGVtZW50KiBvd25lckVsZW1lbnQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Y29uc3QgU3RyaW5nJiByZWZlcnJlciwgYm9vbCBhbGxvd3NTY3JvbGxpbmcsIGludCBtYXJnaW5X
aWR0aCwgaW50IG1hcmdpbkhlaWdodCk7CiAgICAgdmlydHVhbCB2b2lkIGRpZFRyYW5zZmVyQ2hp
bGRGcmFtZVRvTmV3RG9jdW1lbnQoV2ViQ29yZTo6UGFnZSopOworICAgIHZpcnR1YWwgdm9pZCB0
cmFuc2ZlckxvYWRpbmdSZXNvdXJjZUZyb21QYWdlKHVuc2lnbmVkIGxvbmcsIFdlYkNvcmU6OkRv
Y3VtZW50TG9hZGVyKiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgV2ViQ29yZTo6
UGFnZSopOwogICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxXaWRnZXQ+IGNyZWF0ZVBsdWdpbihjb25z
dCBJbnRTaXplJiwgSFRNTFBsdWdJbkVsZW1lbnQqLCBjb25zdCBLVVJMJiwgY29uc3QgVmVjdG9y
PFN0cmluZz4mLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYsIGNvbnN0IFN0cmluZyYsIGJvb2wpOwog
ICAgIHZpcnR1YWwgdm9pZCByZWRpcmVjdERhdGFUb1BsdWdpbihXaWRnZXQqIHBsdWdpbldpZGdl
dCk7CiAKZGlmZiAtLWdpdCBhL1dlYktpdC93aW4vQ2hhbmdlTG9nIGIvV2ViS2l0L3dpbi9DaGFu
Z2VMb2cKaW5kZXggYjcxZTIzMi4uM2VlOTEyZCAxMDA2NDQKLS0tIGEvV2ViS2l0L3dpbi9DaGFu
Z2VMb2cKKysrIGIvV2ViS2l0L3dpbi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAxMC0x
MC0yNSAgSmVubiBCcmFpdGh3YWl0ZSAgPGplbm5iQGNocm9taXVtLm9yZz4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZXNvdXJjZSB0cmFja2luZyBm
YWlsdXJlIHdoZW4gdHJ5aW5nIHRvIG1vdmUgYSBmcmFtZSBiZXR3ZWVuIGRvY3VtZW50cworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDQ3MTMKKworICAg
ICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcDoKKyAgICAgICAg
KFdlYkZyYW1lTG9hZGVyQ2xpZW50Ojp0cmFuc2ZlckxvYWRpbmdSZXNvdXJjZUZyb21QYWdlKToK
KyAgICAgICAgRW1wdHkgbWV0aG9kLgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkZyYW1l
TG9hZGVyQ2xpZW50Lmg6CisKIDIwMTAtMTAtMjUgIFBhdHJpY2sgR2Fuc3RlcmVyICA8cGFyb2dh
QHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGF2aWQgS2lsemVyLgpkaWZmIC0t
Z2l0IGEvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAg
Yi9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcAppbmRl
eCAxOTNmNjg1Li5mNDk5ODkyIDEwMDY0NAotLS0gYS9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0
L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcAorKysgYi9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0
L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcApAQCAtNzM3LDYgKzczNywxMCBAQCB2b2lkIFdlYkZy
YW1lTG9hZGVyQ2xpZW50OjpkaWRUcmFuc2ZlckNoaWxkRnJhbWVUb05ld0RvY3VtZW50KFBhZ2Uq
KQogICAgICAgICBtX3dlYkZyYW1lLT5zZXRXZWJWaWV3KHdlYlZpZXcpOwogfQogCit2b2lkIFdl
YkZyYW1lTG9hZGVyQ2xpZW50Ojp0cmFuc2ZlckxvYWRpbmdSZXNvdXJjZUZyb21QYWdlKHVuc2ln
bmVkIGxvbmcsIERvY3VtZW50TG9hZGVyKiwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgUGFnZSop
Cit7Cit9CisKIFBhc3NSZWZQdHI8RnJhbWU+IFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpjcmVhdGVG
cmFtZShjb25zdCBLVVJMJiBVUkwsIGNvbnN0IFN0cmluZyYgbmFtZSwgSFRNTEZyYW1lT3duZXJF
bGVtZW50KiBvd25lckVsZW1lbnQsIGNvbnN0IFN0cmluZyYgcmVmZXJyZXIpCiB7CiAgICAgRnJh
bWUqIGNvcmVGcmFtZSA9IGNvcmUobV93ZWJGcmFtZSk7CmRpZmYgLS1naXQgYS9XZWJLaXQvd2lu
L1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmggYi9XZWJLaXQvd2luL1dlYkNv
cmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmgKaW5kZXggZDRmMTUyMy4uYTg3Y2EzNSAx
MDA2NDQKLS0tIGEvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVu
dC5oCisrKyBiL1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQu
aApAQCAtMTEzLDYgKzExMyw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8V2Vi
Q29yZTo6RnJhbWU+IGNyZWF0ZUZyYW1lKGNvbnN0IFdlYkNvcmU6OktVUkwmIHVybCwgY29uc3Qg
V1RGOjpTdHJpbmcmIG5hbWUsIFdlYkNvcmU6OkhUTUxGcmFtZU93bmVyRWxlbWVudCogb3duZXJF
bGVtZW50LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFdURjo6U3RyaW5n
JiByZWZlcnJlciwgYm9vbCBhbGxvd3NTY3JvbGxpbmcsIGludCBtYXJnaW5XaWR0aCwgaW50IG1h
cmdpbkhlaWdodCk7CiAgICAgdmlydHVhbCB2b2lkIGRpZFRyYW5zZmVyQ2hpbGRGcmFtZVRvTmV3
RG9jdW1lbnQoV2ViQ29yZTo6UGFnZSopOworICAgIHZpcnR1YWwgdm9pZCB0cmFuc2ZlckxvYWRp
bmdSZXNvdXJjZUZyb21QYWdlKHVuc2lnbmVkIGxvbmcsIFdlYkNvcmU6OkRvY3VtZW50TG9hZGVy
KiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgV2ViQ29yZTo6UGFnZSopOwogICAg
IHZpcnR1YWwgUGFzc1JlZlB0cjxXZWJDb3JlOjpXaWRnZXQ+IGNyZWF0ZVBsdWdpbihjb25zdCBX
ZWJDb3JlOjpJbnRTaXplJiwgV2ViQ29yZTo6SFRNTFBsdWdJbkVsZW1lbnQqLCBjb25zdCBXZWJD
b3JlOjpLVVJMJiwgY29uc3QgVmVjdG9yPFdURjo6U3RyaW5nPiYsIGNvbnN0IFZlY3RvcjxXVEY6
OlN0cmluZz4mLCBjb25zdCBXVEY6OlN0cmluZyYsIGJvb2wgbG9hZE1hbnVhbGx5KTsKICAgICB2
aXJ0dWFsIHZvaWQgcmVkaXJlY3REYXRhVG9QbHVnaW4oV2ViQ29yZTo6V2lkZ2V0KiBwbHVnaW5X
aWRnZXQpOwogCmRpZmYgLS1naXQgYS9XZWJLaXQvd2luY2UvQ2hhbmdlTG9nIGIvV2ViS2l0L3dp
bmNlL0NoYW5nZUxvZwppbmRleCBiZTJhNGQ4Li41NTQzYzZmIDEwMDY0NAotLS0gYS9XZWJLaXQv
d2luY2UvQ2hhbmdlTG9nCisrKyBiL1dlYktpdC93aW5jZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwx
NSBAQAorMjAxMC0xMC0yNSAgSmVubiBCcmFpdGh3YWl0ZSAgPGplbm5iQGNocm9taXVtLm9yZz4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZXNvdXJj
ZSB0cmFja2luZyBmYWlsdXJlIHdoZW4gdHJ5aW5nIHRvIG1vdmUgYSBmcmFtZSBiZXR3ZWVuIGRv
Y3VtZW50cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
NDQ3MTMKKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50V2luQ0Uu
Y3BwOgorICAgICAgICAoV2ViS2l0OjpGcmFtZUxvYWRlckNsaWVudFdpbkNFOjp0cmFuc2Zlckxv
YWRpbmdSZXNvdXJjZUZyb21QYWdlKToKKyAgICAgICAgRW1wdHkgbWV0aG9kLgorICAgICAgICAq
IFdlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50V2luQ0UuaDoKKwogMjAxMC0xMC0yNSAg
UGF0cmljayBHYW5zdGVyZXIgIDxwYXJvZ2FAd2Via2l0Lm9yZz4KIAogICAgICAgICBSZXZpZXdl
ZCBieSBEYXZpZCBLaWx6ZXIuCmRpZmYgLS1naXQgYS9XZWJLaXQvd2luY2UvV2ViQ29yZVN1cHBv
cnQvRnJhbWVMb2FkZXJDbGllbnRXaW5DRS5jcHAgYi9XZWJLaXQvd2luY2UvV2ViQ29yZVN1cHBv
cnQvRnJhbWVMb2FkZXJDbGllbnRXaW5DRS5jcHAKaW5kZXggZmUzNGFiNC4uMDVmMTIxOSAxMDA2
NDQKLS0tIGEvV2ViS2l0L3dpbmNlL1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50V2lu
Q0UuY3BwCisrKyBiL1dlYktpdC93aW5jZS9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVu
dFdpbkNFLmNwcApAQCAtMTY1LDYgKzE2NSwxMCBAQCB2b2lkIEZyYW1lTG9hZGVyQ2xpZW50V2lu
Q0U6OmRpZFRyYW5zZmVyQ2hpbGRGcmFtZVRvTmV3RG9jdW1lbnQoUGFnZSopCiB7CiB9CiAKK3Zv
aWQgRnJhbWVMb2FkZXJDbGllbnRXaW5DRTo6dHJhbnNmZXJMb2FkaW5nUmVzb3VyY2VGcm9tUGFn
ZSh1bnNpZ25lZCBsb25nLCBEb2N1bWVudExvYWRlciosIGNvbnN0IFJlc291cmNlUmVxdWVzdCYs
IFBhZ2UqKQoreworfQorCiB2b2lkIEZyYW1lTG9hZGVyQ2xpZW50V2luQ0U6OnJlZGlyZWN0RGF0
YVRvUGx1Z2luKFdpZGdldCogcGx1Z2luV2lkZ2V0KQogewogICAgIEFTU0VSVCghbV9wbHVnaW5W
aWV3KTsKZGlmZiAtLWdpdCBhL1dlYktpdC93aW5jZS9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRl
ckNsaWVudFdpbkNFLmggYi9XZWJLaXQvd2luY2UvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJD
bGllbnRXaW5DRS5oCmluZGV4IGJmNWVhZmIuLmMxODE5YzIgMTAwNjQ0Ci0tLSBhL1dlYktpdC93
aW5jZS9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudFdpbkNFLmgKKysrIGIvV2ViS2l0
L3dpbmNlL1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50V2luQ0UuaApAQCAtMTA5LDYg
KzEwOSw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8V2ViQ29yZTo6RnJhbWU+
IGNyZWF0ZUZyYW1lKGNvbnN0IFdlYkNvcmU6OktVUkwmIHVybCwgY29uc3QgV1RGOjpTdHJpbmcm
IG5hbWUsIFdlYkNvcmU6OkhUTUxGcmFtZU93bmVyRWxlbWVudCogb3duZXJFbGVtZW50LAogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFdURjo6U3RyaW5nJiByZWZlcnJlciwg
Ym9vbCBhbGxvd3NTY3JvbGxpbmcsIGludCBtYXJnaW5XaWR0aCwgaW50IG1hcmdpbkhlaWdodCk7
CiAgICAgdmlydHVhbCB2b2lkIGRpZFRyYW5zZmVyQ2hpbGRGcmFtZVRvTmV3RG9jdW1lbnQoV2Vi
Q29yZTo6UGFnZSopOworICAgIHZpcnR1YWwgdm9pZCB0cmFuc2ZlckxvYWRpbmdSZXNvdXJjZUZy
b21QYWdlKHVuc2lnbmVkIGxvbmcsIFdlYkNvcmU6OkRvY3VtZW50TG9hZGVyKiwgY29uc3QgV2Vi
Q29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgV2ViQ29yZTo6UGFnZSopOwogICAgIHZpcnR1YWwgUGFz
c1JlZlB0cjxXZWJDb3JlOjpXaWRnZXQ+IGNyZWF0ZVBsdWdpbihjb25zdCBXZWJDb3JlOjpJbnRT
aXplJiwgV2ViQ29yZTo6SFRNTFBsdWdJbkVsZW1lbnQqLCBjb25zdCBXZWJDb3JlOjpLVVJMJiwg
Y29uc3QgV1RGOjpWZWN0b3I8V1RGOjpTdHJpbmc+JiwgY29uc3QgV1RGOjpWZWN0b3I8V1RGOjpT
dHJpbmc+JiwgY29uc3QgV1RGOjpTdHJpbmcmLCBib29sKTsKICAgICB2aXJ0dWFsIHZvaWQgcmVk
aXJlY3REYXRhVG9QbHVnaW4oV2ViQ29yZTo6V2lkZ2V0KiBwbHVnaW5XaWRnZXQpOwogICAgIHZp
cnR1YWwgUGFzc1JlZlB0cjxXZWJDb3JlOjpXaWRnZXQ+IGNyZWF0ZUphdmFBcHBsZXRXaWRnZXQo
Y29uc3QgV2ViQ29yZTo6SW50U2l6ZSYsIFdlYkNvcmU6OkhUTUxBcHBsZXRFbGVtZW50KiwgY29u
c3QgV2ViQ29yZTo6S1VSTCYgYmFzZVVSTCwgY29uc3QgV1RGOjpWZWN0b3I8V1RGOjpTdHJpbmc+
JiBwYXJhbU5hbWVzLCBjb25zdCBXVEY6OlZlY3RvcjxXVEY6OlN0cmluZz4mIHBhcmFtVmFsdWVz
KTsKZGlmZiAtLWdpdCBhL1dlYktpdC93eC9DaGFuZ2VMb2cgYi9XZWJLaXQvd3gvQ2hhbmdlTG9n
CmluZGV4IDZhYTljZTQuLmJjNTYxZDEgMTAwNjQ0Ci0tLSBhL1dlYktpdC93eC9DaGFuZ2VMb2cK
KysrIGIvV2ViS2l0L3d4L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDEwLTEwLTI1ICBK
ZW5uIEJyYWl0aHdhaXRlICA8amVubmJAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlc291cmNlIHRyYWNraW5nIGZhaWx1cmUg
d2hlbiB0cnlpbmcgdG8gbW92ZSBhIGZyYW1lIGJldHdlZW4gZG9jdW1lbnRzCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00NDcxMworCisgICAgICAgICog
V2ViS2l0U3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudFd4LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkZyYW1lTG9hZGVyQ2xpZW50V3g6OnRyYW5zZmVyTG9hZGluZ1Jlc291cmNlRnJvbVBhZ2UpOgor
ICAgICAgICBFbXB0eSBtZXRob2QuCisgICAgICAgICogV2ViS2l0U3VwcG9ydC9GcmFtZUxvYWRl
ckNsaWVudFd4Lmg6CisKIDIwMTAtMTAtMjIgIFNhbSBXZWluaWcgIDxzYW1Ad2Via2l0Lm9yZz4K
IAogICAgICAgICBSZXZpZXdlZCBieSBBbmRlcnMgQ2FybHNzb24uCmRpZmYgLS1naXQgYS9XZWJL
aXQvd3gvV2ViS2l0U3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudFd4LmNwcCBiL1dlYktpdC93eC9X
ZWJLaXRTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50V3guY3BwCmluZGV4IDQxZjBmOGYuLjBlNDcx
Y2EgMTAwNjQ0Ci0tLSBhL1dlYktpdC93eC9XZWJLaXRTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50
V3guY3BwCisrKyBiL1dlYktpdC93eC9XZWJLaXRTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50V3gu
Y3BwCkBAIC04NjMsNiArODYzLDEwIEBAIHZvaWQgRnJhbWVMb2FkZXJDbGllbnRXeDo6ZGlkVHJh
bnNmZXJDaGlsZEZyYW1lVG9OZXdEb2N1bWVudChQYWdlKikKIHsKIH0KIAordm9pZCBGcmFtZUxv
YWRlckNsaWVudFd4Ojp0cmFuc2ZlckxvYWRpbmdSZXNvdXJjZUZyb21QYWdlKHVuc2lnbmVkIGxv
bmcsIERvY3VtZW50TG9hZGVyKiwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgUGFnZSopCit7Cit9
CisKIE9iamVjdENvbnRlbnRUeXBlIEZyYW1lTG9hZGVyQ2xpZW50V3g6Om9iamVjdENvbnRlbnRU
eXBlKGNvbnN0IEtVUkwmIHVybCwgY29uc3QgU3RyaW5nJiBtaW1lVHlwZSkKIHsKICAgICBub3RJ
bXBsZW1lbnRlZCgpOwpkaWZmIC0tZ2l0IGEvV2ViS2l0L3d4L1dlYktpdFN1cHBvcnQvRnJhbWVM
b2FkZXJDbGllbnRXeC5oIGIvV2ViS2l0L3d4L1dlYktpdFN1cHBvcnQvRnJhbWVMb2FkZXJDbGll
bnRXeC5oCmluZGV4IGJiODM3ODQuLmIxOTY3ZjIgMTAwNjQ0Ci0tLSBhL1dlYktpdC93eC9XZWJL
aXRTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50V3guaAorKysgYi9XZWJLaXQvd3gvV2ViS2l0U3Vw
cG9ydC9GcmFtZUxvYWRlckNsaWVudFd4LmgKQEAgLTIwNCw2ICsyMDQsNyBAQCBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAgICAgICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxGcmFtZT4gY3JlYXRlRnJhbWUo
Y29uc3QgS1VSTCYgdXJsLCBjb25zdCBTdHJpbmcmIG5hbWUsIEhUTUxGcmFtZU93bmVyRWxlbWVu
dCogb3duZXJFbGVtZW50LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25z
dCBTdHJpbmcmIHJlZmVycmVyLCBib29sIGFsbG93c1Njcm9sbGluZywgaW50IG1hcmdpbldpZHRo
LCBpbnQgbWFyZ2luSGVpZ2h0KTsKICAgICAgICAgdmlydHVhbCB2b2lkIGRpZFRyYW5zZmVyQ2hp
bGRGcmFtZVRvTmV3RG9jdW1lbnQoUGFnZSopOworICAgICAgICB2aXJ0dWFsIHZvaWQgdHJhbnNm
ZXJMb2FkaW5nUmVzb3VyY2VGcm9tUGFnZSh1bnNpZ25lZCBsb25nLCBEb2N1bWVudExvYWRlcios
IGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIFBhZ2UqKTsKICAgICAgICAgdmlydHVhbCBQYXNzUmVm
UHRyPFdpZGdldD4gY3JlYXRlUGx1Z2luKGNvbnN0IEludFNpemUmLCBIVE1MUGx1Z0luRWxlbWVu
dCosIGNvbnN0IEtVUkwmLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYsIGNvbnN0IFZlY3RvcjxTdHJp
bmc+JiwgY29uc3QgU3RyaW5nJiwgYm9vbCBsb2FkTWFudWFsbHkpIDsKICAgICAgICAgdmlydHVh
bCB2b2lkIHJlZGlyZWN0RGF0YVRvUGx1Z2luKFdpZGdldCogcGx1Z2luV2lkZ2V0KTsKICAgICAg
ICAgdmlydHVhbCBSZXNvdXJjZUVycm9yIHBsdWdpbldpbGxIYW5kbGVMb2FkRXJyb3IoY29uc3Qg
UmVzb3VyY2VSZXNwb25zZSYpOwpkaWZmIC0tZ2l0IGEvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9XZWJL
aXQyL0NoYW5nZUxvZwppbmRleCAzY2NkNzc1Li40NjAwNTFhIDEwMDY0NAotLS0gYS9XZWJLaXQy
L0NoYW5nZUxvZworKysgYi9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDEw
LTEwLTI1ICBKZW5uIEJyYWl0aHdhaXRlICA8amVubmJAY2hyb21pdW0ub3JnPgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlc291cmNlIHRyYWNraW5n
IGZhaWx1cmUgd2hlbiB0cnlpbmcgdG8gbW92ZSBhIGZyYW1lIGJldHdlZW4gZG9jdW1lbnRzCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00NDcxMworCisg
ICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5j
cHA6CisgICAgICAgIChXZWJLaXQ6OldlYkZyYW1lTG9hZGVyQ2xpZW50Ojp0cmFuc2ZlckxvYWRp
bmdSZXNvdXJjZUZyb21QYWdlKToKKyAgICAgICAgRW1wdHkgbWV0aG9kLgorICAgICAgICAqIFdl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaDoKKwogMjAxMC0x
MC0yNSAgRGFuIEJlcm5zdGVpbiAgPG1pdHpAYXBwbGUuY29tPgogCiAgICAgICAgIE5vbi1DYXJi
b24gYnVpbGQgZml4LgpkaWZmIC0tZ2l0IGEvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcCBiL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAKaW5kZXggZGEzYTczYi4uN2UzODVkMCAx
MDA2NDQKLS0tIGEvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9h
ZGVyQ2xpZW50LmNwcAorKysgYi9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2Vi
RnJhbWVMb2FkZXJDbGllbnQuY3BwCkBAIC05NjksNiArOTY5LDExIEBAIHZvaWQgV2ViRnJhbWVM
b2FkZXJDbGllbnQ6OmRpZFRyYW5zZmVyQ2hpbGRGcmFtZVRvTmV3RG9jdW1lbnQoUGFnZSopCiAg
ICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KIAordm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6dHJh
bnNmZXJMb2FkaW5nUmVzb3VyY2VGcm9tUGFnZSh1bnNpZ25lZCBsb25nLCBEb2N1bWVudExvYWRl
ciosIGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIFBhZ2UqKQoreworICAgIG5vdEltcGxlbWVudGVk
KCk7Cit9CisKIFBhc3NSZWZQdHI8V2lkZ2V0PiBXZWJGcmFtZUxvYWRlckNsaWVudDo6Y3JlYXRl
UGx1Z2luKGNvbnN0IEludFNpemUmLCBIVE1MUGx1Z0luRWxlbWVudCogcGx1Z2luRWxlbWVudCwg
Y29uc3QgS1VSTCYgdXJsLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgcGFyYW1OYW1lcywgY29uc3Qg
VmVjdG9yPFN0cmluZz4mIHBhcmFtVmFsdWVzLCBjb25zdCBTdHJpbmcmIG1pbWVUeXBlLCBib29s
IGxvYWRNYW51YWxseSkKIHsKICAgICBBU1NFUlQocGFyYW1OYW1lcy5zaXplKCkgPT0gcGFyYW1W
YWx1ZXMuc2l6ZSgpKTsKZGlmZiAtLWdpdCBhL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oIGIvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmgKaW5kZXggMWFiZGFmNy4uODY2YTA3MCAxMDA2
NDQKLS0tIGEvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVy
Q2xpZW50LmgKKysrIGIvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1l
TG9hZGVyQ2xpZW50LmgKQEAgLTE3Niw2ICsxNzYsNyBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwg
UGFzc1JlZlB0cjxXZWJDb3JlOjpGcmFtZT4gY3JlYXRlRnJhbWUoY29uc3QgV2ViQ29yZTo6S1VS
TCYgdXJsLCBjb25zdCBTdHJpbmcmIG5hbWUsIFdlYkNvcmU6OkhUTUxGcmFtZU93bmVyRWxlbWVu
dCogb3duZXJFbGVtZW50LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgY29uc3QgU3RyaW5nJiByZWZlcnJlciwgYm9vbCBhbGxvd3NTY3JvbGxpbmcsIGludCBtYXJn
aW5XaWR0aCwgaW50IG1hcmdpbkhlaWdodCk7CiAgICAgdmlydHVhbCB2b2lkIGRpZFRyYW5zZmVy
Q2hpbGRGcmFtZVRvTmV3RG9jdW1lbnQoV2ViQ29yZTo6UGFnZSopOworICAgIHZpcnR1YWwgdm9p
ZCB0cmFuc2ZlckxvYWRpbmdSZXNvdXJjZUZyb21QYWdlKHVuc2lnbmVkIGxvbmcsIFdlYkNvcmU6
OkRvY3VtZW50TG9hZGVyKiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgV2ViQ29y
ZTo6UGFnZSopOwogICAgIAogICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxXZWJDb3JlOjpXaWRnZXQ+
IGNyZWF0ZVBsdWdpbihjb25zdCBXZWJDb3JlOjpJbnRTaXplJiwgV2ViQ29yZTo6SFRNTFBsdWdJ
bkVsZW1lbnQqLCBjb25zdCBXZWJDb3JlOjpLVVJMJiwgY29uc3QgVmVjdG9yPFN0cmluZz4mLCBj
b25zdCBWZWN0b3I8U3RyaW5nPiYsIGNvbnN0IFN0cmluZyYsIGJvb2wgbG9hZE1hbnVhbGx5KTsK
ICAgICB2aXJ0dWFsIHZvaWQgcmVkaXJlY3REYXRhVG9QbHVnaW4oV2ViQ29yZTo6V2lkZ2V0KiBw
bHVnaW5XaWRnZXQpOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>