<?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>54151</bug_id>
          
          <creation_ts>2011-02-09 15:33:46 -0800</creation_ts>
          <short_desc>Implement an API to play/pause/scrub animations</short_desc>
          <delta_ts>2020-01-27 06:29:19 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>CSS</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>CONFIGURATION CHANGED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>35696</blocked>
    
    <blocked>56242</blocked>
    
    <blocked>52061</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Dean Jackson">dino</reporter>
          <assigned_to name="Dean Jackson">dino</assigned_to>
          <cc>abarth</cc>
    
    <cc>andy</cc>
    
    <cc>buildbot</cc>
    
    <cc>cmarrin</cc>
    
    <cc>dglazkov</cc>
    
    <cc>eric</cc>
    
    <cc>graouts</cc>
    
    <cc>jamesr</cc>
    
    <cc>pbakaus</cc>
    
    <cc>peter</cc>
    
    <cc>rafael.lobo</cc>
    
    <cc>seddon.ryan</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>tonyg</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>348653</commentid>
    <comment_count>0</comment_count>
    <who name="Dean Jackson">dino</who>
    <bug_when>2011-02-09 15:33:46 -0800</bug_when>
    <thetext>We need an API to allow control over running animations, including being able to pause them and scrub the current time.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>348661</commentid>
    <comment_count>1</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2011-02-09 15:43:59 -0800</bug_when>
    <thetext>Can&apos;t wait.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>348672</commentid>
    <comment_count>2</comment_count>
      <attachid>81890</attachid>
    <who name="Dean Jackson">dino</who>
    <bug_when>2011-02-09 15:59:43 -0800</bug_when>
    <thetext>Created attachment 81890
Work in progress. Not for review.

Work in progress. Creates the DOM objects for the animations, exposed as a WebKitAnimationList of WebKitAnimations. These are plumbed through to a KeyframeAnimation on the element, but only duration is hooked up right now.

DOMWindow has a method for getting the animations on a particular element.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>348673</commentid>
    <comment_count>3</comment_count>
    <who name="Dean Jackson">dino</who>
    <bug_when>2011-02-09 16:01:03 -0800</bug_when>
    <thetext>BTW - I think if/when this lands, we can kill the pause API in DRT and simply do everything via the new API. This will allow us to go through multiple steps etc, and will handle a time before the delay, etc. So I&apos;ve blocked the DRT bug on this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>348707</commentid>
    <comment_count>4</comment_count>
    <who name="Dean Jackson">dino</who>
    <bug_when>2011-02-09 16:57:56 -0800</bug_when>
    <thetext>&lt;rdar://problem/8980852&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>355743</commentid>
    <comment_count>5</comment_count>
      <attachid>83423</attachid>
    <who name="Dean Jackson">dino</who>
    <bug_when>2011-02-22 18:22:38 -0800</bug_when>
    <thetext>Created attachment 83423
Work in Progress. Not for review.

Not for review. This is against a fairly old checkout, but it implements the API for software animations. You can play/pause and scrub to any moment in the duration of an animation. The usage is something like this:

var animations = window.getAnimationsForElement(someElement);

for (var i = 0; i &lt; animations.length; i++) {
  animations[i].pause();
  animations[i].elapsedTime = 10;
}

I need to get HW animations to work now. Step 1 will be to implement a way that HW animations can be instantly converted to software.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>362797</commentid>
    <comment_count>6</comment_count>
      <attachid>84828</attachid>
    <who name="Dean Jackson">dino</who>
    <bug_when>2011-03-04 16:37:37 -0800</bug_when>
    <thetext>Created attachment 84828
Another WIP patch

Everything animationy works. There is a crasher in AnimationBase destructor. Once that&apos;s fixed, write test cases, make sure we&apos;re not killing transitions, and then split this out into smaller patches. There are some easy bug fixes in here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>364842</commentid>
    <comment_count>7</comment_count>
      <attachid>85251</attachid>
    <who name="Dean Jackson">dino</who>
    <bug_when>2011-03-09 16:00:21 -0800</bug_when>
    <thetext>Created attachment 85251
Part 1 Patch

This is the first patch for this bug. It adds the new IDLs and implementations, but read-only for now. You can select animations and query their properties. You cannot yet scrub or play/pause. New test case to exercise the API.

I&apos;m willing to bet that I managed to screw up at least one of the non-Mac platform build files.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>364845</commentid>
    <comment_count>8</comment_count>
      <attachid>85251</attachid>
    <who name="Dean Jackson">dino</who>
    <bug_when>2011-03-09 16:02:59 -0800</bug_when>
    <thetext>Comment on attachment 85251
Part 1 Patch

style fail!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>364847</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-03-09 16:03:23 -0800</bug_when>
    <thetext>Attachment 85251 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;LayoutTests/ChangeLog&apos;, u&apos;LayoutTests/anim...&quot; exit_code: 1

Source/WebCore/page/animation/WebKitAnimation.cpp:95:  A case label should not be indented, but line up with its switch statement.  [whitespace/indent] [4]
Source/WebCore/page/animation/WebKitAnimationList.cpp:60:  One line control clauses should not use braces.  [whitespace/braces] [4]
Source/WebCore/page/animation/WebKitAnimationList.cpp:74:  One line control clauses should not use braces.  [whitespace/braces] [4]
Source/WebCore/page/animation/WebKitAnimationList.cpp:78:  One line control clauses should not use braces.  [whitespace/braces] [4]
Source/WebCore/page/animation/AnimationBase.h:175:  The parameter name &quot;time&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Source/WebCore/bindings/v8/custom/V8WebKitAnimationCustom.cpp:27:  Found other header before a header this file implements. Should be: config.h, primary header, blank line, and then alphabetically sorted.  [build/include_order] [4]
Source/WebCore/bindings/v8/custom/V8WebKitAnimationCustom.cpp:30:  Alphabetical sorting problem.  [build/include_order] [4]
Source/WebCore/page/animation/WebKitAnimation.h:36:  Missing space before {  [whitespace/braces] [5]
Source/WebCore/page/animation/WebKitAnimation.h:79:  Should have a space between // and comment  [whitespace/comments] [4]
Total errors found: 9 in 44 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>364867</commentid>
    <comment_count>10</comment_count>
      <attachid>85255</attachid>
    <who name="Dean Jackson">dino</who>
    <bug_when>2011-03-09 16:17:47 -0800</bug_when>
    <thetext>Created attachment 85255
Step 1 Patch

Same comments as last time. This just has style updates.

The style error in the v8 custom interface can be ignored. There is no header file for this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>364870</commentid>
    <comment_count>11</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-03-09 16:21:04 -0800</bug_when>
    <thetext>Attachment 85255 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;LayoutTests/ChangeLog&apos;, u&apos;LayoutTests/anim...&quot; exit_code: 1

Source/WebCore/bindings/v8/custom/V8WebKitAnimationCustom.cpp:28:  Found other header before a header this file implements. Should be: config.h, primary header, blank line, and then alphabetically sorted.  [build/include_order] [4]
Total errors found: 1 in 44 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>364871</commentid>
    <comment_count>12</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-03-09 16:22:05 -0800</bug_when>
    <thetext>Attachment 85251 did not build on chromium:
Build output: http://queues.webkit.org/results/8122043</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>364876</commentid>
    <comment_count>13</comment_count>
      <attachid>85255</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2011-03-09 16:36:17 -0800</bug_when>
    <thetext>Comment on attachment 85255
Step 1 Patch

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

Generally looks good!

&gt; LayoutTests/animations/animation-api-1.html:65
&gt; +var a_anims = a.webkitGetAnimations();

a_anims is fugly.

&gt; Source/WebCore/dom/Element.h:348
&gt; +    PassRefPtr&lt;WebKitAnimationList&gt; webkitGetAnimations();

Method should be const. You don&apos;t need the prefix to propagate into the function names that are not exposed through bindings (but I guess this one does).

&gt; Source/WebCore/page/animation/AnimationBase.cpp:811
&gt; +    // Remove ourselves from the wait lists if we still have a renderer.

I think you should flip the comment around. When does it not have a renderer?

&gt; Source/WebCore/page/animation/AnimationBase.h:192
&gt; +    Animation* animation() { return m_animation.get(); }

const. Return const Animation*?

&gt; Source/WebCore/page/animation/AnimationController.cpp:47
&gt; +// FIXME: Why isn&apos;t this set to 60fps or something?

File a bug?

&gt; Source/WebCore/rendering/RenderObject.h:754
&gt; +    PassRefPtr&lt;WebKitAnimationList&gt; animations();

Not sure why you need to add this method to RenderObject. Why not just get the list via AnimationController?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>364879</commentid>
    <comment_count>14</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-03-09 16:37:46 -0800</bug_when>
    <thetext>Attachment 85255 did not build on chromium:
Build output: http://queues.webkit.org/results/8118630</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>364888</commentid>
    <comment_count>15</comment_count>
    <who name="Chris Marrin">cmarrin</who>
    <bug_when>2011-03-09 16:55:11 -0800</bug_when>
    <thetext>View in context: https://bugs.webkit.org/attachment.cgi?id=85255&amp;action=review

Overall looks good. Some comments we might want to talk over before committing...

&gt; LayoutTests/ChangeLog:21
&gt; +

Since you can now pause and set the animation to a particular time, seems like the perfect opportunity to do some pixel tests?

&gt; Source/WebCore/page/animation/AnimationBase.cpp:1406
&gt; +    // TODO

I think these are better as FIXME: something

&gt; Source/WebCore/page/animation/AnimationBase.h:163
&gt;      

It seems odd that this API is in AnimationBase since KeyframeAnimations are the only things you can use this API on. Although, if you could unify some of the API, maybe this can be applicable to the other &quot;pause&quot; uses?

&gt; Source/WebCore/page/animation/AnimationBase.h:169
&gt; +    void pause();

How are these different from pauseAnimation/startAnimation and all that glop? Can the be unified?

&gt; Source/WebCore/page/animation/AnimationController.cpp:47
&gt; +// FIXME: Why isn&apos;t this set to 60fps or something?

Did you open a bug to deal with this at some point?

&gt; Source/WebCore/page/animation/CompositeAnimation.cpp:581
&gt; +

Is this possibly expensive operation in any fast paths? Or is it just used when the author asks for animations?

&gt; Source/WebCore/page/animation/WebKitAnimation.cpp:1
&gt; +/*

This is a confusing name. How is it different from AnimationBase, ImplicitAnimation, CompositeAnimation, etc.? Yes, I know many of the names are confusing, but let&apos;s not add to it. Maybe it would be better for this object to be in dom or html or something?

&gt; Source/WebCore/page/animation/WebKitAnimationList.cpp:1
&gt; +/*

Same comment about where to put this file. It&apos;s really a DOM node, so maybe it belongs somewhere else?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>364889</commentid>
    <comment_count>16</comment_count>
      <attachid>85255</attachid>
    <who name="James Robinson">jamesr</who>
    <bug_when>2011-03-09 16:58:28 -0800</bug_when>
    <thetext>Comment on attachment 85255
Step 1 Patch

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

&gt;&gt; Source/WebCore/page/animation/AnimationController.cpp:47
&gt;&gt; +// FIXME: Why isn&apos;t this set to 60fps or something?
&gt; 
&gt; File a bug?

I asked hyatt why this was set to 25ms and he said he just picked a number that seemed good at the time.  Since you&apos;re here, why not just bump it to 60fps?  I tried that locally and no tests failed, but it didn&apos;t seem to make any huge difference in animation quality either (at least to my eyes).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>364890</commentid>
    <comment_count>17</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2011-03-09 16:59:49 -0800</bug_when>
    <thetext>Hey and since you are poking at animations, do any of y&apos;all wanna look at the patch on bug 51952? :P</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>364894</commentid>
    <comment_count>18</comment_count>
    <who name="Dean Jackson">dino</who>
    <bug_when>2011-03-09 17:07:32 -0800</bug_when>
    <thetext>(In reply to comment #15)
&gt; 
&gt; &gt; LayoutTests/ChangeLog:21
&gt; &gt; +
&gt; 
&gt; Since you can now pause and set the animation to a particular time, seems like the perfect opportunity to do some pixel tests?

Nope - I can&apos;t pause yet. That&apos;s step/patch 2. 

&gt; 
&gt; &gt; Source/WebCore/page/animation/AnimationBase.cpp:1406
&gt; &gt; +    // TODO
&gt; 
&gt; I think these are better as FIXME: something

OK

&gt; 
&gt; &gt; Source/WebCore/page/animation/AnimationBase.h:163
&gt; &gt;      
&gt; 
&gt; It seems odd that this API is in AnimationBase since KeyframeAnimations are the only things you can use this API on. Although, if you could unify some of the API, maybe this can be applicable to the other &quot;pause&quot; uses?

You might be able to pause transitions (eventually). The reason they are on AnimationBase is that Step 2 dives deep into the heart of the animation state machine, and for that it needs class access.

&gt; 
&gt; &gt; Source/WebCore/page/animation/AnimationBase.h:169
&gt; &gt; +    void pause();
&gt; 
&gt; How are these different from pauseAnimation/startAnimation and all that glop? Can the be unified?

This pause() comes externally (from JS). I think it will be more clear in Patch 2.

&gt; 
&gt; &gt; Source/WebCore/page/animation/AnimationController.cpp:47
&gt; &gt; +// FIXME: Why isn&apos;t this set to 60fps or something?
&gt; 
&gt; Did you open a bug to deal with this at some point?

Nope, but I will.

&gt; 
&gt; &gt; Source/WebCore/page/animation/CompositeAnimation.cpp:581
&gt; &gt; +
&gt; 
&gt; Is this possibly expensive operation in any fast paths? Or is it just used when the author asks for animations?

I&apos;m not sure what operation you&apos;re talking about, but probably the one where you get the list of animations. I don&apos;t think it will ever be called outside the JS API. It is a bit expensive to create a list each time, but given that animations can disappear we can&apos;t really have it live. 

My feeling in general is that once you start using this API you&apos;re going to suffer in performance. Hardware animations will jump to software. But that&apos;s ok because you&apos;re probably an authoring tool of some sort, or have a good reason to start manipulating things.

&gt; 
&gt; &gt; Source/WebCore/page/animation/WebKitAnimation.cpp:1
&gt; &gt; +/*
&gt; 
&gt; This is a confusing name. How is it different from AnimationBase, ImplicitAnimation, CompositeAnimation, etc.? 

It&apos;s got this name because that is what makes sense externally. I can&apos;t think of a better name to expose to the bindings.

&gt; Yes, I know many of the names are confusing, but let&apos;s not add to it. Maybe it would be better for this object to be in dom or html or something?

Good point. The implementation probably could live in page.

&gt; 
&gt; &gt; Source/WebCore/page/animation/WebKitAnimationList.cpp:1
&gt; &gt; +/*
&gt; 
&gt; Same comment about where to put this file. It&apos;s really a DOM node, so maybe it belongs somewhere else?

page? It isn&apos;t strictly a DOM node - it doesn&apos;t exist in the document.

Thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>364897</commentid>
    <comment_count>19</comment_count>
    <who name="Dean Jackson">dino</who>
    <bug_when>2011-03-09 17:09:30 -0800</bug_when>
    <thetext>(In reply to comment #16)

&gt; I asked hyatt why this was set to 25ms and he said he just picked a number that seemed good at the time.  Since you&apos;re here, why not just bump it to 60fps?  I tried that locally and no tests failed, but it didn&apos;t seem to make any huge difference in animation quality either (at least to my eyes).

I&apos;ll do that, thanks!

James, while you&apos;re watching, I can&apos;t work out why Chromium builds are not generating V8WebKitAnimation.h. Do you have any idea? 

I added a new section for page/animation/%.idl in Android.derived.v8bindings.mk</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>364899</commentid>
    <comment_count>20</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2011-03-09 17:15:36 -0800</bug_when>
    <thetext>(In reply to comment #19)
&gt; (In reply to comment #16)
&gt; 
&gt; &gt; I asked hyatt why this was set to 25ms and he said he just picked a number that seemed good at the time.  Since you&apos;re here, why not just bump it to 60fps?  I tried that locally and no tests failed, but it didn&apos;t seem to make any huge difference in animation quality either (at least to my eyes).
&gt; 
&gt; I&apos;ll do that, thanks!
&gt; 
&gt; James, while you&apos;re watching, I can&apos;t work out why Chromium builds are not generating V8WebKitAnimation.h. Do you have any idea? 
&gt; 
&gt; I added a new section for page/animation/%.idl in Android.derived.v8bindings.mk

Chromium doesn&apos;t use Android.derived.v8bindings.mk (confusing, isn&apos;t it)

I think you need to add the new IDLs to the webcore_bindings_idl_files list in http://trac.webkit.org/export/80677/trunk/Source/WebCore/WebCore.gypi</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>364900</commentid>
    <comment_count>21</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2011-03-09 17:20:39 -0800</bug_when>
    <thetext>(In reply to comment #16)

&gt; I asked hyatt why this was set to 25ms and he said he just picked a number that seemed good at the time.  Since you&apos;re here, why not just bump it to 60fps?  I tried that locally and no tests failed, but it didn&apos;t seem to make any huge difference in animation quality either (at least to my eyes).

Probably because of bug 47447.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>364903</commentid>
    <comment_count>22</comment_count>
    <who name="Chris Marrin">cmarrin</who>
    <bug_when>2011-03-09 17:21:58 -0800</bug_when>
    <thetext>(In reply to comment #18)
&gt; &gt; &gt; 
&gt; &gt; &gt; Source/WebCore/page/animation/AnimationBase.h:163
&gt; &gt; &gt;      
&gt; &gt; 
&gt; &gt; It seems odd that this API is in AnimationBase since KeyframeAnimations are the only things you can use this API on. Although, if you could unify some of the API, maybe this can be applicable to the other &quot;pause&quot; uses?
&gt; 
&gt; You might be able to pause transitions (eventually). The reason they are on AnimationBase is that Step 2 dives deep into the heart of the animation state machine, and for that it needs class access.

Right. That makes sense.

&gt; 
&gt; &gt; 
&gt; &gt; &gt; Source/WebCore/page/animation/AnimationBase.h:169
&gt; &gt; &gt; +    void pause();
&gt; &gt; 
&gt; &gt; How are these different from pauseAnimation/startAnimation and all that glop? Can the be unified?
&gt; 
&gt; This pause() comes externally (from JS). I think it will be more clear in Patch 2.

But right now we have suspend/resume to stop all animations/transitions, the pauseAPI (which your patch will hopefully allow us to rip out), the play-state property, and your new API. Seems like it could all be rolled into one as far as AnimationBase is concerned. That would make the state machine simpler. Then the higher level logic (CompositeAnimation and AnimationController) can use that single API as needed.

But maybe that&apos;s a big scary change at this point. So maybe we just defer it until later (meaning &quot;never&quot; :-)

&gt; &gt; 
&gt; &gt; &gt; Source/WebCore/page/animation/CompositeAnimation.cpp:581
&gt; &gt; &gt; +
&gt; &gt; 
&gt; &gt; Is this possibly expensive operation in any fast paths? Or is it just used when the author asks for animations?
&gt; 
&gt; I&apos;m not sure what operation you&apos;re talking about, but probably the one where you get the list of animations. I don&apos;t think it will ever be called outside the JS API. It is a bit expensive to create a list each time, but given that animations can disappear we can&apos;t really have it live. 
&gt; 
&gt; My feeling in general is that once you start using this API you&apos;re going to suffer in performance. Hardware animations will jump to software. But that&apos;s ok because you&apos;re probably an authoring tool of some sort, or have a good reason to start manipulating things.

Yeah, that&apos;s fine. As long as this never gets called from any style change logic. If it&apos;s just for your new API, it can be slow as hell and the author will never notice.

&gt; 
&gt; &gt; 
&gt; &gt; &gt; Source/WebCore/page/animation/WebKitAnimation.cpp:1
&gt; &gt; &gt; +/*
&gt; &gt; 
&gt; &gt; This is a confusing name. How is it different from AnimationBase, ImplicitAnimation, CompositeAnimation, etc.? 
&gt; 
&gt; It&apos;s got this name because that is what makes sense externally. I can&apos;t think of a better name to expose to the bindings.
&gt; 
&gt; &gt; Yes, I know many of the names are confusing, but let&apos;s not add to it. Maybe it would be better for this object to be in dom or html or something?
&gt; 
&gt; Good point. The implementation probably could live in page.

My only push back is that the AnimationList is returned from a call on Element, so having it in &apos;dom&apos; might make sense. But moving it out to page with all the other node&apos;y things with idl&apos;s is probably fine.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>364936</commentid>
    <comment_count>23</comment_count>
    <who name="Build Bot">buildbot</who>
    <bug_when>2011-03-09 18:20:01 -0800</bug_when>
    <thetext>Attachment 85255 did not build on win:
Build output: http://queues.webkit.org/results/8114888</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>365662</commentid>
    <comment_count>24</comment_count>
      <attachid>85410</attachid>
    <who name="Dean Jackson">dino</who>
    <bug_when>2011-03-10 16:53:03 -0800</bug_when>
    <thetext>Created attachment 85410
Review changes

Changes from review. Hoping that I&apos;ve fixed build errors.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>365674</commentid>
    <comment_count>25</comment_count>
      <attachid>85410</attachid>
    <who name="Dean Jackson">dino</who>
    <bug_when>2011-03-10 17:00:08 -0800</bug_when>
    <thetext>Comment on attachment 85410
Review changes

Setting to r? I assume that&apos;s what kicks off the bots. The patch already has an r+.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>365676</commentid>
    <comment_count>26</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-03-10 17:03:43 -0800</bug_when>
    <thetext>Attachment 85410 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;LayoutTests/ChangeLog&apos;, u&apos;LayoutTests/anim...&quot; exit_code: 1

Source/WebCore/bindings/v8/custom/V8WebKitAnimationCustom.cpp:28:  Found other header before a header this file implements. Should be: config.h, primary header, blank line, and then alphabetically sorted.  [build/include_order] [4]
Total errors found: 1 in 42 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>365688</commentid>
    <comment_count>27</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-03-10 17:21:07 -0800</bug_when>
    <thetext>Attachment 85410 did not build on chromium:
Build output: http://queues.webkit.org/results/8141093</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>365709</commentid>
    <comment_count>28</comment_count>
    <who name="Build Bot">buildbot</who>
    <bug_when>2011-03-10 17:48:57 -0800</bug_when>
    <thetext>Attachment 85410 did not build on win:
Build output: http://queues.webkit.org/results/8131105</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>365803</commentid>
    <comment_count>29</comment_count>
      <attachid>85435</attachid>
    <who name="Dean Jackson">dino</who>
    <bug_when>2011-03-10 21:12:28 -0800</bug_when>
    <thetext>Created attachment 85435
Build fixes for Windows and Cr-Linux

Some moronic errors were breaking the build.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>365805</commentid>
    <comment_count>30</comment_count>
      <attachid>85435</attachid>
    <who name="Dean Jackson">dino</who>
    <bug_when>2011-03-10 21:18:42 -0800</bug_when>
    <thetext>Comment on attachment 85435
Build fixes for Windows and Cr-Linux

No review needed</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>365807</commentid>
    <comment_count>31</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-03-10 21:21:41 -0800</bug_when>
    <thetext>Attachment 85435 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;LayoutTests/ChangeLog&apos;, u&apos;LayoutTests/anim...&quot; exit_code: 1

Source/WebCore/bindings/v8/custom/V8WebKitAnimationCustom.cpp:28:  Found other header before a header this file implements. Should be: config.h, primary header, blank line, and then alphabetically sorted.  [build/include_order] [4]
Source/WebCore/bindings/v8/custom/V8WebKitAnimationCustom.cpp:31:  Found header this file implements after other header. Should be: config.h, primary header, blank line, and then alphabetically sorted.  [build/include_order] [4]
Total errors found: 2 in 43 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>365820</commentid>
    <comment_count>32</comment_count>
    <who name="Build Bot">buildbot</who>
    <bug_when>2011-03-10 22:00:11 -0800</bug_when>
    <thetext>Attachment 85435 did not build on win:
Build output: http://queues.webkit.org/results/8139146</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>365930</commentid>
    <comment_count>33</comment_count>
      <attachid>85459</attachid>
    <who name="Dean Jackson">dino</who>
    <bug_when>2011-03-11 04:41:27 -0800</bug_when>
    <thetext>Created attachment 85459
Updated patch

No review needed.

- It turns out the style error that I thought was a mistake was telling me I&apos;d made a typo (Webkit -&gt; WebKit) in the v8 bindings :)
- Use numeric_limit&lt;&gt; rather than INFINITY
- Make sure the animations are ordered as they are returned (test was occasionally failing)
- Test also checks for null now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>365932</commentid>
    <comment_count>34</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-03-11 04:44:00 -0800</bug_when>
    <thetext>Attachment 85459 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;LayoutTests/ChangeLog&apos;, u&apos;LayoutTests/anim...&quot; exit_code: 1

Source/WebCore/bindings/v8/custom/V8WebKitAnimationCustom.cpp:28:  Found other header before a header this file implements. Should be: config.h, primary header, blank line, and then alphabetically sorted.  [build/include_order] [4]
Source/WebCore/bindings/v8/custom/V8WebKitAnimationCustom.cpp:31:  Found header this file implements after other header. Should be: config.h, primary header, blank line, and then alphabetically sorted.  [build/include_order] [4]
Total errors found: 2 in 43 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>365957</commentid>
    <comment_count>35</comment_count>
    <who name="Dean Jackson">dino</who>
    <bug_when>2011-03-11 06:06:00 -0800</bug_when>
    <thetext>Part 1 landed.

http://trac.webkit.org/changeset/80846

Committing to http://svn.webkit.org/repository/webkit/trunk ...
	M	LayoutTests/ChangeLog
	A	LayoutTests/animations/animation-api-1-expected.txt
	A	LayoutTests/animations/animation-api-1.html
	M	LayoutTests/fast/dom/Window/window-properties-expected.txt
	M	LayoutTests/fast/dom/Window/window-property-descriptors-expected.txt
	M	LayoutTests/fast/dom/prototype-inheritance-2-expected.txt
	M	LayoutTests/fast/dom/prototype-inheritance-expected.txt
	M	LayoutTests/fast/js/global-constructors-expected.txt
	M	Source/WebCore/Android.derived.jscbindings.mk
	M	Source/WebCore/Android.derived.v8bindings.mk
	M	Source/WebCore/Android.mk
	M	Source/WebCore/Android.v8bindings.mk
	M	Source/WebCore/CMakeLists.txt
	M	Source/WebCore/ChangeLog
	M	Source/WebCore/CodeGenerators.pri
	M	Source/WebCore/DerivedSources.cpp
	M	Source/WebCore/DerivedSources.make
	M	Source/WebCore/GNUmakefile.am
	M	Source/WebCore/WebCore.gypi
	M	Source/WebCore/WebCore.pro
	M	Source/WebCore/WebCore.vcproj/WebCore.vcproj
	M	Source/WebCore/WebCore.xcodeproj/project.pbxproj
	M	Source/WebCore/bindings/js/JSBindingsAllInOne.cpp
	A	Source/WebCore/bindings/js/JSWebKitAnimationCustom.cpp
	A	Source/WebCore/bindings/js/JSWebKitAnimationListCustom.cpp
	A	Source/WebCore/bindings/v8/custom/V8WebKitAnimationCustom.cpp
	M	Source/WebCore/dom/Element.cpp
	M	Source/WebCore/dom/Element.h
	M	Source/WebCore/dom/Element.idl
	M	Source/WebCore/page/DOMWindow.idl
	A	Source/WebCore/page/WebKitAnimation.cpp
	A	Source/WebCore/page/WebKitAnimation.h
	A	Source/WebCore/page/WebKitAnimation.idl
	A	Source/WebCore/page/WebKitAnimationList.cpp
	A	Source/WebCore/page/WebKitAnimationList.h
	A	Source/WebCore/page/WebKitAnimationList.idl
	M	Source/WebCore/page/animation/AnimationBase.cpp
	M	Source/WebCore/page/animation/AnimationBase.h
	M	Source/WebCore/page/animation/AnimationController.cpp
	M	Source/WebCore/page/animation/AnimationController.h
	M	Source/WebCore/page/animation/AnimationControllerPrivate.h
	M	Source/WebCore/page/animation/CompositeAnimation.cpp
	M	Source/WebCore/page/animation/CompositeAnimation.h
Committed r80846</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>365966</commentid>
    <comment_count>36</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-03-11 06:33:30 -0800</bug_when>
    <thetext>http://trac.webkit.org/changeset/80846 might have broken Leopard Intel Release (Build)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>367155</commentid>
    <comment_count>37</comment_count>
    <who name="Tony Gentilcore">tonyg</who>
    <bug_when>2011-03-14 13:06:44 -0700</bug_when>
    <thetext>It looks like this might be causing bug 56325.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>380609</commentid>
    <comment_count>38</comment_count>
      <attachid>85255</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2011-04-06 10:46:43 -0700</bug_when>
    <thetext>Comment on attachment 85255
Step 1 Patch

Cleared Simon Fraser&apos;s review+ from obsolete attachment 85255 so that this bug does not appear in http://webkit.org/pending-commit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>457317</commentid>
    <comment_count>39</comment_count>
    <who name="Dean Jackson">dino</who>
    <bug_when>2011-08-25 18:08:00 -0700</bug_when>
    <thetext>*** Bug 26850 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>478336</commentid>
    <comment_count>40</comment_count>
    <who name="Paul Bakaus">pbakaus</who>
    <bug_when>2011-10-05 07:26:27 -0700</bug_when>
    <thetext>How much work still needs to be done to finish this feature? The web community is eargerly awaiting it (read: me :P).

Thanks,
Paul</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>478501</commentid>
    <comment_count>41</comment_count>
    <who name="Dean Jackson">dino</who>
    <bug_when>2011-10-05 10:48:06 -0700</bug_when>
    <thetext>(In reply to comment #40)
&gt; How much work still needs to be done to finish this feature? The web community is eargerly awaiting it (read: me :P).

It&apos;s stalled on me making a proposal to public-fx so that other vendors can comment :( I&apos;ve been busy with other things.

If someone wants to start that ball rolling, I&apos;d be most appreciative.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>479043</commentid>
    <comment_count>42</comment_count>
    <who name="Paul Bakaus">pbakaus</who>
    <bug_when>2011-10-06 03:42:58 -0700</bug_when>
    <thetext>(In reply to comment #41)
&gt; (In reply to comment #40)
&gt; &gt; How much work still needs to be done to finish this feature? The web community is eargerly awaiting it (read: me :P).
&gt; 
&gt; It&apos;s stalled on me making a proposal to public-fx so that other vendors can comment :( I&apos;ve been busy with other things.
&gt; 
&gt; If someone wants to start that ball rolling, I&apos;d be most appreciative.

Hey Dean, thanks for the update. I&apos;m actually happy to help if you can get me a gist of the API. Just sent you an email, let&apos;s connect and make it happen.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>747570</commentid>
    <comment_count>43</comment_count>
    <who name="Rafael Brandao">rafael.lobo</who>
    <bug_when>2012-10-22 08:30:43 -0700</bug_when>
    <thetext>How is this going? Is it done on some other bug or it has been declined?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>747760</commentid>
    <comment_count>44</comment_count>
    <who name="Dean Jackson">dino</who>
    <bug_when>2012-10-22 12:15:35 -0700</bug_when>
    <thetext>There has been work on an Animation API in W3C. I&apos;ve stalled on this bug until things are more clear there.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1611381</commentid>
    <comment_count>45</comment_count>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2020-01-27 06:29:19 -0800</bug_when>
    <thetext>We now support Web Animations and each Animation object can have its currentTime property manipulated, including CSS Animations and CSS Transitions.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>81890</attachid>
            <date>2011-02-09 15:59:43 -0800</date>
            <delta_ts>2011-02-22 18:22:38 -0800</delta_ts>
            <desc>Work in progress. Not for review.</desc>
            <filename>animation-api-wip.diff</filename>
            <type>text/plain</type>
            <size>41948</size>
            <attacher name="Dean Jackson">dino</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UgYi9Tb3VyY2Uv
V2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCmluZGV4IDQwYmJkN2YuLjJhYjgzM2MgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKKysrIGIvU291cmNlL1dl
YkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQpAQCAtNDAsNiArNDAsNyBAQCBWUEFUSCA9IFwKICAg
ICAkKFdlYkNvcmUpL2xvYWRlci9hcHBjYWNoZSBcCiAgICAgJChXZWJDb3JlKS9ub3RpZmljYXRp
b25zIFwKICAgICAkKFdlYkNvcmUpL3BhZ2UgXAorICAgICQoV2ViQ29yZSkvcGFnZS9hbmltYXRp
b24gXAogICAgICQoV2ViQ29yZSkvcGx1Z2lucyBcCiAgICAgJChXZWJDb3JlKS9zdG9yYWdlIFwK
ICAgICAkKFdlYkNvcmUpL3htbCBcCkBAIC01MDYsNyArNTA3LDkgQEAgRE9NX0NMQVNTRVMgPSBc
CiAgICAgVHJlZVdhbGtlciBcCiAgICAgVUlFdmVudCBcCiAgICAgVmFsaWRpdHlTdGF0ZSBcCisg
ICAgV2ViS2l0QW5pbWF0aW9uIFwKICAgICBXZWJLaXRBbmltYXRpb25FdmVudCBcCisgICAgV2Vi
S2l0QW5pbWF0aW9uTGlzdCBcCiAgICAgV2ViS2l0Q1NTS2V5ZnJhbWVSdWxlIFwKICAgICBXZWJL
aXRDU1NLZXlmcmFtZXNSdWxlIFwKICAgICBXZWJLaXRDU1NNYXRyaXggXApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDJiMjQ0OTUu
LjA0MGY3ZGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oKQEAgLTc4MCw2ICs3ODAsMTkgQEAKIAkJMzE2RkUxMTgwRTZFMURBNzAwQkY2
MDg4IC8qIEltcGxpY2l0QW5pbWF0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAzMTZGRTEwRTBFNkUxREE3MDBCRjYwODggLyogSW1wbGljaXRBbmlt
YXRpb24uaCAqLzsgfTsKIAkJMzE2RkUxMTkwRTZFMURBNzAwQkY2MDg4IC8qIEtleWZyYW1lQW5p
bWF0aW9uLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDMxNkZFMTBGMEU2RTFEQTcwMEJGNjA4OCAvKiBLZXlmcmFtZUFuaW1hdGlvbi5jcHAgKi87IH07
CiAJCTMxNkZFMTFBMEU2RTFEQTcwMEJGNjA4OCAvKiBLZXlmcmFtZUFuaW1hdGlvbi5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzE2RkUxMTAwRTZFMURB
NzAwQkY2MDg4IC8qIEtleWZyYW1lQW5pbWF0aW9uLmggKi87IH07CisJCTMxOTQ2MTQ4MTMwMUYy
QTMwMDRCQjNGOCAvKiBXZWJLaXRBbmltYXRpb24uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzE5NDYxNDYxMzAxRjJBMzAwNEJCM0Y4IC8qIFdlYktp
dEFuaW1hdGlvbi5jcHAgKi87IH07CisJCTMxOTQ2MTQ5MTMwMUYyQTMwMDRCQjNGOCAvKiBXZWJL
aXRBbmltYXRpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDMxOTQ2MTQ3MTMwMUYyQTMwMDRCQjNGOCAvKiBXZWJLaXRBbmltYXRpb24uaCAqLzsgfTsK
KwkJMzE5NDYxNjIxMzAyMEIyMDAwNEJCM0Y4IC8qIEpTV2ViS2l0QW5pbWF0aW9uLmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMxOTQ2MTYwMTMwMjBC
MjAwMDRCQjNGOCAvKiBKU1dlYktpdEFuaW1hdGlvbi5jcHAgKi87IH07CisJCTMxOTQ2MTYzMTMw
MjBCMjAwMDRCQjNGOCAvKiBKU1dlYktpdEFuaW1hdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzE5NDYxNjExMzAyMEIyMDAwNEJCM0Y4IC8qIEpT
V2ViS2l0QW5pbWF0aW9uLmggKi87IH07CisJCTMxOTQ2MTZBMTMwMjBCNjYwMDRCQjNGOCAvKiBE
T01XZWJLaXRBbmltYXRpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDMxOTQ2MTY4MTMwMjBCNjYwMDRCQjNGOCAvKiBET01XZWJLaXRBbmltYXRpb24u
aCAqLzsgfTsKKwkJMzE5NDYxNkIxMzAyMEI2NjAwNEJCM0Y4IC8qIERPTVdlYktpdEFuaW1hdGlv
bi5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMxOTQ2
MTY5MTMwMjBCNjYwMDRCQjNGOCAvKiBET01XZWJLaXRBbmltYXRpb24ubW0gKi87IH07CisJCTMx
OTQ2MThGMTMwMjEwNjQwMDRCQjNGOCAvKiBXZWJLaXRBbmltYXRpb25MaXN0LmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMTk0NjE4RDEzMDIxMDY0MDA0
QkIzRjggLyogV2ViS2l0QW5pbWF0aW9uTGlzdC5oICovOyB9OworCQkzMTk0NjE5MDEzMDIxMDY0
MDA0QkIzRjggLyogV2ViS2l0QW5pbWF0aW9uTGlzdC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMTk0NjE4RTEzMDIxMDY0MDA0QkIzRjggLyogV2Vi
S2l0QW5pbWF0aW9uTGlzdC5jcHAgKi87IH07CisJCTMxOTQ2MUZFMTMwMjJCQjgwMDRCQjNGOCAv
KiBKU1dlYktpdEFuaW1hdGlvbkxpc3QuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gMzE5NDYxRkMxMzAyMkJCODAwNEJCM0Y4IC8qIEpTV2ViS2l0QW5p
bWF0aW9uTGlzdC5jcHAgKi87IH07CisJCTMxOTQ2MUZGMTMwMjJCQjgwMDRCQjNGOCAvKiBKU1dl
YktpdEFuaW1hdGlvbkxpc3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDMxOTQ2MUZEMTMwMjJCQjgwMDRCQjNGOCAvKiBKU1dlYktpdEFuaW1hdGlvbkxp
c3QuaCAqLzsgfTsKKwkJMzE5NDYyMDQxMzAyMkJGMTAwNEJCM0Y4IC8qIERPTVdlYktpdEFuaW1h
dGlvbkxpc3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDMxOTQ2MjAyMTMwMjJCRjEwMDRCQjNGOCAvKiBET01XZWJLaXRBbmltYXRpb25MaXN0LmggKi87
IH07CisJCTMxOTQ2MjA1MTMwMjJCRjEwMDRCQjNGOCAvKiBET01XZWJLaXRBbmltYXRpb25MaXN0
Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzE5NDYy
MDMxMzAyMkJGMTAwNEJCM0Y4IC8qIERPTVdlYktpdEFuaW1hdGlvbkxpc3QubW0gKi87IH07CisJ
CTMxOTQ2MjMyMTMwMjJGNjUwMDRCQjNGOCAvKiBKU1dlYktpdEFuaW1hdGlvbkxpc3RDdXN0b20u
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzE5NDYy
MzExMzAyMkY2NTAwNEJCM0Y4IC8qIEpTV2ViS2l0QW5pbWF0aW9uTGlzdEN1c3RvbS5jcHAgKi87
IH07CiAJCTMxQzBGRjIxMEU0Q0VCNkUwMDdENkZFNSAvKiBXZWJLaXRBbmltYXRpb25FdmVudC5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMUMwRkYx
QjBFNENFQjZFMDA3RDZGRTUgLyogV2ViS2l0QW5pbWF0aW9uRXZlbnQuY3BwICovOyB9OwogCQkz
MUMwRkYyMjBFNENFQjZFMDA3RDZGRTUgLyogV2ViS2l0QW5pbWF0aW9uRXZlbnQuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMxQzBGRjFDMEU0Q0VCNkUw
MDdENkZFNSAvKiBXZWJLaXRBbmltYXRpb25FdmVudC5oICovOyB9OwogCQkzMUMwRkYyNDBFNENF
QjZFMDA3RDZGRTUgLyogV2ViS2l0VHJhbnNpdGlvbkV2ZW50LmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMxQzBGRjFFMEU0Q0VCNkUwMDdENkZFNSAv
KiBXZWJLaXRUcmFuc2l0aW9uRXZlbnQuY3BwICovOyB9OwpAQCAtNzEzNSw2ICs3MTQ4LDIxIEBA
CiAJCTMxNkZFMTBFMEU2RTFEQTcwMEJGNjA4OCAvKiBJbXBsaWNpdEFuaW1hdGlvbi5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBJbXBsaWNpdEFuaW1hdGlvbi5oOyBwYXRoID0g
YW5pbWF0aW9uL0ltcGxpY2l0QW5pbWF0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTMxNkZFMTBGMEU2RTFEQTcwMEJGNjA4OCAvKiBLZXlmcmFtZUFuaW1hdGlvbi5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBLZXlmcmFtZUFuaW1hdGlvbi5jcHA7
IHBhdGggPSBhbmltYXRpb24vS2V5ZnJhbWVBbmltYXRpb24uY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQkzMTZGRTExMDBFNkUxREE3MDBCRjYwODggLyogS2V5ZnJhbWVBbmltYXRp
b24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gS2V5ZnJhbWVBbmltYXRpb24u
aDsgcGF0aCA9IGFuaW1hdGlvbi9LZXlmcmFtZUFuaW1hdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQkzMTk0NjEzODEzMDFFRjRDMDA0QkIzRjggLyogV2ViS2l0QW5pbWF0aW9u
LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHRleHQ7IG5hbWUgPSBXZWJLaXRBbmltYXRpb24uaWRsOyBwYXRoID0g
YW5pbWF0aW9uL1dlYktpdEFuaW1hdGlvbi5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCTMxOTQ2MTQ2MTMwMUYyQTMwMDRCQjNGOCAvKiBXZWJLaXRBbmltYXRpb24uY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gV2ViS2l0QW5pbWF0aW9uLmNwcDsgcGF0
aCA9IGFuaW1hdGlvbi9XZWJLaXRBbmltYXRpb24uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQkzMTk0NjE0NzEzMDFGMkEzMDA0QkIzRjggLyogV2ViS2l0QW5pbWF0aW9uLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFdlYktpdEFuaW1hdGlvbi5oOyBwYXRoID0g
YW5pbWF0aW9uL1dlYktpdEFuaW1hdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQkzMTk0NjE2MDEzMDIwQjIwMDA0QkIzRjggLyogSlNXZWJLaXRBbmltYXRpb24uY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNXZWJLaXRBbmltYXRpb24uY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkzMTk0NjE2MTEzMDIwQjIwMDA0QkIzRjggLyog
SlNXZWJLaXRBbmltYXRpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNX
ZWJLaXRBbmltYXRpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMzE5NDYxNjgx
MzAyMEI2NjAwNEJCM0Y4IC8qIERPTVdlYktpdEFuaW1hdGlvbi5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBET01XZWJLaXRBbmltYXRpb24uaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJMzE5NDYxNjkxMzAyMEI2NjAwNEJCM0Y4IC8qIERPTVdlYktpdEFuaW1hdGlv
bi5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IERPTVdlYktpdEFu
aW1hdGlvbi5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMzE5NDYxNzgxMzAyMTAw
ODAwNEJCM0Y4IC8qIFdlYktpdEFuaW1hdGlvbkxpc3QuaWRsICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgbmFt
ZSA9IFdlYktpdEFuaW1hdGlvbkxpc3QuaWRsOyBwYXRoID0gYW5pbWF0aW9uL1dlYktpdEFuaW1h
dGlvbkxpc3QuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkzMTk0NjE4RDEzMDIx
MDY0MDA0QkIzRjggLyogV2ViS2l0QW5pbWF0aW9uTGlzdC5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IG5hbWUgPSBXZWJLaXRBbmltYXRpb25MaXN0Lmg7IHBhdGggPSBhbmltYXRpb24vV2Vi
S2l0QW5pbWF0aW9uTGlzdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkzMTk0NjE4
RTEzMDIxMDY0MDA0QkIzRjggLyogV2ViS2l0QW5pbWF0aW9uTGlzdC5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBXZWJLaXRBbmltYXRpb25MaXN0LmNwcDsgcGF0aCA9
IGFuaW1hdGlvbi9XZWJLaXRBbmltYXRpb25MaXN0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJMzE5NDYxRkMxMzAyMkJCODAwNEJCM0Y4IC8qIEpTV2ViS2l0QW5pbWF0aW9uTGlz
dC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1dlYktpdEFuaW1h
dGlvbkxpc3QuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkzMTk0NjFGRDEzMDIy
QkI4MDA0QkIzRjggLyogSlNXZWJLaXRBbmltYXRpb25MaXN0LmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IEpTV2ViS2l0QW5pbWF0aW9uTGlzdC5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQkzMTk0NjIwMjEzMDIyQkYxMDA0QkIzRjggLyogRE9NV2ViS2l0QW5pbWF0
aW9uTGlzdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBET01XZWJLaXRBbmlt
YXRpb25MaXN0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTMxOTQ2MjAzMTMwMjJC
RjEwMDRCQjNGOCAvKiBET01XZWJLaXRBbmltYXRpb25MaXN0Lm1tICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAub2JqY3BwOyBwYXRoID0gRE9NV2ViS2l0QW5pbWF0aW9uTGlzdC5tbTsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMzE5NDYyMzExMzAyMkY2NTAwNEJCM0Y4IC8qIEpTV2Vi
S2l0QW5pbWF0aW9uTGlzdEN1c3RvbS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBKU1dlYktpdEFuaW1hdGlvbkxpc3RDdXN0b20uY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQkzMUMwRkYxQjBFNENFQjZFMDA3RDZGRTUgLyogV2ViS2l0QW5pbWF0aW9u
RXZlbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViS2l0QW5p
bWF0aW9uRXZlbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkzMUMwRkYxQzBF
NENFQjZFMDA3RDZGRTUgLyogV2ViS2l0QW5pbWF0aW9uRXZlbnQuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gV2ViS2l0QW5pbWF0aW9uRXZlbnQuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJMzFDMEZGMUQwRTRDRUI2RTAwN0Q2RkU1IC8qIFdlYktpdEFuaW1hdGlv
bkV2ZW50LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBXZWJLaXRBbmltYXRpb25FdmVudC5p
ZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xMzE3Myw2ICsxMzIwMSwxMiBAQAog
CQkJCTMxNkZFMTBFMEU2RTFEQTcwMEJGNjA4OCAvKiBJbXBsaWNpdEFuaW1hdGlvbi5oICovLAog
CQkJCTMxNkZFMTBGMEU2RTFEQTcwMEJGNjA4OCAvKiBLZXlmcmFtZUFuaW1hdGlvbi5jcHAgKi8s
CiAJCQkJMzE2RkUxMTAwRTZFMURBNzAwQkY2MDg4IC8qIEtleWZyYW1lQW5pbWF0aW9uLmggKi8s
CisJCQkJMzE5NDYxNDYxMzAxRjJBMzAwNEJCM0Y4IC8qIFdlYktpdEFuaW1hdGlvbi5jcHAgKi8s
CisJCQkJMzE5NDYxNDcxMzAxRjJBMzAwNEJCM0Y4IC8qIFdlYktpdEFuaW1hdGlvbi5oICovLAor
CQkJCTMxOTQ2MTM4MTMwMUVGNEMwMDRCQjNGOCAvKiBXZWJLaXRBbmltYXRpb24uaWRsICovLAor
CQkJCTMxOTQ2MThFMTMwMjEwNjQwMDRCQjNGOCAvKiBXZWJLaXRBbmltYXRpb25MaXN0LmNwcCAq
LywKKwkJCQkzMTk0NjE4RDEzMDIxMDY0MDA0QkIzRjggLyogV2ViS2l0QW5pbWF0aW9uTGlzdC5o
ICovLAorCQkJCTMxOTQ2MTc4MTMwMjEwMDgwMDRCQjNGOCAvKiBXZWJLaXRBbmltYXRpb25MaXN0
LmlkbCAqLywKIAkJCSk7CiAJCQluYW1lID0gYW5pbWF0aW9uOwogCQkJc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsKQEAgLTE0OTI4LDYgKzE0OTYyLDEwIEBACiAJCQkJODVCQTREMEEwQUE2ODg2ODAw
ODgwNTJEIC8qIERPTUhUTUxVTGlzdEVsZW1lbnQubW0gKi8sCiAJCQkJMTVDNzcwQTQxMDBENDFD
RDAwNUJBMjY3IC8qIERPTVZhbGlkaXR5U3RhdGUuaCAqLywKIAkJCQkxNUM3NzBBMzEwMEQ0MUNE
MDA1QkEyNjcgLyogRE9NVmFsaWRpdHlTdGF0ZS5tbSAqLywKKwkJCQkzMTk0NjE2ODEzMDIwQjY2
MDA0QkIzRjggLyogRE9NV2ViS2l0QW5pbWF0aW9uLmggKi8sCisJCQkJMzE5NDYxNjkxMzAyMEI2
NjAwNEJCM0Y4IC8qIERPTVdlYktpdEFuaW1hdGlvbi5tbSAqLywKKwkJCQkzMTk0NjIwMjEzMDIy
QkYxMDA0QkIzRjggLyogRE9NV2ViS2l0QW5pbWF0aW9uTGlzdC5oICovLAorCQkJCTMxOTQ2MjAz
MTMwMjJCRjEwMDRCQjNGOCAvKiBET01XZWJLaXRBbmltYXRpb25MaXN0Lm1tICovLAogCQkJKTsK
IAkJCW5hbWUgPSBIVE1MOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKQEAgLTE2MjQyLDYg
KzE2MjgwLDEwIEBACiAJCQkJNDlDN0I5OTIxMDQyRDJEMzAwMDlENDQ3IC8qIEpTV2ViR0xUZXh0
dXJlLmggKi8sCiAJCQkJMEM0NTM0MjUxMENEQkJGQTAwODY5MTU3IC8qIEpTV2ViR0xVbmlmb3Jt
TG9jYXRpb24uY3BwICovLAogCQkJCTBDNDUzNDI2MTBDREJCRkEwMDg2OTE1NyAvKiBKU1dlYkdM
VW5pZm9ybUxvY2F0aW9uLmggKi8sCisJCQkJMzE5NDYxNjAxMzAyMEIyMDAwNEJCM0Y4IC8qIEpT
V2ViS2l0QW5pbWF0aW9uLmNwcCAqLywKKwkJCQkzMTk0NjE2MTEzMDIwQjIwMDA0QkIzRjggLyog
SlNXZWJLaXRBbmltYXRpb24uaCAqLywKKwkJCQkzMTk0NjFGQzEzMDIyQkI4MDA0QkIzRjggLyog
SlNXZWJLaXRBbmltYXRpb25MaXN0LmNwcCAqLywKKwkJCQkzMTk0NjFGRDEzMDIyQkI4MDA0QkIz
RjggLyogSlNXZWJLaXRBbmltYXRpb25MaXN0LmggKi8sCiAJCQkJOTNGMUQ1QkUxMkQ1MzM1NjAw
ODMyQkVDIC8qIEpTV2ViS2l0TG9zZUNvbnRleHQuY3BwICovLAogCQkJCTkzRjFENUJGMTJENTMz
NTYwMDgzMkJFQyAvKiBKU1dlYktpdExvc2VDb250ZXh0LmggKi8sCiAJCQkpOwpAQCAtMTc5NDUs
NiArMTc5ODcsNyBAQAogCQkJCTQ5RUVDRjc2MTA1MDhEOUMwMDA5OUZBQiAvKiBKU1VpbnQzMkFy
cmF5Q3VzdG9tLmNwcCAqLywKIAkJCQk0OUVFQ0Y3NTEwNTA4RDlDMDAwOTlGQUIgLyogSlNVaW50
OEFycmF5Q3VzdG9tLmNwcCAqLywKIAkJCQk0OUVFRDE0QzEwNTE5NzFBMDAwOTlGQUIgLyogSlNX
ZWJHTFJlbmRlcmluZ0NvbnRleHRDdXN0b20uY3BwICovLAorCQkJCTMxOTQ2MjMxMTMwMjJGNjUw
MDRCQjNGOCAvKiBKU1dlYktpdEFuaW1hdGlvbkxpc3RDdXN0b20uY3BwICovLAogCQkJCUUxQUQx
NEM0MTI5NzM1NDkwMEFDQTk4OSAvKiBKU1dlYktpdENTU0tleWZyYW1lUnVsZUN1c3RvbS5jcHAg
Ki8sCiAJCQkJRTFBRDE0QjQxMjk3MzRDQTAwQUNBOTg5IC8qIEpTV2ViS2l0Q1NTS2V5ZnJhbWVz
UnVsZUN1c3RvbS5jcHAgKi8sCiAJCQkJQkMyNzVCN0MxMUM1RDIzNTAwQzkyMDZDIC8qIEpTV2Vi
S2l0Q1NTTWF0cml4Q3VzdG9tLmNwcCAqLywKQEAgLTIyNDQyLDYgKzIyNDg1LDEyIEBACiAJCQkJ
RTFCRTUxMkUwQ0Y2QzUxMjAwMkVBOTU5IC8qIFhTTFRVbmljb2RlU29ydC5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJOTM0M0NCODIxMkYyNUU1MTAwMzNDNUVFIC8qIFRleHRDb2RlY1VURjguaCBpbiBI
ZWFkZXJzICovLAogCQkJCTk3N0UyRTBGMTJGMEZDOUMwMEMxMzM3OSAvKiBYU1NGaWx0ZXIuaCBp
biBIZWFkZXJzICovLAorCQkJCTMxOTQ2MTQ5MTMwMUYyQTMwMDRCQjNGOCAvKiBXZWJLaXRBbmlt
YXRpb24uaCBpbiBIZWFkZXJzICovLAorCQkJCTMxOTQ2MTYzMTMwMjBCMjAwMDRCQjNGOCAvKiBK
U1dlYktpdEFuaW1hdGlvbi5oIGluIEhlYWRlcnMgKi8sCisJCQkJMzE5NDYxNkExMzAyMEI2NjAw
NEJCM0Y4IC8qIERPTVdlYktpdEFuaW1hdGlvbi5oIGluIEhlYWRlcnMgKi8sCisJCQkJMzE5NDYx
OEYxMzAyMTA2NDAwNEJCM0Y4IC8qIFdlYktpdEFuaW1hdGlvbkxpc3QuaCBpbiBIZWFkZXJzICov
LAorCQkJCTMxOTQ2MUZGMTMwMjJCQjgwMDRCQjNGOCAvKiBKU1dlYktpdEFuaW1hdGlvbkxpc3Qu
aCBpbiBIZWFkZXJzICovLAorCQkJCTMxOTQ2MjA0MTMwMjJCRjEwMDRCQjNGOCAvKiBET01XZWJL
aXRBbmltYXRpb25MaXN0LmggaW4gSGVhZGVycyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVw
bG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKQEAgLTI1MTI2LDYgKzI1MTc1LDEzIEBA
CiAJCQkJOTM0M0NCODExMkYyNUU1MTAwMzNDNUVFIC8qIFRleHRDb2RlY1VURjguY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJOTc3RTJFMEUxMkYwRkM5QzAwQzEzMzc5IC8qIFhTU0ZpbHRlci5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQkwRjI5QzE2RTEzMDBDMkUyMDAyRDc5NEUgLyogQWNjZXNzaWJp
bGl0eUFsbEluT25lLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTMxOTQ2MTQ4MTMwMUYyQTMwMDRC
QjNGOCAvKiBXZWJLaXRBbmltYXRpb24uY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMzE5NDYxNjIx
MzAyMEIyMDAwNEJCM0Y4IC8qIEpTV2ViS2l0QW5pbWF0aW9uLmNwcCBpbiBTb3VyY2VzICovLAor
CQkJCTMxOTQ2MTZCMTMwMjBCNjYwMDRCQjNGOCAvKiBET01XZWJLaXRBbmltYXRpb24ubW0gaW4g
U291cmNlcyAqLywKKwkJCQkzMTk0NjE5MDEzMDIxMDY0MDA0QkIzRjggLyogV2ViS2l0QW5pbWF0
aW9uTGlzdC5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkzMTk0NjFGRTEzMDIyQkI4MDA0QkIzRjgg
LyogSlNXZWJLaXRBbmltYXRpb25MaXN0LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTMxOTQ2MjA1
MTMwMjJCRjEwMDRCQjNGOCAvKiBET01XZWJLaXRBbmltYXRpb25MaXN0Lm1tIGluIFNvdXJjZXMg
Ki8sCisJCQkJMzE5NDYyMzIxMzAyMkY2NTAwNEJCM0Y4IC8qIEpTV2ViS2l0QW5pbWF0aW9uTGlz
dEN1c3RvbS5jcHAgaW4gU291cmNlcyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVu
dFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTV2ViS2l0QW5pbWF0aW9uTGlzdEN1c3RvbS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9KU1dlYktpdEFuaW1hdGlvbkxpc3RDdXN0b20uY3BwCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmM4YmQ0ZDUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dlYktpdEFuaW1hdGlvbkxpc3RDdXN0b20uY3BwCkBA
IC0wLDAgKzEsNDcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDkgQXBwbGUgSW5jLiBBbGwg
cmlnaHQgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUK
KyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFS
WSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UK
KyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkpT
V2ViS2l0QW5pbWF0aW9uTGlzdC5oIgorCisjaW5jbHVkZSAiV2ViS2l0QW5pbWF0aW9uTGlzdC5o
IgorCit1c2luZyBuYW1lc3BhY2UgSlNDOworCituYW1lc3BhY2UgV2ViQ29yZSB7CisgICAgCisg
ICAgdm9pZCBKU1dlYktpdEFuaW1hdGlvbkxpc3Q6Om1hcmtDaGlsZHJlbihNYXJrU3RhY2smIG1h
cmtTdGFjaykKKyAgICB7CisgICAgICAgIEJhc2U6Om1hcmtDaGlsZHJlbihtYXJrU3RhY2spOwor
ICAgICAgICAKKyAgICAgICAgV2ViS2l0QW5pbWF0aW9uTGlzdCogbGlzdCA9IGltcGwoKTsKKyAg
ICAgICAgSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhID0gKkhlYXA6OmhlYXAodGhpcyktPmdsb2Jh
bERhdGEoKTsKKyAgICAgICAgCisgICAgICAgIHVuc2lnbmVkIGxlbmd0aCA9IGxpc3QtPmxlbmd0
aCgpOworICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbGVuZ3RoOyArK2kpCisgICAg
ICAgICAgICBtYXJrRE9NT2JqZWN0V3JhcHBlcihtYXJrU3RhY2ssIGdsb2JhbERhdGEsIGxpc3Qt
Pml0ZW0oaSkpOworICAgIH0KKyAgICAKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9FbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcAppbmRleCAzMDI2
MTIzLi45ZjRmYmI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCkBAIC01NSw2ICs1NSw3IEBACiAj
aW5jbHVkZSAiUmVuZGVyV2lkZ2V0LmgiCiAjaW5jbHVkZSAiU2V0dGluZ3MuaCIKICNpbmNsdWRl
ICJUZXh0SXRlcmF0b3IuaCIKKyNpbmNsdWRlICJXZWJLaXRBbmltYXRpb25MaXN0LmgiCiAjaW5j
bHVkZSAiWE1MTmFtZXMuaCIKICNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CiAKQEAgLTE4
NTksNCArMTg2MCwxMiBAQCBib29sIEVsZW1lbnQ6OmlzU3BlbGxDaGVja2luZ0VuYWJsZWQoKSBj
b25zdAogICAgIHJldHVybiB0cnVlOwogfQogCitQYXNzUmVmUHRyPFdlYktpdEFuaW1hdGlvbkxp
c3Q+IEVsZW1lbnQ6OmFuaW1hdGlvbnMoKQoreworICAgIGlmICghcmVuZGVyZXIoKSkKKyAgICAg
ICAgcmV0dXJuIDA7CisgICAgCisgICAgcmV0dXJuIHJlbmRlcmVyKCktPmFuaW1hdGlvbnMoKTsK
K30KKyAgICAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9FbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5oCmluZGV4IGRl
NDJhNWYuLmU2NWU3NjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmgK
KysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuaApAQCAtMzksNiArMzksNyBAQCBjbGFz
cyBET01TdHJpbmdNYXA7CiBjbGFzcyBET01Ub2tlbkxpc3Q7CiBjbGFzcyBFbGVtZW50UmFyZURh
dGE7CiBjbGFzcyBJbnRTaXplOworY2xhc3MgV2ViS2l0QW5pbWF0aW9uTGlzdDsKIAogZW51bSBT
cGVsbGNoZWNrQXR0cmlidXRlU3RhdGUgewogICAgIFNwZWxsY2hlY2tBdHRyaWJ1dGVUcnVlLApA
QCAtMzM5LDYgKzM0MCw4IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgYm9vbCBpc1NwZWxsQ2hl
Y2tpbmdFbmFibGVkKCkgY29uc3Q7CiAKKyAgICBQYXNzUmVmUHRyPFdlYktpdEFuaW1hdGlvbkxp
c3Q+IGFuaW1hdGlvbnMoKTsKKyAgICAKIHByb3RlY3RlZDoKICAgICBFbGVtZW50KGNvbnN0IFF1
YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50KiBkb2N1bWVudCwgQ29uc3RydWN0aW9uVHlw
ZSB0eXBlKQogICAgICAgICA6IENvbnRhaW5lck5vZGUoZG9jdW1lbnQsIHR5cGUpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL0RPTVdpbmRvdy5jcHAKaW5kZXggNTc1MzE5Yi4uMGRjZjcwNiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
RE9NV2luZG93LmNwcApAQCAtODgsNiArODgsOCBAQAogI2luY2x1ZGUgIlN0b3JhZ2VOYW1lc3Bh
Y2UuaCIKICNpbmNsdWRlICJTdHlsZU1lZGlhLmgiCiAjaW5jbHVkZSAiU3VkZGVuVGVybWluYXRp
b24uaCIKKyNpbmNsdWRlICJXZWJLaXRBbmltYXRpb24uaCIKKyNpbmNsdWRlICJXZWJLaXRBbmlt
YXRpb25MaXN0LmgiCiAjaW5jbHVkZSAiV2ViS2l0UG9pbnQuaCIKICNpbmNsdWRlICJXaW5kb3dG
ZWF0dXJlcy5oIgogI2luY2x1ZGUgPGFsZ29yaXRobT4KQEAgLTEyNzYsNiArMTI3OCwxNCBAQCBQ
YXNzUmVmUHRyPFdlYktpdFBvaW50PiBET01XaW5kb3c6OndlYmtpdENvbnZlcnRQb2ludEZyb21Q
YWdlVG9Ob2RlKE5vZGUqIG5vZGUsCiAgICAgcmV0dXJuIFdlYktpdFBvaW50OjpjcmVhdGUobm9k
ZVBvaW50LngoKSwgbm9kZVBvaW50LnkoKSk7CiB9CiAKK1Bhc3NSZWZQdHI8V2ViS2l0QW5pbWF0
aW9uTGlzdD4gRE9NV2luZG93Ojp3ZWJraXRHZXRBbmltYXRpb25zRm9yRWxlbWVudChFbGVtZW50
KiBlbGVtZW50KSBjb25zdAoreworICAgIGlmICghZWxlbWVudCkKKyAgICAgICAgcmV0dXJuIDA7
CisKKyAgICByZXR1cm4gZWxlbWVudC0+YW5pbWF0aW9ucygpOworfQorICAgIAogZG91YmxlIERP
TVdpbmRvdzo6ZGV2aWNlUGl4ZWxSYXRpbygpIGNvbnN0CiB7CiAgICAgaWYgKCFtX2ZyYW1lKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaCBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvRE9NV2luZG93LmgKaW5kZXggYTFlNDQ2Mi4uNGFkYTNjNyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0RPTVdpbmRvdy5oCkBAIC02Miw2ICs2Miw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICBj
bGFzcyBTZXJpYWxpemVkU2NyaXB0VmFsdWU7CiAgICAgY2xhc3MgU3RvcmFnZTsKICAgICBjbGFz
cyBTdHlsZU1lZGlhOworICAgIGNsYXNzIFdlYktpdEFuaW1hdGlvbkxpc3Q7CiAgICAgY2xhc3Mg
V2ViS2l0UG9pbnQ7CiAKICNpZiBFTkFCTEUoUkVRVUVTVF9BTklNQVRJT05fRlJBTUUpCkBAIC0y
MTMsNiArMjE0LDggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBQYXNzUmVmUHRyPFdl
YktpdFBvaW50PiB3ZWJraXRDb252ZXJ0UG9pbnRGcm9tUGFnZVRvTm9kZShOb2RlKiwgY29uc3Qg
V2ViS2l0UG9pbnQqKSBjb25zdDsKICAgICAgICAgUGFzc1JlZlB0cjxXZWJLaXRQb2ludD4gd2Vi
a2l0Q29udmVydFBvaW50RnJvbU5vZGVUb1BhZ2UoTm9kZSosIGNvbnN0IFdlYktpdFBvaW50Kikg
Y29uc3Q7ICAgICAgICAKIAorICAgICAgICBQYXNzUmVmUHRyPFdlYktpdEFuaW1hdGlvbkxpc3Q+
IHdlYmtpdEdldEFuaW1hdGlvbnNGb3JFbGVtZW50KEVsZW1lbnQqKSBjb25zdDsKKyAgICAgICAg
CiAgICAgICAgIENvbnNvbGUqIGNvbnNvbGUoKSBjb25zdDsKIAogICAgICAgICB2b2lkIHByaW50
RXJyb3JNZXNzYWdlKGNvbnN0IFN0cmluZyYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGFnZS9ET01XaW5kb3cuaWRsIGIvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaWRsCmlu
ZGV4IDI2ZmY2ZDYuLjdmZjU1N2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9N
V2luZG93LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5pZGwKQEAgLTE2
MSw2ICsxNjEsOCBAQCBtb2R1bGUgd2luZG93IHsKICAgICAgICAgV2ViS2l0UG9pbnQgd2Via2l0
Q29udmVydFBvaW50RnJvbVBhZ2VUb05vZGUoaW4gTm9kZSBub2RlLCBpbiBXZWJLaXRQb2ludCBw
KTsKICAgICAgICAgV2ViS2l0UG9pbnQgd2Via2l0Q29udmVydFBvaW50RnJvbU5vZGVUb1BhZ2Uo
aW4gTm9kZSBub2RlLCBpbiBXZWJLaXRQb2ludCBwKTsKIAorICAgICAgICBXZWJLaXRBbmltYXRp
b25MaXN0IHdlYmtpdEdldEFuaW1hdGlvbnNGb3JFbGVtZW50KGluIEVsZW1lbnQgZWxlbWVudCk7
CisKICNpZiBkZWZpbmVkKEVOQUJMRV9PRkZMSU5FX1dFQl9BUFBMSUNBVElPTlMpICYmIEVOQUJM
RV9PRkZMSU5FX1dFQl9BUFBMSUNBVElPTlMKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFtF
bmFibGVkQXRSdW50aW1lXSBET01BcHBsaWNhdGlvbkNhY2hlIGFwcGxpY2F0aW9uQ2FjaGU7CiAj
ZW5kaWYgICAgCkBAIC02MDcsNiArNjA5LDkgQEAgbW9kdWxlIHdpbmRvdyB7CiAgICAgICAgIGF0
dHJpYnV0ZSBbQ29uZGl0aW9uYWw9VklERU8sIEVuYWJsZWRBdFJ1bnRpbWVdIE1lZGlhRXJyb3JD
b25zdHJ1Y3RvciBNZWRpYUVycm9yOwogICAgICAgICBhdHRyaWJ1dGUgW0NvbmRpdGlvbmFsPVZJ
REVPLCBFbmFibGVkQXRSdW50aW1lXSBUaW1lUmFuZ2VzQ29uc3RydWN0b3IgVGltZVJhbmdlczsK
IAorICAgICAgICBhdHRyaWJ1dGUgV2ViS2l0QW5pbWF0aW9uQ29uc3RydWN0b3IgV2ViS2l0QW5p
bWF0aW9uOworICAgICAgICBhdHRyaWJ1dGUgV2ViS2l0QW5pbWF0aW9uTGlzdENvbnN0cnVjdG9y
IFdlYktpdEFuaW1hdGlvbkxpc3Q7CisKICNpZiBkZWZpbmVkKEVOQUJMRV9YUEFUSCkgJiYgRU5B
QkxFX1hQQVRICiAgICAgICAgIGF0dHJpYnV0ZSBYUGF0aEV2YWx1YXRvckNvbnN0cnVjdG9yIFhQ
YXRoRXZhbHVhdG9yOwogICAgICAgICBhdHRyaWJ1dGUgWFBhdGhSZXN1bHRDb25zdHJ1Y3RvciBY
UGF0aFJlc3VsdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0Fu
aW1hdGlvbkJhc2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0FuaW1hdGlvbkJh
c2UuaAppbmRleCA4NzdkNjQ5Li5jYjdmYjY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL2FuaW1hdGlvbi9BbmltYXRpb25CYXNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9h
bmltYXRpb24vQW5pbWF0aW9uQmFzZS5oCkBAIC0xODMsNiArMTgzLDggQEAgcHVibGljOgogCiAg
ICAgc3RhdGljIEhhc2hTZXQ8aW50PiBhbmltYXRhYmxlU2hvcnRoYW5kc0FmZmVjdGluZ1Byb3Bl
cnR5KGludCBwcm9wZXJ0eSk7CiAgICAgCisgICAgQW5pbWF0aW9uKiBhbmltYXRpb24oKSB7IHJl
dHVybiBtX2FuaW1hdGlvbi5nZXQoKTsgfQorICAgIAogcHJvdGVjdGVkOgogICAgIHZpcnR1YWwg
dm9pZCBvdmVycmlkZUFuaW1hdGlvbnMoKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgcmVzdW1lT3Zl
cnJpZGRlbkFuaW1hdGlvbnMoKSB7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
YW5pbWF0aW9uL0FuaW1hdGlvbkNvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9h
bmltYXRpb24vQW5pbWF0aW9uQ29udHJvbGxlci5jcHAKaW5kZXggZGNkZWEwMy4uY2JlNTllNCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vQW5pbWF0aW9uQ29udHJv
bGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vQW5pbWF0aW9uQ29u
dHJvbGxlci5jcHAKQEAgLTM3LDYgKzM3LDcgQEAKICNpbmNsdWRlICJGcmFtZS5oIgogI2luY2x1
ZGUgIlJlbmRlclZpZXcuaCIKICNpbmNsdWRlICJXZWJLaXRBbmltYXRpb25FdmVudC5oIgorI2lu
Y2x1ZGUgIldlYktpdEFuaW1hdGlvbkxpc3QuaCIKICNpbmNsdWRlICJXZWJLaXRUcmFuc2l0aW9u
RXZlbnQuaCIKICNpbmNsdWRlIDx3dGYvQ3VycmVudFRpbWUuaD4KICNpbmNsdWRlIDx3dGYvVW51
c2VkUGFyYW0uaD4KQEAgLTQ3OSw2ICs0ODAsMTcgQEAgdm9pZCBBbmltYXRpb25Db250cm9sbGVy
UHJpdmF0ZTo6c3RhcnRUaW1lUmVzcG9uc2UoZG91YmxlIHRpbWUpCiAgICAgbV9sYXN0U3RhcnRU
aW1lUmVzcG9uc2VXYWl0ZXIgPSAwOwogfQogCisgICAgCitQYXNzUmVmUHRyPFdlYktpdEFuaW1h
dGlvbkxpc3Q+IEFuaW1hdGlvbkNvbnRyb2xsZXJQcml2YXRlOjphbmltYXRpb25zRm9yUmVuZGVy
ZXIoUmVuZGVyT2JqZWN0KiByZW5kZXJlcikgY29uc3QKK3sKKyAgICBSZWZQdHI8Q29tcG9zaXRl
QW5pbWF0aW9uPiBhbmltYXRpb24gPSBtX2NvbXBvc2l0ZUFuaW1hdGlvbnMuZ2V0KHJlbmRlcmVy
KTsKKworICAgIGlmICghYW5pbWF0aW9uKQorICAgICAgICByZXR1cm4gMDsKKworICAgIHJldHVy
biBhbmltYXRpb24tPmFuaW1hdGlvbnMoKTsKK30KKyAgICAKIEFuaW1hdGlvbkNvbnRyb2xsZXI6
OkFuaW1hdGlvbkNvbnRyb2xsZXIoRnJhbWUqIGZyYW1lKQogICAgIDogbV9kYXRhKG5ldyBBbmlt
YXRpb25Db250cm9sbGVyUHJpdmF0ZShmcmFtZSkpCiB7CkBAIC02MTIsNCArNjI0LDkgQEAgYm9v
bCBBbmltYXRpb25Db250cm9sbGVyOjpzdXBwb3J0c0FjY2VsZXJhdGVkQW5pbWF0aW9uT2ZQcm9w
ZXJ0eShDU1NQcm9wZXJ0eUlEIHAKICNlbmRpZgogfQogCitQYXNzUmVmUHRyPFdlYktpdEFuaW1h
dGlvbkxpc3Q+IEFuaW1hdGlvbkNvbnRyb2xsZXI6OmFuaW1hdGlvbnNGb3JSZW5kZXJlcihSZW5k
ZXJPYmplY3QqIHJlbmRlcmVyKSBjb25zdAoreworICAgIHJldHVybiBtX2RhdGEtPmFuaW1hdGlv
bnNGb3JSZW5kZXJlcihyZW5kZXJlcik7Cit9CisgICAgCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9BbmltYXRpb25Db250
cm9sbGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9BbmltYXRpb25Db250cm9s
bGVyLmgKaW5kZXggNTI3OTQ2Ny4uMmJjOTY2OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGFnZS9hbmltYXRpb24vQW5pbWF0aW9uQ29udHJvbGxlci5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvYW5pbWF0aW9uL0FuaW1hdGlvbkNvbnRyb2xsZXIuaApAQCAtNDIsNiArNDIsNyBAQCBj
bGFzcyBGcmFtZTsKIGNsYXNzIE5vZGU7CiBjbGFzcyBSZW5kZXJPYmplY3Q7CiBjbGFzcyBSZW5k
ZXJTdHlsZTsKK2NsYXNzIFdlYktpdEFuaW1hdGlvbkxpc3Q7CiAKIGNsYXNzIEFuaW1hdGlvbkNv
bnRyb2xsZXIgewogcHVibGljOgpAQCAtNzMsNiArNzQsOCBAQCBwdWJsaWM6CiAgICAgCiAgICAg
c3RhdGljIGJvb2wgc3VwcG9ydHNBY2NlbGVyYXRlZEFuaW1hdGlvbk9mUHJvcGVydHkoQ1NTUHJv
cGVydHlJRCk7CiAKKyAgICBQYXNzUmVmUHRyPFdlYktpdEFuaW1hdGlvbkxpc3Q+IGFuaW1hdGlv
bnNGb3JSZW5kZXJlcihSZW5kZXJPYmplY3QqKSBjb25zdDsKKyAgICAKIHByaXZhdGU6CiAgICAg
QW5pbWF0aW9uQ29udHJvbGxlclByaXZhdGUqIG1fZGF0YTsKIH07CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9BbmltYXRpb25Db250cm9sbGVyUHJpdmF0ZS5oIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vQW5pbWF0aW9uQ29udHJvbGxlclByaXZhdGUu
aAppbmRleCAxODZkZDdkLi44OGI4MmE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L2FuaW1hdGlvbi9BbmltYXRpb25Db250cm9sbGVyUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvYW5pbWF0aW9uL0FuaW1hdGlvbkNvbnRyb2xsZXJQcml2YXRlLmgKQEAgLTQ4LDYg
KzQ4LDcgQEAgY2xhc3MgRnJhbWU7CiBjbGFzcyBOb2RlOwogY2xhc3MgUmVuZGVyT2JqZWN0Owog
Y2xhc3MgUmVuZGVyU3R5bGU7CitjbGFzcyBXZWJLaXRBbmltYXRpb25MaXN0OwogCiBjbGFzcyBB
bmltYXRpb25Db250cm9sbGVyUHJpdmF0ZSB7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoQW5p
bWF0aW9uQ29udHJvbGxlclByaXZhdGUpOyBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKQEAgLTkz
LDYgKzk0LDggQEAgcHVibGljOgogICAgIHZvaWQgYWRkVG9TdGFydFRpbWVSZXNwb25zZVdhaXRM
aXN0KEFuaW1hdGlvbkJhc2UqLCBib29sIHdpbGxHZXRSZXNwb25zZSk7CiAgICAgdm9pZCByZW1v
dmVGcm9tU3RhcnRUaW1lUmVzcG9uc2VXYWl0TGlzdChBbmltYXRpb25CYXNlKik7ICAgIAogICAg
IAorICAgIFBhc3NSZWZQdHI8V2ViS2l0QW5pbWF0aW9uTGlzdD4gYW5pbWF0aW9uc0ZvclJlbmRl
cmVyKFJlbmRlck9iamVjdCopIGNvbnN0OworICAgIAogcHJpdmF0ZToKICAgICB2b2lkIGFuaW1h
dGlvblRpbWVyRmlyZWQoVGltZXI8QW5pbWF0aW9uQ29udHJvbGxlclByaXZhdGU+Kik7CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0NvbXBvc2l0ZUFuaW1hdGlv
bi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9Db21wb3NpdGVBbmltYXRpb24u
Y3BwCmluZGV4IDYwMjQ5MWUuLjllNzBiMzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvYW5pbWF0aW9uL0NvbXBvc2l0ZUFuaW1hdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9hbmltYXRpb24vQ29tcG9zaXRlQW5pbWF0aW9uLmNwcApAQCAtMzYsNiArMzYsOCBAQAog
I2luY2x1ZGUgIktleWZyYW1lQW5pbWF0aW9uLmgiCiAjaW5jbHVkZSAiUmVuZGVyT2JqZWN0Lmgi
CiAjaW5jbHVkZSAiUmVuZGVyU3R5bGUuaCIKKyNpbmNsdWRlICJXZWJLaXRBbmltYXRpb24uaCIK
KyNpbmNsdWRlICJXZWJLaXRBbmltYXRpb25MaXN0LmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IApAQCAtNTYwLDQgKzU2MiwxOSBAQCB1bnNpZ25lZCBDb21wb3NpdGVBbmltYXRpb246Om51bWJl
ck9mQWN0aXZlQW5pbWF0aW9ucygpIGNvbnN0CiAgICAgcmV0dXJuIGNvdW50OwogfQogCitQYXNz
UmVmUHRyPFdlYktpdEFuaW1hdGlvbkxpc3Q+IENvbXBvc2l0ZUFuaW1hdGlvbjo6YW5pbWF0aW9u
cygpIGNvbnN0Cit7CisgICAgUmVmUHRyPFdlYktpdEFuaW1hdGlvbkxpc3Q+IGFuaW1hdGlvbnMg
PSBXZWJLaXRBbmltYXRpb25MaXN0OjpjcmVhdGUoKTsKKyAgICBpZiAoIW1fa2V5ZnJhbWVBbmlt
YXRpb25zLmlzRW1wdHkoKSkgeworICAgICAgICBtX2tleWZyYW1lQW5pbWF0aW9ucy5jaGVja0Nv
bnNpc3RlbmN5KCk7CisgICAgICAgIEFuaW1hdGlvbk5hbWVNYXA6OmNvbnN0X2l0ZXJhdG9yIGFu
aW1hdGlvbnNFbmQgPSBtX2tleWZyYW1lQW5pbWF0aW9ucy5lbmQoKTsKKyAgICAgICAgZm9yIChB
bmltYXRpb25OYW1lTWFwOjpjb25zdF9pdGVyYXRvciBpdCA9IG1fa2V5ZnJhbWVBbmltYXRpb25z
LmJlZ2luKCk7IGl0ICE9IGFuaW1hdGlvbnNFbmQ7ICsraXQpIHsKKyAgICAgICAgICAgIEtleWZy
YW1lQW5pbWF0aW9uKiBrZXlmcmFtZUFuaW1hdGlvbiA9IGl0LT5zZWNvbmQuZ2V0KCk7CisgICAg
ICAgICAgICBSZWZQdHI8V2ViS2l0QW5pbWF0aW9uPiBhbmltID0gV2ViS2l0QW5pbWF0aW9uOjpj
cmVhdGUoa2V5ZnJhbWVBbmltYXRpb24pOworICAgICAgICAgICAgYW5pbWF0aW9ucy0+YXBwZW5k
KGFuaW0pOworICAgICAgICB9CisgICAgfQorICAgIHJldHVybiBhbmltYXRpb25zOworfQorICAg
IAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9hbmltYXRpb24vQ29tcG9zaXRlQW5pbWF0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2Fu
aW1hdGlvbi9Db21wb3NpdGVBbmltYXRpb24uaAppbmRleCAyNDlmNGMzLi4xYmZlNTg1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9Db21wb3NpdGVBbmltYXRpb24u
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9Db21wb3NpdGVBbmltYXRpb24u
aApAQCAtNDEsNiArNDEsNyBAQCBjbGFzcyBBbmltYXRpb25Db250cm9sbGVyUHJpdmF0ZTsKIGNs
YXNzIEFuaW1hdGlvbkNvbnRyb2xsZXI7CiBjbGFzcyBSZW5kZXJPYmplY3Q7CiBjbGFzcyBSZW5k
ZXJTdHlsZTsKK2NsYXNzIFdlYktpdEFuaW1hdGlvbkxpc3Q7CiAKIC8vIEEgQ29tcG9zaXRlQW5p
bWF0aW9uIHJlcHJlc2VudHMgYSBjb2xsZWN0aW9uIG9mIGFuaW1hdGlvbnMgdGhhdCBhcmUgcnVu
bmluZwogLy8gb24gYSBzaW5nbGUgUmVuZGVyT2JqZWN0LCBzdWNoIGFzIGEgbnVtYmVyIG9mIHBy
b3BlcnRpZXMgdHJhbnNpdGlvbmluZyBhdCBvbmNlLgpAQCAtODAsNiArODEsOCBAQCBwdWJsaWM6
CiAgICAgYm9vbCBwYXVzZVRyYW5zaXRpb25BdFRpbWUoaW50IHByb3BlcnR5LCBkb3VibGUgdCk7
CiAgICAgdW5zaWduZWQgbnVtYmVyT2ZBY3RpdmVBbmltYXRpb25zKCkgY29uc3Q7CiAKKyAgICBQ
YXNzUmVmUHRyPFdlYktpdEFuaW1hdGlvbkxpc3Q+IGFuaW1hdGlvbnMoKSBjb25zdDsKKwogcHJp
dmF0ZToKICAgICBDb21wb3NpdGVBbmltYXRpb24oQW5pbWF0aW9uQ29udHJvbGxlclByaXZhdGUq
IGFuaW1hdGlvbkNvbnRyb2xsZXIpCiAgICAgICAgIDogbV9hbmltYXRpb25Db250cm9sbGVyKGFu
aW1hdGlvbkNvbnRyb2xsZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1h
dGlvbi9XZWJLaXRBbmltYXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24v
V2ViS2l0QW5pbWF0aW9uLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40
YmM0M2IyCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24v
V2ViS2l0QW5pbWF0aW9uLmNwcApAQCAtMCwwICsxLDExMCBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAxMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBgYEFTIElT
JycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCisgKiBD
T05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1Ig
QlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQor
ICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpbmNsdWRl
ICJjb25maWcuaCIKKyNpbmNsdWRlICJXZWJLaXRBbmltYXRpb24uaCIKKworI2luY2x1ZGUgIkFu
aW1hdGlvbi5oIgorI2luY2x1ZGUgIkFuaW1hdGlvbkJhc2UuaCIKKyNpbmNsdWRlICJSZW5kZXJT
dHlsZS5oIgorCit1c2luZyBuYW1lc3BhY2Ugc3RkOworCituYW1lc3BhY2UgV2ViQ29yZSB7CisK
K1dlYktpdEFuaW1hdGlvbjo6V2ViS2l0QW5pbWF0aW9uKFBhc3NSZWZQdHI8S2V5ZnJhbWVBbmlt
YXRpb24+IGtleWZyYW1lQW5pbWF0aW9uKQorICAgIDogbV9rZXlmcmFtZUFuaW1hdGlvbihrZXlm
cmFtZUFuaW1hdGlvbikKK3sKK30KKworU3RyaW5nIFdlYktpdEFuaW1hdGlvbjo6bmFtZSgpIGNv
bnN0Cit7CisgICAgcmV0dXJuICIiOworfQorICAgIAorZmxvYXQgV2ViS2l0QW5pbWF0aW9uOjpz
dGFydFRpbWUoKSBjb25zdAoreworICAgIHJldHVybiAwOworfQorCitmbG9hdCBXZWJLaXRBbmlt
YXRpb246OmR1cmF0aW9uKCkgY29uc3QKK3sKKyAgICByZXR1cm4gKGZsb2F0KSBtX2tleWZyYW1l
QW5pbWF0aW9uLT5hbmltYXRpb24oKS0+ZHVyYXRpb24oKTsKK30KKworZmxvYXQgV2ViS2l0QW5p
bWF0aW9uOjpjdXJyZW50VGltZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIDA7Cit9CisKK3ZvaWQg
V2ViS2l0QW5pbWF0aW9uOjpzZXRDdXJyZW50VGltZShmbG9hdCB0aW1lKQoreworICAgIFVOVVNF
RF9QQVJBTSh0aW1lKTsKK30KKworZmxvYXQgV2ViS2l0QW5pbWF0aW9uOjpkZWxheSgpIGNvbnN0
Cit7CisgICAgcmV0dXJuIGZhbHNlOworfQorCitpbnQgV2ViS2l0QW5pbWF0aW9uOjppdGVyYXRp
b25Db3VudCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIDA7Cit9CisKK2Jvb2wgV2ViS2l0QW5pbWF0
aW9uOjpwYXVzZWQoKSBjb25zdAoreworICAgIHJldHVybiBmYWxzZTsKK30KKworYm9vbCBXZWJL
aXRBbmltYXRpb246OmRlbGF5ZWQoKSBjb25zdAoreworICAgIHJldHVybiBmYWxzZTsKK30KKwor
Ym9vbCBXZWJLaXRBbmltYXRpb246OmZpbGxpbmcoKSBjb25zdAoreworICAgIHJldHVybiBmYWxz
ZTsKK30KKworV2ViS2l0QW5pbWF0aW9uOjpEaXJlY3Rpb24gV2ViS2l0QW5pbWF0aW9uOjpkaXJl
Y3Rpb24oKSBjb25zdAoreworICAgIHJldHVybiBESVJFQ1RJT05fTk9STUFMOworfQorCitXZWJL
aXRBbmltYXRpb246OkZpbGxNb2RlIFdlYktpdEFuaW1hdGlvbjo6ZmlsbE1vZGUoKSBjb25zdAor
eworICAgIHJldHVybiBGSUxMX05PTkU7Cit9CisKK3ZvaWQgV2ViS2l0QW5pbWF0aW9uOjpwYXVz
ZSgpCit7Cit9CisKK3ZvaWQgV2ViS2l0QW5pbWF0aW9uOjpwbGF5KCkKK3sKK30KKyAgICAKK30K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL1dlYktpdEFuaW1hdGlv
bi5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vV2ViS2l0QW5pbWF0aW9uLmgKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMmIxYThmNAotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL1dlYktpdEFuaW1hdGlvbi5oCkBAIC0w
LDAgKzEsOTMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisg
KiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlks
IE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisg
KiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLiAKKyAqLworCisjaWZuZGVmIFdlYktpdEFuaW1hdGlvbl9oCisjZGVmaW5l
IFdlYktpdEFuaW1hdGlvbl9oCisKKyNpbmNsdWRlICJBbmltYXRpb24uaCIKKyNpbmNsdWRlICJB
bmltYXRpb25CYXNlLmgiCisjaW5jbHVkZSAiS2V5ZnJhbWVBbmltYXRpb24uaCIKKyNpbmNsdWRl
ICJSZW5kZXJTdHlsZS5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFdlYktpdEFu
aW1hdGlvbiA6IHB1YmxpYyBSZWZDb3VudGVkPFdlYktpdEFuaW1hdGlvbj57CitwdWJsaWM6CisK
KyAgICBzdGF0aWMgUGFzc1JlZlB0cjxXZWJLaXRBbmltYXRpb24+IGNyZWF0ZShQYXNzUmVmUHRy
PEtleWZyYW1lQW5pbWF0aW9uPiBrZXlmcmFtZUFuaW1hdGlvbikKKyAgICB7CisgICAgICAgIHJl
dHVybiBhZG9wdFJlZihuZXcgV2ViS2l0QW5pbWF0aW9uKGtleWZyYW1lQW5pbWF0aW9uKSk7Cisg
ICAgfQorICAgIAorICAgIHZpcnR1YWwgfldlYktpdEFuaW1hdGlvbigpIHsgfQorICAgIAorICAg
IC8vIERPTSBBUEkKKyAgICAKKyAgICBTdHJpbmcgbmFtZSgpIGNvbnN0OworCisgICAgZmxvYXQg
c3RhcnRUaW1lKCkgY29uc3Q7CisgICAgZmxvYXQgZHVyYXRpb24oKSBjb25zdDsKKworICAgIGZs
b2F0IGN1cnJlbnRUaW1lKCkgY29uc3Q7CisgICAgdm9pZCBzZXRDdXJyZW50VGltZShmbG9hdCk7
CisKKyAgICBmbG9hdCBkZWxheSgpIGNvbnN0OworICAgIGludCBpdGVyYXRpb25Db3VudCgpIGNv
bnN0OworICAgIGJvb2wgaXRlcmF0ZXNGb3JldmVyKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0g
Ly9tX2l0ZXJhdGlvbkNvdW50ID09IC0xOyB9CisgICAgCisgICAgYm9vbCBwYXVzZWQoKSBjb25z
dDsKKyAgICBib29sIGRlbGF5ZWQoKSBjb25zdDsKKyAgICBib29sIGZpbGxpbmcoKSBjb25zdDsK
KworICAgIC8vIGRpcmVjdGlvbgorICAgIGVudW0gRGlyZWN0aW9uIHsgRElSRUNUSU9OX05PUk1B
TCwgRElSRUNUSU9OX0FMVEVSTkFURSB9OworICAgIERpcmVjdGlvbiBkaXJlY3Rpb24oKSBjb25z
dDsKKworICAgIC8vIGZpbGwgbW9kZQorICAgIGVudW0gRmlsbE1vZGUgeyBGSUxMX05PTkUsIEZJ
TExfQkFDS1dBUkRTLCBGSUxMX0ZPUldBUkRTLCBGSUxMX0JPVEggfTsKKyAgICBGaWxsTW9kZSBm
aWxsTW9kZSgpIGNvbnN0OworICAgIAorICAgIHZvaWQgcGxheSgpOworICAgIHZvaWQgcGF1c2Uo
KTsKKworcHJvdGVjdGVkOgorICAgIFdlYktpdEFuaW1hdGlvbihQYXNzUmVmUHRyPEtleWZyYW1l
QW5pbWF0aW9uPik7CisKK3ByaXZhdGU6CisgICAgCisgICAgUmVmUHRyPEtleWZyYW1lQW5pbWF0
aW9uPiBtX2tleWZyYW1lQW5pbWF0aW9uOworLy8gICAgZmxvYXQgbV9zdGFydFRpbWU7CisvLyAg
ICBmbG9hdCBtX2R1cmF0aW9uOworLy8gICAgZmxvYXQgbV9jdXJyZW50VGltZTsKKy8vICAgIGlu
dCBtX2l0ZXJhdGlvbkNvdW50OworLy8gICAgRGlyZWN0aW9uIG1fZGlyZWN0aW9uOworLy8gICAg
RmlsbE1vZGUgbV9maWxsTW9kZTsKKyAgICAKKy8vICAgIGJvb2wgbV9wYXVzZWQgOiAxOworfTsK
KworfSAvL25hbWVzcGFjZQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvYW5pbWF0aW9uL1dlYktpdEFuaW1hdGlvbi5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2Fu
aW1hdGlvbi9XZWJLaXRBbmltYXRpb24uaWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAuLjliYWNhN2EKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2Fu
aW1hdGlvbi9XZWJLaXRBbmltYXRpb24uaWRsCkBAIC0wLDAgKzEsNjMgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICoKKyAqIDEuICBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICogMy4gIE5laXRoZXIgdGhlIG5hbWUgb2YgQXBwbGUgQ29tcHV0ZXIsIEluYy4g
KCJBcHBsZSIpIG5vciB0aGUgbmFtZXMgb2YKKyAqICAgICBpdHMgY29udHJpYnV0b3JzIG1heSBi
ZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkCisgKiAgICAgZnJv
bSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05U
UklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBP
U0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09O
VFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECisgKiBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCisgKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKK21vZHVsZSBodG1s
IHsKKworICAgIGludGVyZmFjZSBXZWJLaXRBbmltYXRpb24geworCisgICAgICAgIHJlYWRvbmx5
IGF0dHJpYnV0ZSBET01TdHJpbmcgbmFtZTsKKyAgICAgICAgLy9yZWFkb25seSBhdHRyaWJ1dGUg
V2ViS2l0Q1NTS2V5ZnJhbWVzUnVsZSBrZXlmcmFtZXNSdWxlOworICAgICAgICAvL3JlYWRvbmx5
IGF0dHJpYnV0ZSBFbGVtZW50IGVsZW1lbnQ7CisgICAgICAgIAorICAgICAgICByZWFkb25seSBh
dHRyaWJ1dGUgZmxvYXQgc3RhcnRUaW1lOworICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgZmxv
YXQgZHVyYXRpb247CisgICAgICAgIGF0dHJpYnV0ZSBmbG9hdCBjdXJyZW50VGltZTsKKyAgICAg
ICAgCisgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBmbG9hdCBkZWxheTsKKyAgICAgICAgcmVh
ZG9ubHkgYXR0cmlidXRlIGludCBpdGVyYXRpb25Db3VudDsKKyAgICAgICAgcmVhZG9ubHkgYXR0
cmlidXRlIGJvb2xlYW4gaXRlcmF0ZXNGb3JldmVyOworCisgICAgICAgIHJlYWRvbmx5IGF0dHJp
YnV0ZSBib29sZWFuIHBhdXNlZDsKKyAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIGJvb2xlYW4g
ZGVsYXllZDsKKyAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIGJvb2xlYW4gZmlsbGluZzsKKyAg
ICAgICAgCisgICAgICAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IERJUkVDVElPTl9OT1JNQUwgPSAw
OworICAgICAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCBESVJFQ1RJT05fQUxURVJOQVRFID0gMTsK
KyAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIHVuc2lnbmVkIHNob3J0IGRpcmVjdGlvbjsKKyAg
ICAgICAgCisgICAgICAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IEZJTExfTk9ORSA9IDA7CisgICAg
ICAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IEZJTExfQkFDS1dBUkRTID0gMTsKKyAgICAgICAgY29u
c3QgdW5zaWduZWQgc2hvcnQgRklMTF9GT1JXQVJEUyA9IDI7CisgICAgICAgIGNvbnN0IHVuc2ln
bmVkIHNob3J0IEZJTExfQk9USCA9IDM7CisgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnNp
Z25lZCBzaG9ydCBmaWxsTW9kZTsKKyAgICAgICAgCisgICAgICAgIHZvaWQgcGxheSgpOworICAg
ICAgICB2b2lkIHBhdXNlKCk7CisgICAgfTsKKworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGFnZS9hbmltYXRpb24vV2ViS2l0QW5pbWF0aW9uTGlzdC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL2FuaW1hdGlvbi9XZWJLaXRBbmltYXRpb25MaXN0LmNwcApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwLi5kNWNiNzYwCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9hbmltYXRpb24vV2ViS2l0QW5pbWF0aW9uTGlzdC5jcHAKQEAgLTAsMCArMSw4
NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBDT01QVVRFUiwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IENPTVBVVEVSLCBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBS
T0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuIAorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXZWJLaXRBbmlt
YXRpb25MaXN0LmgiCisKKyNpbmNsdWRlICJBbmltYXRpb24uaCIKKyNpbmNsdWRlICJBbmltYXRp
b25CYXNlLmgiCisjaW5jbHVkZSAiUmVuZGVyU3R5bGUuaCIKKyNpbmNsdWRlICJXZWJLaXRBbmlt
YXRpb24uaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworICAgIAorV2ViS2l0QW5pbWF0aW9uTGlz
dDo6V2ViS2l0QW5pbWF0aW9uTGlzdCgpCit7Cit9CisKK1dlYktpdEFuaW1hdGlvbkxpc3Q6On5X
ZWJLaXRBbmltYXRpb25MaXN0KCkKK3sKK30KKwordW5zaWduZWQgV2ViS2l0QW5pbWF0aW9uTGlz
dDo6bGVuZ3RoKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9hbmltYXRpb25zLnNpemUoKTsKK30K
KworV2ViS2l0QW5pbWF0aW9uKiBXZWJLaXRBbmltYXRpb25MaXN0OjppdGVtKHVuc2lnbmVkIGlu
ZGV4KQoreworICAgIGlmIChpbmRleCA8IG1fYW5pbWF0aW9ucy5zaXplKCkpCisgICAgICAgIHJl
dHVybiBtX2FuaW1hdGlvbnNbaW5kZXhdLmdldCgpOworICAgIHJldHVybiAwOworfQorCit2b2lk
IFdlYktpdEFuaW1hdGlvbkxpc3Q6OmRlbGV0ZUFuaW1hdGlvbih1bnNpZ25lZCBpbmRleCkKK3sK
KyAgICBpZiAoaW5kZXggPj0gbV9hbmltYXRpb25zLnNpemUoKSkgeworICAgICAgICByZXR1cm47
CisgICAgfQorICAgIAorICAgIG1fYW5pbWF0aW9ucy5yZW1vdmUoaW5kZXgpOworfQorCit2b2lk
IFdlYktpdEFuaW1hdGlvbkxpc3Q6OmFwcGVuZChSZWZQdHI8V2ViS2l0QW5pbWF0aW9uPiBhbmlt
YXRpb24pCit7CisgICAgbV9hbmltYXRpb25zLmFwcGVuZChhbmltYXRpb24pOworfQorCit1bnNp
Z25lZCBXZWJLaXRBbmltYXRpb25MaXN0OjppbnNlcnRBbmltYXRpb24oUmVmUHRyPFdlYktpdEFu
aW1hdGlvbj4gYW5pbWF0aW9uLCB1bnNpZ25lZCBpbmRleCkKK3sKKyAgICBpZiAoIWFuaW1hdGlv
bikgeworICAgICAgICByZXR1cm4gMDsKKyAgICB9CisgICAgCisgICAgaWYgKGluZGV4ID4gbV9h
bmltYXRpb25zLnNpemUoKSkgeworICAgICAgICByZXR1cm4gMDsKKyAgICB9CisgICAgCisgICAg
bV9hbmltYXRpb25zLmluc2VydChpbmRleCwgYW5pbWF0aW9uKTsKKyAgICByZXR1cm4gaW5kZXg7
Cit9CisgICAgCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL1dlYktpdEFuaW1hdGlvbkxpc3QuaCBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvYW5pbWF0aW9uL1dlYktpdEFuaW1hdGlvbkxpc3QuaApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwLi4xOTg1MjhjCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9hbmltYXRpb24vV2ViS2l0QW5pbWF0aW9uTGlzdC5oCkBAIC0wLDAgKzEsNjEg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
Q09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBD
T01QVVRFUiwgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9D
VVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLiAKKyAqLworCisjaWZuZGVmIFdlYktpdEFuaW1hdGlvbkxpc3RfaAorI2RlZmluZSBXZWJL
aXRBbmltYXRpb25MaXN0X2gKKworI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CisjaW5jbHVk
ZSA8d3RmL1JlZkNvdW50ZWQuaD4KKyNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CisjaW5jbHVkZSA8
d3RmL1ZlY3Rvci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisgICAgCitjbGFzcyBXZWJLaXRB
bmltYXRpb247CisKK2NsYXNzIFdlYktpdEFuaW1hdGlvbkxpc3QgOiBwdWJsaWMgUmVmQ291bnRl
ZDxXZWJLaXRBbmltYXRpb25MaXN0PiB7CitwdWJsaWM6CisgICAgc3RhdGljIFBhc3NSZWZQdHI8
V2ViS2l0QW5pbWF0aW9uTGlzdD4gY3JlYXRlKCkKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9w
dFJlZihuZXcgV2ViS2l0QW5pbWF0aW9uTGlzdCgpKTsKKyAgICB9CisgICAgfldlYktpdEFuaW1h
dGlvbkxpc3QoKTsKKyAgICAKKyAgICB1bnNpZ25lZCBsZW5ndGgoKSBjb25zdDsKKyAgICBXZWJL
aXRBbmltYXRpb24qIGl0ZW0odW5zaWduZWQgaW5kZXgpOworICAgIAorICAgIHVuc2lnbmVkIGlu
c2VydEFuaW1hdGlvbihSZWZQdHI8V2ViS2l0QW5pbWF0aW9uPiwgdW5zaWduZWQgaW5kZXgpOwor
ICAgIHZvaWQgZGVsZXRlQW5pbWF0aW9uKHVuc2lnbmVkIGluZGV4KTsKKyAgICB2b2lkIGFwcGVu
ZChSZWZQdHI8V2ViS2l0QW5pbWF0aW9uPik7CisgICAgCitwcml2YXRlOgorICAgIFdlYktpdEFu
aW1hdGlvbkxpc3QoKTsKKyAgICAKKyAgICBWZWN0b3I8UmVmUHRyPFdlYktpdEFuaW1hdGlvbj4g
PiBtX2FuaW1hdGlvbnM7Cit9OworICAgIAorfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5k
aWYgLy8gV2ViS2l0QW5pbWF0aW9uTGlzdF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL2FuaW1hdGlvbi9XZWJLaXRBbmltYXRpb25MaXN0LmlkbCBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvYW5pbWF0aW9uL1dlYktpdEFuaW1hdGlvbkxpc3QuaWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAuLjRjMzc2ZTYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL2FuaW1hdGlvbi9XZWJLaXRBbmltYXRpb25MaXN0LmlkbApAQCAtMCwwICsxLDM2IEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENP
TVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09N
UFVURVIsIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VS
RU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4gCisgKi8KKworbW9kdWxlIGh0bWwgeworCisgICAgaW50ZXJmYWNlIFsKKyAgICAgICAgQ3Vz
dG9tTWFya0Z1bmN0aW9uLAorICAgICAgICBIYXNJbmRleEdldHRlcgorICAgIF0gV2ViS2l0QW5p
bWF0aW9uTGlzdCB7CisgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnNpZ25lZCBsb25nIGxl
bmd0aDsKKyAgICAgICAgV2ViS2l0QW5pbWF0aW9uIGl0ZW0oaW4gdW5zaWduZWQgbG9uZyBpbmRl
eCk7CisgICAgfTsKKworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlck9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNw
cAppbmRleCBkODRmY2QwLi4wMzhlOTQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyT2JqZWN0LmNwcApAQCAtNTcsNiArNTcsNyBAQAogI2luY2x1ZGUgIlJlbmRlclRoZW1lLmgi
CiAjaW5jbHVkZSAiUmVuZGVyVmlldy5oIgogI2luY2x1ZGUgIlRyYW5zZm9ybVN0YXRlLmgiCisj
aW5jbHVkZSAiV2ViS2l0QW5pbWF0aW9uTGlzdC5oIgogI2luY2x1ZGUgImh0bWxlZGl0aW5nLmgi
CiAjaW5jbHVkZSA8YWxnb3JpdGhtPgogI2luY2x1ZGUgPHN0ZGlvLmg+CkBAIC0yNTg1LDYgKzI1
ODYsMTQgQEAgQW5pbWF0aW9uQ29udHJvbGxlciogUmVuZGVyT2JqZWN0OjphbmltYXRpb24oKSBj
b25zdAogICAgIHJldHVybiBmcmFtZSgpLT5hbmltYXRpb24oKTsKIH0KIAorUGFzc1JlZlB0cjxX
ZWJLaXRBbmltYXRpb25MaXN0PiBSZW5kZXJPYmplY3Q6OmFuaW1hdGlvbnMoKQoreworICAgIEFu
aW1hdGlvbkNvbnRyb2xsZXIqIGFuaW1Db250cm9sbGVyID0gYW5pbWF0aW9uKCk7CisgICAgaWYg
KCFhbmltQ29udHJvbGxlcikKKyAgICAgICAgcmV0dXJuIDA7CisgICAgcmV0dXJuIGFuaW1Db250
cm9sbGVyLT5hbmltYXRpb25zRm9yUmVuZGVyZXIodGhpcyk7Cit9CisKIHZvaWQgUmVuZGVyT2Jq
ZWN0OjppbWFnZUNoYW5nZWQoQ2FjaGVkSW1hZ2UqIGltYWdlLCBjb25zdCBJbnRSZWN0KiByZWN0
KQogewogICAgIGltYWdlQ2hhbmdlZChzdGF0aWNfY2FzdDxXcmFwcGVkSW1hZ2VQdHI+KGltYWdl
KSwgcmVjdCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2Jq
ZWN0LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmgKaW5kZXggNDNl
NmJlYS4uZjE5OGUxMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ck9iamVjdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuaApA
QCAtNTksNiArNTksNyBAQCBjbGFzcyBSZW5kZXJMYXllcjsKIGNsYXNzIFJlbmRlclRoZW1lOwog
Y2xhc3MgVHJhbnNmb3JtU3RhdGU7CiBjbGFzcyBWaXNpYmxlUG9zaXRpb247CitjbGFzcyBXZWJL
aXRBbmltYXRpb25MaXN0OwogI2lmIEVOQUJMRShTVkcpCiBjbGFzcyBSZW5kZXJTVkdSZXNvdXJj
ZUNvbnRhaW5lcjsKICNlbmRpZgpAQCAtNzQ5LDYgKzc1MCw3IEBAIHB1YmxpYzoKICAgICB2b2lk
IHJlbW92ZSgpIHsgaWYgKHBhcmVudCgpKSBwYXJlbnQoKS0+cmVtb3ZlQ2hpbGQodGhpcyk7IH0K
IAogICAgIEFuaW1hdGlvbkNvbnRyb2xsZXIqIGFuaW1hdGlvbigpIGNvbnN0OworICAgIFBhc3NS
ZWZQdHI8V2ViS2l0QW5pbWF0aW9uTGlzdD4gYW5pbWF0aW9ucygpOwogCiAgICAgYm9vbCB2aXNp
YmxlVG9IaXRUZXN0aW5nKCkgY29uc3QgeyByZXR1cm4gc3R5bGUoKS0+dmlzaWJpbGl0eSgpID09
IFZJU0lCTEUgJiYgc3R5bGUoKS0+cG9pbnRlckV2ZW50cygpICE9IFBFX05PTkU7IH0KIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="0"
              isprivate="0"
          >
            <attachid>83423</attachid>
            <date>2011-02-22 18:22:38 -0800</date>
            <delta_ts>2011-03-04 16:37:37 -0800</delta_ts>
            <desc>Work in Progress. Not for review.</desc>
            <filename>wip.patch</filename>
            <type>application/octet-stream</type>
            <size>72302</size>
            <attacher name="Dean Jackson">dino</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UgYi9Tb3VyY2Uv
V2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCmluZGV4IDQwYmJkN2YuLjJhYjgzM2MgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKKysrIGIvU291cmNlL1dl
YkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQpAQCAtNDAsNiArNDAsNyBAQCBWUEFUSCA9IFwKICAg
ICAkKFdlYkNvcmUpL2xvYWRlci9hcHBjYWNoZSBcCiAgICAgJChXZWJDb3JlKS9ub3RpZmljYXRp
b25zIFwKICAgICAkKFdlYkNvcmUpL3BhZ2UgXAorICAgICQoV2ViQ29yZSkvcGFnZS9hbmltYXRp
b24gXAogICAgICQoV2ViQ29yZSkvcGx1Z2lucyBcCiAgICAgJChXZWJDb3JlKS9zdG9yYWdlIFwK
ICAgICAkKFdlYkNvcmUpL3htbCBcCkBAIC01MDYsNyArNTA3LDkgQEAgRE9NX0NMQVNTRVMgPSBc
CiAgICAgVHJlZVdhbGtlciBcCiAgICAgVUlFdmVudCBcCiAgICAgVmFsaWRpdHlTdGF0ZSBcCisg
ICAgV2ViS2l0QW5pbWF0aW9uIFwKICAgICBXZWJLaXRBbmltYXRpb25FdmVudCBcCisgICAgV2Vi
S2l0QW5pbWF0aW9uTGlzdCBcCiAgICAgV2ViS2l0Q1NTS2V5ZnJhbWVSdWxlIFwKICAgICBXZWJL
aXRDU1NLZXlmcmFtZXNSdWxlIFwKICAgICBXZWJLaXRDU1NNYXRyaXggXApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGNhYzQzNTUu
LjdkNzE0ZjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oKQEAgLTc4MCw2ICs3ODAsMTkgQEAKIAkJMzE2RkUxMTgwRTZFMURBNzAwQkY2
MDg4IC8qIEltcGxpY2l0QW5pbWF0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAzMTZGRTEwRTBFNkUxREE3MDBCRjYwODggLyogSW1wbGljaXRBbmlt
YXRpb24uaCAqLzsgfTsKIAkJMzE2RkUxMTkwRTZFMURBNzAwQkY2MDg4IC8qIEtleWZyYW1lQW5p
bWF0aW9uLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDMxNkZFMTBGMEU2RTFEQTcwMEJGNjA4OCAvKiBLZXlmcmFtZUFuaW1hdGlvbi5jcHAgKi87IH07
CiAJCTMxNkZFMTFBMEU2RTFEQTcwMEJGNjA4OCAvKiBLZXlmcmFtZUFuaW1hdGlvbi5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzE2RkUxMTAwRTZFMURB
NzAwQkY2MDg4IC8qIEtleWZyYW1lQW5pbWF0aW9uLmggKi87IH07CisJCTMxOTQ2MTQ4MTMwMUYy
QTMwMDRCQjNGOCAvKiBXZWJLaXRBbmltYXRpb24uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzE5NDYxNDYxMzAxRjJBMzAwNEJCM0Y4IC8qIFdlYktp
dEFuaW1hdGlvbi5jcHAgKi87IH07CisJCTMxOTQ2MTQ5MTMwMUYyQTMwMDRCQjNGOCAvKiBXZWJL
aXRBbmltYXRpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDMxOTQ2MTQ3MTMwMUYyQTMwMDRCQjNGOCAvKiBXZWJLaXRBbmltYXRpb24uaCAqLzsgfTsK
KwkJMzE5NDYxNjIxMzAyMEIyMDAwNEJCM0Y4IC8qIEpTV2ViS2l0QW5pbWF0aW9uLmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMxOTQ2MTYwMTMwMjBC
MjAwMDRCQjNGOCAvKiBKU1dlYktpdEFuaW1hdGlvbi5jcHAgKi87IH07CisJCTMxOTQ2MTYzMTMw
MjBCMjAwMDRCQjNGOCAvKiBKU1dlYktpdEFuaW1hdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzE5NDYxNjExMzAyMEIyMDAwNEJCM0Y4IC8qIEpT
V2ViS2l0QW5pbWF0aW9uLmggKi87IH07CisJCTMxOTQ2MTZBMTMwMjBCNjYwMDRCQjNGOCAvKiBE
T01XZWJLaXRBbmltYXRpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDMxOTQ2MTY4MTMwMjBCNjYwMDRCQjNGOCAvKiBET01XZWJLaXRBbmltYXRpb24u
aCAqLzsgfTsKKwkJMzE5NDYxNkIxMzAyMEI2NjAwNEJCM0Y4IC8qIERPTVdlYktpdEFuaW1hdGlv
bi5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMxOTQ2
MTY5MTMwMjBCNjYwMDRCQjNGOCAvKiBET01XZWJLaXRBbmltYXRpb24ubW0gKi87IH07CisJCTMx
OTQ2MThGMTMwMjEwNjQwMDRCQjNGOCAvKiBXZWJLaXRBbmltYXRpb25MaXN0LmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMTk0NjE4RDEzMDIxMDY0MDA0
QkIzRjggLyogV2ViS2l0QW5pbWF0aW9uTGlzdC5oICovOyB9OworCQkzMTk0NjE5MDEzMDIxMDY0
MDA0QkIzRjggLyogV2ViS2l0QW5pbWF0aW9uTGlzdC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMTk0NjE4RTEzMDIxMDY0MDA0QkIzRjggLyogV2Vi
S2l0QW5pbWF0aW9uTGlzdC5jcHAgKi87IH07CisJCTMxOTQ2MUZFMTMwMjJCQjgwMDRCQjNGOCAv
KiBKU1dlYktpdEFuaW1hdGlvbkxpc3QuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gMzE5NDYxRkMxMzAyMkJCODAwNEJCM0Y4IC8qIEpTV2ViS2l0QW5p
bWF0aW9uTGlzdC5jcHAgKi87IH07CisJCTMxOTQ2MUZGMTMwMjJCQjgwMDRCQjNGOCAvKiBKU1dl
YktpdEFuaW1hdGlvbkxpc3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDMxOTQ2MUZEMTMwMjJCQjgwMDRCQjNGOCAvKiBKU1dlYktpdEFuaW1hdGlvbkxp
c3QuaCAqLzsgfTsKKwkJMzE5NDYyMDQxMzAyMkJGMTAwNEJCM0Y4IC8qIERPTVdlYktpdEFuaW1h
dGlvbkxpc3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDMxOTQ2MjAyMTMwMjJCRjEwMDRCQjNGOCAvKiBET01XZWJLaXRBbmltYXRpb25MaXN0LmggKi87
IH07CisJCTMxOTQ2MjA1MTMwMjJCRjEwMDRCQjNGOCAvKiBET01XZWJLaXRBbmltYXRpb25MaXN0
Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzE5NDYy
MDMxMzAyMkJGMTAwNEJCM0Y4IC8qIERPTVdlYktpdEFuaW1hdGlvbkxpc3QubW0gKi87IH07CisJ
CTMxOTQ2MjMyMTMwMjJGNjUwMDRCQjNGOCAvKiBKU1dlYktpdEFuaW1hdGlvbkxpc3RDdXN0b20u
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzE5NDYy
MzExMzAyMkY2NTAwNEJCM0Y4IC8qIEpTV2ViS2l0QW5pbWF0aW9uTGlzdEN1c3RvbS5jcHAgKi87
IH07CiAJCTMxQzBGRjIxMEU0Q0VCNkUwMDdENkZFNSAvKiBXZWJLaXRBbmltYXRpb25FdmVudC5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMUMwRkYx
QjBFNENFQjZFMDA3RDZGRTUgLyogV2ViS2l0QW5pbWF0aW9uRXZlbnQuY3BwICovOyB9OwogCQkz
MUMwRkYyMjBFNENFQjZFMDA3RDZGRTUgLyogV2ViS2l0QW5pbWF0aW9uRXZlbnQuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMxQzBGRjFDMEU0Q0VCNkUw
MDdENkZFNSAvKiBXZWJLaXRBbmltYXRpb25FdmVudC5oICovOyB9OwogCQkzMUMwRkYyNDBFNENF
QjZFMDA3RDZGRTUgLyogV2ViS2l0VHJhbnNpdGlvbkV2ZW50LmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMxQzBGRjFFMEU0Q0VCNkUwMDdENkZFNSAv
KiBXZWJLaXRUcmFuc2l0aW9uRXZlbnQuY3BwICovOyB9OwpAQCAtNzEzNiw2ICs3MTQ5LDIxIEBA
CiAJCTMxNkZFMTBFMEU2RTFEQTcwMEJGNjA4OCAvKiBJbXBsaWNpdEFuaW1hdGlvbi5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBJbXBsaWNpdEFuaW1hdGlvbi5oOyBwYXRoID0g
YW5pbWF0aW9uL0ltcGxpY2l0QW5pbWF0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTMxNkZFMTBGMEU2RTFEQTcwMEJGNjA4OCAvKiBLZXlmcmFtZUFuaW1hdGlvbi5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBLZXlmcmFtZUFuaW1hdGlvbi5jcHA7
IHBhdGggPSBhbmltYXRpb24vS2V5ZnJhbWVBbmltYXRpb24uY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQkzMTZGRTExMDBFNkUxREE3MDBCRjYwODggLyogS2V5ZnJhbWVBbmltYXRp
b24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gS2V5ZnJhbWVBbmltYXRpb24u
aDsgcGF0aCA9IGFuaW1hdGlvbi9LZXlmcmFtZUFuaW1hdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQkzMTk0NjEzODEzMDFFRjRDMDA0QkIzRjggLyogV2ViS2l0QW5pbWF0aW9u
LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHRleHQ7IG5hbWUgPSBXZWJLaXRBbmltYXRpb24uaWRsOyBwYXRoID0g
YW5pbWF0aW9uL1dlYktpdEFuaW1hdGlvbi5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCTMxOTQ2MTQ2MTMwMUYyQTMwMDRCQjNGOCAvKiBXZWJLaXRBbmltYXRpb24uY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gV2ViS2l0QW5pbWF0aW9uLmNwcDsgcGF0
aCA9IGFuaW1hdGlvbi9XZWJLaXRBbmltYXRpb24uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQkzMTk0NjE0NzEzMDFGMkEzMDA0QkIzRjggLyogV2ViS2l0QW5pbWF0aW9uLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFdlYktpdEFuaW1hdGlvbi5oOyBwYXRoID0g
YW5pbWF0aW9uL1dlYktpdEFuaW1hdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQkzMTk0NjE2MDEzMDIwQjIwMDA0QkIzRjggLyogSlNXZWJLaXRBbmltYXRpb24uY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNXZWJLaXRBbmltYXRpb24uY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkzMTk0NjE2MTEzMDIwQjIwMDA0QkIzRjggLyog
SlNXZWJLaXRBbmltYXRpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNX
ZWJLaXRBbmltYXRpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMzE5NDYxNjgx
MzAyMEI2NjAwNEJCM0Y4IC8qIERPTVdlYktpdEFuaW1hdGlvbi5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBET01XZWJLaXRBbmltYXRpb24uaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJMzE5NDYxNjkxMzAyMEI2NjAwNEJCM0Y4IC8qIERPTVdlYktpdEFuaW1hdGlv
bi5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IERPTVdlYktpdEFu
aW1hdGlvbi5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMzE5NDYxNzgxMzAyMTAw
ODAwNEJCM0Y4IC8qIFdlYktpdEFuaW1hdGlvbkxpc3QuaWRsICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgbmFt
ZSA9IFdlYktpdEFuaW1hdGlvbkxpc3QuaWRsOyBwYXRoID0gYW5pbWF0aW9uL1dlYktpdEFuaW1h
dGlvbkxpc3QuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkzMTk0NjE4RDEzMDIx
MDY0MDA0QkIzRjggLyogV2ViS2l0QW5pbWF0aW9uTGlzdC5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IG5hbWUgPSBXZWJLaXRBbmltYXRpb25MaXN0Lmg7IHBhdGggPSBhbmltYXRpb24vV2Vi
S2l0QW5pbWF0aW9uTGlzdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkzMTk0NjE4
RTEzMDIxMDY0MDA0QkIzRjggLyogV2ViS2l0QW5pbWF0aW9uTGlzdC5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBXZWJLaXRBbmltYXRpb25MaXN0LmNwcDsgcGF0aCA9
IGFuaW1hdGlvbi9XZWJLaXRBbmltYXRpb25MaXN0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJMzE5NDYxRkMxMzAyMkJCODAwNEJCM0Y4IC8qIEpTV2ViS2l0QW5pbWF0aW9uTGlz
dC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1dlYktpdEFuaW1h
dGlvbkxpc3QuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkzMTk0NjFGRDEzMDIy
QkI4MDA0QkIzRjggLyogSlNXZWJLaXRBbmltYXRpb25MaXN0LmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IEpTV2ViS2l0QW5pbWF0aW9uTGlzdC5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQkzMTk0NjIwMjEzMDIyQkYxMDA0QkIzRjggLyogRE9NV2ViS2l0QW5pbWF0
aW9uTGlzdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBET01XZWJLaXRBbmlt
YXRpb25MaXN0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTMxOTQ2MjAzMTMwMjJC
RjEwMDRCQjNGOCAvKiBET01XZWJLaXRBbmltYXRpb25MaXN0Lm1tICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAub2JqY3BwOyBwYXRoID0gRE9NV2ViS2l0QW5pbWF0aW9uTGlzdC5tbTsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMzE5NDYyMzExMzAyMkY2NTAwNEJCM0Y4IC8qIEpTV2Vi
S2l0QW5pbWF0aW9uTGlzdEN1c3RvbS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBKU1dlYktpdEFuaW1hdGlvbkxpc3RDdXN0b20uY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQkzMUMwRkYxQjBFNENFQjZFMDA3RDZGRTUgLyogV2ViS2l0QW5pbWF0aW9u
RXZlbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViS2l0QW5p
bWF0aW9uRXZlbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkzMUMwRkYxQzBF
NENFQjZFMDA3RDZGRTUgLyogV2ViS2l0QW5pbWF0aW9uRXZlbnQuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gV2ViS2l0QW5pbWF0aW9uRXZlbnQuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJMzFDMEZGMUQwRTRDRUI2RTAwN0Q2RkU1IC8qIFdlYktpdEFuaW1hdGlv
bkV2ZW50LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBXZWJLaXRBbmltYXRpb25FdmVudC5p
ZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xMzE3Myw2ICsxMzIwMSwxMiBAQAog
CQkJCTMxNkZFMTBFMEU2RTFEQTcwMEJGNjA4OCAvKiBJbXBsaWNpdEFuaW1hdGlvbi5oICovLAog
CQkJCTMxNkZFMTBGMEU2RTFEQTcwMEJGNjA4OCAvKiBLZXlmcmFtZUFuaW1hdGlvbi5jcHAgKi8s
CiAJCQkJMzE2RkUxMTAwRTZFMURBNzAwQkY2MDg4IC8qIEtleWZyYW1lQW5pbWF0aW9uLmggKi8s
CisJCQkJMzE5NDYxNDYxMzAxRjJBMzAwNEJCM0Y4IC8qIFdlYktpdEFuaW1hdGlvbi5jcHAgKi8s
CisJCQkJMzE5NDYxNDcxMzAxRjJBMzAwNEJCM0Y4IC8qIFdlYktpdEFuaW1hdGlvbi5oICovLAor
CQkJCTMxOTQ2MTM4MTMwMUVGNEMwMDRCQjNGOCAvKiBXZWJLaXRBbmltYXRpb24uaWRsICovLAor
CQkJCTMxOTQ2MThFMTMwMjEwNjQwMDRCQjNGOCAvKiBXZWJLaXRBbmltYXRpb25MaXN0LmNwcCAq
LywKKwkJCQkzMTk0NjE4RDEzMDIxMDY0MDA0QkIzRjggLyogV2ViS2l0QW5pbWF0aW9uTGlzdC5o
ICovLAorCQkJCTMxOTQ2MTc4MTMwMjEwMDgwMDRCQjNGOCAvKiBXZWJLaXRBbmltYXRpb25MaXN0
LmlkbCAqLywKIAkJCSk7CiAJCQluYW1lID0gYW5pbWF0aW9uOwogCQkJc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsKQEAgLTE0OTI4LDYgKzE0OTYyLDEwIEBACiAJCQkJODVCQTREMEEwQUE2ODg2ODAw
ODgwNTJEIC8qIERPTUhUTUxVTGlzdEVsZW1lbnQubW0gKi8sCiAJCQkJMTVDNzcwQTQxMDBENDFD
RDAwNUJBMjY3IC8qIERPTVZhbGlkaXR5U3RhdGUuaCAqLywKIAkJCQkxNUM3NzBBMzEwMEQ0MUNE
MDA1QkEyNjcgLyogRE9NVmFsaWRpdHlTdGF0ZS5tbSAqLywKKwkJCQkzMTk0NjE2ODEzMDIwQjY2
MDA0QkIzRjggLyogRE9NV2ViS2l0QW5pbWF0aW9uLmggKi8sCisJCQkJMzE5NDYxNjkxMzAyMEI2
NjAwNEJCM0Y4IC8qIERPTVdlYktpdEFuaW1hdGlvbi5tbSAqLywKKwkJCQkzMTk0NjIwMjEzMDIy
QkYxMDA0QkIzRjggLyogRE9NV2ViS2l0QW5pbWF0aW9uTGlzdC5oICovLAorCQkJCTMxOTQ2MjAz
MTMwMjJCRjEwMDRCQjNGOCAvKiBET01XZWJLaXRBbmltYXRpb25MaXN0Lm1tICovLAogCQkJKTsK
IAkJCW5hbWUgPSBIVE1MOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKQEAgLTE2MjQ1LDYg
KzE2MjgzLDEwIEBACiAJCQkJNDlDN0I5OTIxMDQyRDJEMzAwMDlENDQ3IC8qIEpTV2ViR0xUZXh0
dXJlLmggKi8sCiAJCQkJMEM0NTM0MjUxMENEQkJGQTAwODY5MTU3IC8qIEpTV2ViR0xVbmlmb3Jt
TG9jYXRpb24uY3BwICovLAogCQkJCTBDNDUzNDI2MTBDREJCRkEwMDg2OTE1NyAvKiBKU1dlYkdM
VW5pZm9ybUxvY2F0aW9uLmggKi8sCisJCQkJMzE5NDYxNjAxMzAyMEIyMDAwNEJCM0Y4IC8qIEpT
V2ViS2l0QW5pbWF0aW9uLmNwcCAqLywKKwkJCQkzMTk0NjE2MTEzMDIwQjIwMDA0QkIzRjggLyog
SlNXZWJLaXRBbmltYXRpb24uaCAqLywKKwkJCQkzMTk0NjFGQzEzMDIyQkI4MDA0QkIzRjggLyog
SlNXZWJLaXRBbmltYXRpb25MaXN0LmNwcCAqLywKKwkJCQkzMTk0NjFGRDEzMDIyQkI4MDA0QkIz
RjggLyogSlNXZWJLaXRBbmltYXRpb25MaXN0LmggKi8sCiAJCQkJOTNGMUQ1QkUxMkQ1MzM1NjAw
ODMyQkVDIC8qIEpTV2ViS2l0TG9zZUNvbnRleHQuY3BwICovLAogCQkJCTkzRjFENUJGMTJENTMz
NTYwMDgzMkJFQyAvKiBKU1dlYktpdExvc2VDb250ZXh0LmggKi8sCiAJCQkpOwpAQCAtMTc5NDgs
NiArMTc5OTAsNyBAQAogCQkJCTQ5RUVDRjc2MTA1MDhEOUMwMDA5OUZBQiAvKiBKU1VpbnQzMkFy
cmF5Q3VzdG9tLmNwcCAqLywKIAkJCQk0OUVFQ0Y3NTEwNTA4RDlDMDAwOTlGQUIgLyogSlNVaW50
OEFycmF5Q3VzdG9tLmNwcCAqLywKIAkJCQk0OUVFRDE0QzEwNTE5NzFBMDAwOTlGQUIgLyogSlNX
ZWJHTFJlbmRlcmluZ0NvbnRleHRDdXN0b20uY3BwICovLAorCQkJCTMxOTQ2MjMxMTMwMjJGNjUw
MDRCQjNGOCAvKiBKU1dlYktpdEFuaW1hdGlvbkxpc3RDdXN0b20uY3BwICovLAogCQkJCUUxQUQx
NEM0MTI5NzM1NDkwMEFDQTk4OSAvKiBKU1dlYktpdENTU0tleWZyYW1lUnVsZUN1c3RvbS5jcHAg
Ki8sCiAJCQkJRTFBRDE0QjQxMjk3MzRDQTAwQUNBOTg5IC8qIEpTV2ViS2l0Q1NTS2V5ZnJhbWVz
UnVsZUN1c3RvbS5jcHAgKi8sCiAJCQkJQkMyNzVCN0MxMUM1RDIzNTAwQzkyMDZDIC8qIEpTV2Vi
S2l0Q1NTTWF0cml4Q3VzdG9tLmNwcCAqLywKQEAgLTIyNDQ0LDYgKzIyNDg3LDEyIEBACiAJCQkJ
RTFCRTUxMkUwQ0Y2QzUxMjAwMkVBOTU5IC8qIFhTTFRVbmljb2RlU29ydC5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJOTM0M0NCODIxMkYyNUU1MTAwMzNDNUVFIC8qIFRleHRDb2RlY1VURjguaCBpbiBI
ZWFkZXJzICovLAogCQkJCTk3N0UyRTBGMTJGMEZDOUMwMEMxMzM3OSAvKiBYU1NGaWx0ZXIuaCBp
biBIZWFkZXJzICovLAorCQkJCTMxOTQ2MTQ5MTMwMUYyQTMwMDRCQjNGOCAvKiBXZWJLaXRBbmlt
YXRpb24uaCBpbiBIZWFkZXJzICovLAorCQkJCTMxOTQ2MTYzMTMwMjBCMjAwMDRCQjNGOCAvKiBK
U1dlYktpdEFuaW1hdGlvbi5oIGluIEhlYWRlcnMgKi8sCisJCQkJMzE5NDYxNkExMzAyMEI2NjAw
NEJCM0Y4IC8qIERPTVdlYktpdEFuaW1hdGlvbi5oIGluIEhlYWRlcnMgKi8sCisJCQkJMzE5NDYx
OEYxMzAyMTA2NDAwNEJCM0Y4IC8qIFdlYktpdEFuaW1hdGlvbkxpc3QuaCBpbiBIZWFkZXJzICov
LAorCQkJCTMxOTQ2MUZGMTMwMjJCQjgwMDRCQjNGOCAvKiBKU1dlYktpdEFuaW1hdGlvbkxpc3Qu
aCBpbiBIZWFkZXJzICovLAorCQkJCTMxOTQ2MjA0MTMwMjJCRjEwMDRCQjNGOCAvKiBET01XZWJL
aXRBbmltYXRpb25MaXN0LmggaW4gSGVhZGVycyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVw
bG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKQEAgLTI1MTMwLDYgKzI1MTc5LDEzIEBA
CiAJCQkJQTFFMTE1NDQxMzAxNUMzRDAwNTRBQzhDIC8qIERpc3RhbnRMaWdodFNvdXJjZS5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQlBMUUxMTU0NjEzMDE1QzRFMDA1NEFDOEMgLyogUG9pbnRMaWdo
dFNvdXJjZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBMUUxMTU0ODEzMDE1QzVEMDA1NEFDOEMg
LyogU3BvdExpZ2h0U291cmNlLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTMxOTQ2MTQ4MTMwMUYy
QTMwMDRCQjNGOCAvKiBXZWJLaXRBbmltYXRpb24uY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMzE5
NDYxNjIxMzAyMEIyMDAwNEJCM0Y4IC8qIEpTV2ViS2l0QW5pbWF0aW9uLmNwcCBpbiBTb3VyY2Vz
ICovLAorCQkJCTMxOTQ2MTZCMTMwMjBCNjYwMDRCQjNGOCAvKiBET01XZWJLaXRBbmltYXRpb24u
bW0gaW4gU291cmNlcyAqLywKKwkJCQkzMTk0NjE5MDEzMDIxMDY0MDA0QkIzRjggLyogV2ViS2l0
QW5pbWF0aW9uTGlzdC5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkzMTk0NjFGRTEzMDIyQkI4MDA0
QkIzRjggLyogSlNXZWJLaXRBbmltYXRpb25MaXN0LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTMx
OTQ2MjA1MTMwMjJCRjEwMDRCQjNGOCAvKiBET01XZWJLaXRBbmltYXRpb25MaXN0Lm1tIGluIFNv
dXJjZXMgKi8sCisJCQkJMzE5NDYyMzIxMzAyMkY2NTAwNEJCM0Y4IC8qIEpTV2ViS2l0QW5pbWF0
aW9uTGlzdEN1c3RvbS5jcHAgaW4gU291cmNlcyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVw
bG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTV2ViS2l0QW5pbWF0aW9uTGlzdEN1c3RvbS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dlYktpdEFuaW1hdGlvbkxpc3RDdXN0b20uY3BwCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmM4YmQ0ZDUKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dlYktpdEFuaW1hdGlvbkxpc3RDdXN0b20u
Y3BwCkBAIC0wLDAgKzEsNDcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDkgQXBwbGUgSW5j
LiBBbGwgcmlnaHQgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVY
RU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1
ZGUgIkpTV2ViS2l0QW5pbWF0aW9uTGlzdC5oIgorCisjaW5jbHVkZSAiV2ViS2l0QW5pbWF0aW9u
TGlzdC5oIgorCit1c2luZyBuYW1lc3BhY2UgSlNDOworCituYW1lc3BhY2UgV2ViQ29yZSB7Cisg
ICAgCisgICAgdm9pZCBKU1dlYktpdEFuaW1hdGlvbkxpc3Q6Om1hcmtDaGlsZHJlbihNYXJrU3Rh
Y2smIG1hcmtTdGFjaykKKyAgICB7CisgICAgICAgIEJhc2U6Om1hcmtDaGlsZHJlbihtYXJrU3Rh
Y2spOworICAgICAgICAKKyAgICAgICAgV2ViS2l0QW5pbWF0aW9uTGlzdCogbGlzdCA9IGltcGwo
KTsKKyAgICAgICAgSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhID0gKkhlYXA6OmhlYXAodGhpcykt
Pmdsb2JhbERhdGEoKTsKKyAgICAgICAgCisgICAgICAgIHVuc2lnbmVkIGxlbmd0aCA9IGxpc3Qt
Pmxlbmd0aCgpOworICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbGVuZ3RoOyArK2kp
CisgICAgICAgICAgICBtYXJrRE9NT2JqZWN0V3JhcHBlcihtYXJrU3RhY2ssIGdsb2JhbERhdGEs
IGxpc3QtPml0ZW0oaSkpOworICAgIH0KKyAgICAKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9FbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcAppbmRl
eCA5YjNmNzIzLi5jMTBlZTc0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVu
dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCkBAIC01NSw2ICs1NSw3
IEBACiAjaW5jbHVkZSAiUmVuZGVyV2lkZ2V0LmgiCiAjaW5jbHVkZSAiU2V0dGluZ3MuaCIKICNp
bmNsdWRlICJUZXh0SXRlcmF0b3IuaCIKKyNpbmNsdWRlICJXZWJLaXRBbmltYXRpb25MaXN0Lmgi
CiAjaW5jbHVkZSAiWE1MTmFtZXMuaCIKICNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CiAK
QEAgLTE4NTksNCArMTg2MCwxMiBAQCBib29sIEVsZW1lbnQ6OmlzU3BlbGxDaGVja2luZ0VuYWJs
ZWQoKSBjb25zdAogICAgIHJldHVybiB0cnVlOwogfQogCitQYXNzUmVmUHRyPFdlYktpdEFuaW1h
dGlvbkxpc3Q+IEVsZW1lbnQ6OmFuaW1hdGlvbnMoKQoreworICAgIGlmICghcmVuZGVyZXIoKSkK
KyAgICAgICAgcmV0dXJuIDA7CisgICAgCisgICAgcmV0dXJuIHJlbmRlcmVyKCktPmFuaW1hdGlv
bnMoKTsKK30KKyAgICAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9FbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5oCmlu
ZGV4IGRlNDJhNWYuLmU2NWU3NjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVt
ZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuaApAQCAtMzksNiArMzksNyBA
QCBjbGFzcyBET01TdHJpbmdNYXA7CiBjbGFzcyBET01Ub2tlbkxpc3Q7CiBjbGFzcyBFbGVtZW50
UmFyZURhdGE7CiBjbGFzcyBJbnRTaXplOworY2xhc3MgV2ViS2l0QW5pbWF0aW9uTGlzdDsKIAog
ZW51bSBTcGVsbGNoZWNrQXR0cmlidXRlU3RhdGUgewogICAgIFNwZWxsY2hlY2tBdHRyaWJ1dGVU
cnVlLApAQCAtMzM5LDYgKzM0MCw4IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgYm9vbCBpc1Nw
ZWxsQ2hlY2tpbmdFbmFibGVkKCkgY29uc3Q7CiAKKyAgICBQYXNzUmVmUHRyPFdlYktpdEFuaW1h
dGlvbkxpc3Q+IGFuaW1hdGlvbnMoKTsKKyAgICAKIHByb3RlY3RlZDoKICAgICBFbGVtZW50KGNv
bnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50KiBkb2N1bWVudCwgQ29uc3RydWN0
aW9uVHlwZSB0eXBlKQogICAgICAgICA6IENvbnRhaW5lck5vZGUoZG9jdW1lbnQsIHR5cGUpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0RPTVdpbmRvdy5jcHAKaW5kZXggNTc1MzE5Yi4uMGRjZjcwNiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvRE9NV2luZG93LmNwcApAQCAtODgsNiArODgsOCBAQAogI2luY2x1ZGUgIlN0b3JhZ2VO
YW1lc3BhY2UuaCIKICNpbmNsdWRlICJTdHlsZU1lZGlhLmgiCiAjaW5jbHVkZSAiU3VkZGVuVGVy
bWluYXRpb24uaCIKKyNpbmNsdWRlICJXZWJLaXRBbmltYXRpb24uaCIKKyNpbmNsdWRlICJXZWJL
aXRBbmltYXRpb25MaXN0LmgiCiAjaW5jbHVkZSAiV2ViS2l0UG9pbnQuaCIKICNpbmNsdWRlICJX
aW5kb3dGZWF0dXJlcy5oIgogI2luY2x1ZGUgPGFsZ29yaXRobT4KQEAgLTEyNzYsNiArMTI3OCwx
NCBAQCBQYXNzUmVmUHRyPFdlYktpdFBvaW50PiBET01XaW5kb3c6OndlYmtpdENvbnZlcnRQb2lu
dEZyb21QYWdlVG9Ob2RlKE5vZGUqIG5vZGUsCiAgICAgcmV0dXJuIFdlYktpdFBvaW50OjpjcmVh
dGUobm9kZVBvaW50LngoKSwgbm9kZVBvaW50LnkoKSk7CiB9CiAKK1Bhc3NSZWZQdHI8V2ViS2l0
QW5pbWF0aW9uTGlzdD4gRE9NV2luZG93Ojp3ZWJraXRHZXRBbmltYXRpb25zRm9yRWxlbWVudChF
bGVtZW50KiBlbGVtZW50KSBjb25zdAoreworICAgIGlmICghZWxlbWVudCkKKyAgICAgICAgcmV0
dXJuIDA7CisKKyAgICByZXR1cm4gZWxlbWVudC0+YW5pbWF0aW9ucygpOworfQorICAgIAogZG91
YmxlIERPTVdpbmRvdzo6ZGV2aWNlUGl4ZWxSYXRpbygpIGNvbnN0CiB7CiAgICAgaWYgKCFtX2Zy
YW1lKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmgKaW5kZXggYTFlNDQ2Mi4uNGFkYTNjNyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL0RPTVdpbmRvdy5oCkBAIC02Miw2ICs2Miw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsK
ICAgICBjbGFzcyBTZXJpYWxpemVkU2NyaXB0VmFsdWU7CiAgICAgY2xhc3MgU3RvcmFnZTsKICAg
ICBjbGFzcyBTdHlsZU1lZGlhOworICAgIGNsYXNzIFdlYktpdEFuaW1hdGlvbkxpc3Q7CiAgICAg
Y2xhc3MgV2ViS2l0UG9pbnQ7CiAKICNpZiBFTkFCTEUoUkVRVUVTVF9BTklNQVRJT05fRlJBTUUp
CkBAIC0yMTMsNiArMjE0LDggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBQYXNzUmVm
UHRyPFdlYktpdFBvaW50PiB3ZWJraXRDb252ZXJ0UG9pbnRGcm9tUGFnZVRvTm9kZShOb2RlKiwg
Y29uc3QgV2ViS2l0UG9pbnQqKSBjb25zdDsKICAgICAgICAgUGFzc1JlZlB0cjxXZWJLaXRQb2lu
dD4gd2Via2l0Q29udmVydFBvaW50RnJvbU5vZGVUb1BhZ2UoTm9kZSosIGNvbnN0IFdlYktpdFBv
aW50KikgY29uc3Q7ICAgICAgICAKIAorICAgICAgICBQYXNzUmVmUHRyPFdlYktpdEFuaW1hdGlv
bkxpc3Q+IHdlYmtpdEdldEFuaW1hdGlvbnNGb3JFbGVtZW50KEVsZW1lbnQqKSBjb25zdDsKKyAg
ICAgICAgCiAgICAgICAgIENvbnNvbGUqIGNvbnNvbGUoKSBjb25zdDsKIAogICAgICAgICB2b2lk
IHByaW50RXJyb3JNZXNzYWdlKGNvbnN0IFN0cmluZyYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGFnZS9ET01XaW5kb3cuaWRsIGIvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cu
aWRsCmluZGV4IDI2ZmY2ZDYuLjdmZjU1N2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvRE9NV2luZG93LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5pZGwK
QEAgLTE2MSw2ICsxNjEsOCBAQCBtb2R1bGUgd2luZG93IHsKICAgICAgICAgV2ViS2l0UG9pbnQg
d2Via2l0Q29udmVydFBvaW50RnJvbVBhZ2VUb05vZGUoaW4gTm9kZSBub2RlLCBpbiBXZWJLaXRQ
b2ludCBwKTsKICAgICAgICAgV2ViS2l0UG9pbnQgd2Via2l0Q29udmVydFBvaW50RnJvbU5vZGVU
b1BhZ2UoaW4gTm9kZSBub2RlLCBpbiBXZWJLaXRQb2ludCBwKTsKIAorICAgICAgICBXZWJLaXRB
bmltYXRpb25MaXN0IHdlYmtpdEdldEFuaW1hdGlvbnNGb3JFbGVtZW50KGluIEVsZW1lbnQgZWxl
bWVudCk7CisKICNpZiBkZWZpbmVkKEVOQUJMRV9PRkZMSU5FX1dFQl9BUFBMSUNBVElPTlMpICYm
IEVOQUJMRV9PRkZMSU5FX1dFQl9BUFBMSUNBVElPTlMKICAgICAgICAgcmVhZG9ubHkgYXR0cmli
dXRlIFtFbmFibGVkQXRSdW50aW1lXSBET01BcHBsaWNhdGlvbkNhY2hlIGFwcGxpY2F0aW9uQ2Fj
aGU7CiAjZW5kaWYgICAgCkBAIC02MDcsNiArNjA5LDkgQEAgbW9kdWxlIHdpbmRvdyB7CiAgICAg
ICAgIGF0dHJpYnV0ZSBbQ29uZGl0aW9uYWw9VklERU8sIEVuYWJsZWRBdFJ1bnRpbWVdIE1lZGlh
RXJyb3JDb25zdHJ1Y3RvciBNZWRpYUVycm9yOwogICAgICAgICBhdHRyaWJ1dGUgW0NvbmRpdGlv
bmFsPVZJREVPLCBFbmFibGVkQXRSdW50aW1lXSBUaW1lUmFuZ2VzQ29uc3RydWN0b3IgVGltZVJh
bmdlczsKIAorICAgICAgICBhdHRyaWJ1dGUgV2ViS2l0QW5pbWF0aW9uQ29uc3RydWN0b3IgV2Vi
S2l0QW5pbWF0aW9uOworICAgICAgICBhdHRyaWJ1dGUgV2ViS2l0QW5pbWF0aW9uTGlzdENvbnN0
cnVjdG9yIFdlYktpdEFuaW1hdGlvbkxpc3Q7CisKICNpZiBkZWZpbmVkKEVOQUJMRV9YUEFUSCkg
JiYgRU5BQkxFX1hQQVRICiAgICAgICAgIGF0dHJpYnV0ZSBYUGF0aEV2YWx1YXRvckNvbnN0cnVj
dG9yIFhQYXRoRXZhbHVhdG9yOwogICAgICAgICBhdHRyaWJ1dGUgWFBhdGhSZXN1bHRDb25zdHJ1
Y3RvciBYUGF0aFJlc3VsdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0
aW9uL0FuaW1hdGlvbkJhc2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vQW5p
bWF0aW9uQmFzZS5jcHAKaW5kZXggOWE5MDZlMi4uMjBkNmI5MiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGFnZS9hbmltYXRpb24vQW5pbWF0aW9uQmFzZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9hbmltYXRpb24vQW5pbWF0aW9uQmFzZS5jcHAKQEAgLTc4OSw4ICs3ODksMTEg
QEAgc3RhdGljIFByb3BlcnR5V3JhcHBlckJhc2UqIHdyYXBwZXJGb3JQcm9wZXJ0eShpbnQgcHJv
cGVydHlJRCkKIEFuaW1hdGlvbkJhc2U6OkFuaW1hdGlvbkJhc2UoY29uc3QgQW5pbWF0aW9uKiB0
cmFuc2l0aW9uLCBSZW5kZXJPYmplY3QqIHJlbmRlcmVyLCBDb21wb3NpdGVBbmltYXRpb24qIGNv
bXBBbmltKQogICAgIDogbV9hbmltU3RhdGUoQW5pbWF0aW9uU3RhdGVOZXcpCiAgICAgLCBtX2lz
QW5pbWF0aW5nKGZhbHNlKQorICAgICwgbV9hcHBsaWVkVGltZShjdXJyZW50VGltZSgpKQogICAg
ICwgbV9zdGFydFRpbWUoMCkKICAgICAsIG1fcGF1c2VUaW1lKC0xKQorICAgICwgbV9pc1BhdXNl
ZChmYWxzZSkKKyAgICAsIG1fcGF1c2VkQnlTY3JpcHQoZmFsc2UpCiAgICAgLCBtX3JlcXVlc3Rl
ZFN0YXJ0VGltZSgwKQogICAgICwgbV9vYmplY3QocmVuZGVyZXIpCiAgICAgLCBtX2FuaW1hdGlv
bihjb25zdF9jYXN0PEFuaW1hdGlvbio+KHRyYW5zaXRpb24pKQpAQCAtOTM1LDExICs5MzgsMTQg
QEAgdm9pZCBBbmltYXRpb25CYXNlOjp1cGRhdGVTdGF0ZU1hY2hpbmUoQW5pbVN0YXRlSW5wdXQg
aW5wdXQsIGRvdWJsZSBwYXJhbSkKIHsKICAgICAvLyBJZiB3ZSBnZXQgQW5pbWF0aW9uU3RhdGVJ
bnB1dFJlc3RhcnRBbmltYXRpb24gdGhlbiB3ZSBmb3JjZSBhIG5ldyBhbmltYXRpb24sIHJlZ2Fy
ZGxlc3Mgb2Ygc3RhdGUuCiAgICAgaWYgKGlucHV0ID09IEFuaW1hdGlvblN0YXRlSW5wdXRNYWtl
TmV3KSB7CisvLyAgICAgICAgcHJpbnRmKCJTVEFURSA8LS0gQW5pbWF0aW9uU3RhdGVJbnB1dE1h
a2VOZXdcbiIpOwogICAgICAgICBpZiAobV9hbmltU3RhdGUgPT0gQW5pbWF0aW9uU3RhdGVTdGFy
dFdhaXRTdHlsZUF2YWlsYWJsZSkKICAgICAgICAgICAgIG1fY29tcEFuaW0tPmFuaW1hdGlvbkNv
bnRyb2xsZXIoKS0+cmVtb3ZlRnJvbVN0eWxlQXZhaWxhYmxlV2FpdExpc3QodGhpcyk7CiAgICAg
ICAgIG1fYW5pbVN0YXRlID0gQW5pbWF0aW9uU3RhdGVOZXc7CisgICAgICAgIG1fYXBwbGllZFRp
bWUgPSBjdXJyZW50VGltZSgpOwogICAgICAgICBtX3N0YXJ0VGltZSA9IDA7CiAgICAgICAgIG1f
cGF1c2VUaW1lID0gLTE7CisgICAgICAgIG1faXNQYXVzZWQgPSBmYWxzZTsKICAgICAgICAgbV9y
ZXF1ZXN0ZWRTdGFydFRpbWUgPSAwOwogICAgICAgICBtX25leHRJdGVyYXRpb25EdXJhdGlvbiA9
IC0xOwogICAgICAgICBlbmRBbmltYXRpb24oKTsKQEAgLTk0NywxMSArOTUzLDE0IEBAIHZvaWQg
QW5pbWF0aW9uQmFzZTo6dXBkYXRlU3RhdGVNYWNoaW5lKEFuaW1TdGF0ZUlucHV0IGlucHV0LCBk
b3VibGUgcGFyYW0pCiAgICAgfQogCiAgICAgaWYgKGlucHV0ID09IEFuaW1hdGlvblN0YXRlSW5w
dXRSZXN0YXJ0QW5pbWF0aW9uKSB7CisvLyAgICAgICAgcHJpbnRmKCJTVEFURSA8LS0gQW5pbWF0
aW9uU3RhdGVJbnB1dFJlc3RhcnRBbmltYXRpb25cbiIpOwogICAgICAgICBpZiAobV9hbmltU3Rh
dGUgPT0gQW5pbWF0aW9uU3RhdGVTdGFydFdhaXRTdHlsZUF2YWlsYWJsZSkKICAgICAgICAgICAg
IG1fY29tcEFuaW0tPmFuaW1hdGlvbkNvbnRyb2xsZXIoKS0+cmVtb3ZlRnJvbVN0eWxlQXZhaWxh
YmxlV2FpdExpc3QodGhpcyk7CiAgICAgICAgIG1fYW5pbVN0YXRlID0gQW5pbWF0aW9uU3RhdGVO
ZXc7CisgICAgICAgIG1fYXBwbGllZFRpbWUgPSBjdXJyZW50VGltZSgpOwogICAgICAgICBtX3N0
YXJ0VGltZSA9IDA7CiAgICAgICAgIG1fcGF1c2VUaW1lID0gLTE7CisgICAgICAgIG1faXNQYXVz
ZWQgPSBmYWxzZTsKICAgICAgICAgbV9yZXF1ZXN0ZWRTdGFydFRpbWUgPSAwOwogICAgICAgICBt
X25leHRJdGVyYXRpb25EdXJhdGlvbiA9IC0xOwogICAgICAgICBlbmRBbmltYXRpb24oKTsKQEAg
LTk2Miw2ICs5NzEsNyBAQCB2b2lkIEFuaW1hdGlvbkJhc2U6OnVwZGF0ZVN0YXRlTWFjaGluZShB
bmltU3RhdGVJbnB1dCBpbnB1dCwgZG91YmxlIHBhcmFtKQogICAgIH0KIAogICAgIGlmIChpbnB1
dCA9PSBBbmltYXRpb25TdGF0ZUlucHV0RW5kQW5pbWF0aW9uKSB7CisvLyAgICAgICAgcHJpbnRm
KCJTVEFURSA8LS0gQW5pbWF0aW9uU3RhdGVJbnB1dEVuZEFuaW1hdGlvblxuIik7CiAgICAgICAg
IGlmIChtX2FuaW1TdGF0ZSA9PSBBbmltYXRpb25TdGF0ZVN0YXJ0V2FpdFN0eWxlQXZhaWxhYmxl
KQogICAgICAgICAgICAgbV9jb21wQW5pbS0+YW5pbWF0aW9uQ29udHJvbGxlcigpLT5yZW1vdmVG
cm9tU3R5bGVBdmFpbGFibGVXYWl0TGlzdCh0aGlzKTsKICAgICAgICAgbV9hbmltU3RhdGUgPSBB
bmltYXRpb25TdGF0ZURvbmU7CkBAIC05NzAsNiArOTgwLDcgQEAgdm9pZCBBbmltYXRpb25CYXNl
Ojp1cGRhdGVTdGF0ZU1hY2hpbmUoQW5pbVN0YXRlSW5wdXQgaW5wdXQsIGRvdWJsZSBwYXJhbSkK
ICAgICB9CiAKICAgICBpZiAoaW5wdXQgPT0gQW5pbWF0aW9uU3RhdGVJbnB1dFBhdXNlT3ZlcnJp
ZGUpIHsKKy8vICAgICAgICBwcmludGYoIlNUQVRFIGlucHV0IEFuaW1hdGlvblN0YXRlSW5wdXRQ
YXVzZU92ZXJyaWRlXG4iKTsKICAgICAgICAgaWYgKG1fYW5pbVN0YXRlID09IEFuaW1hdGlvblN0
YXRlU3RhcnRXYWl0UmVzcG9uc2UpIHsKICAgICAgICAgICAgIC8vIElmIHdlIGFyZSBpbiBBbmlt
YXRpb25TdGF0ZVN0YXJ0V2FpdFJlc3BvbnNlLCB0aGUgYW5pbWF0aW9uIHdpbGwgZ2V0IGNhbmNl
bGVkIGJlZm9yZSAKICAgICAgICAgICAgIC8vIHdlIGdldCBhIHJlc3BvbnNlLCBzbyBtb3ZlIHRv
IHRoZSBuZXh0IHN0YXRlLgpAQCAtOTgwLDYgKzk5MSw3IEBAIHZvaWQgQW5pbWF0aW9uQmFzZTo6
dXBkYXRlU3RhdGVNYWNoaW5lKEFuaW1TdGF0ZUlucHV0IGlucHV0LCBkb3VibGUgcGFyYW0pCiAg
ICAgfQogCiAgICAgaWYgKGlucHV0ID09IEFuaW1hdGlvblN0YXRlSW5wdXRSZXN1bWVPdmVycmlk
ZSkgeworLy8gICAgICAgIHByaW50ZigiU1RBVEUgPC0tIEFuaW1hdGlvblN0YXRlSW5wdXRSZXN1
bWVPdmVycmlkZVxuIik7CiAgICAgICAgIGlmIChtX2FuaW1TdGF0ZSA9PSBBbmltYXRpb25TdGF0
ZUxvb3BpbmcgfHwgbV9hbmltU3RhdGUgPT0gQW5pbWF0aW9uU3RhdGVFbmRpbmcpIHsKICAgICAg
ICAgICAgIC8vIFN0YXJ0IHRoZSBhbmltYXRpb24KICAgICAgICAgICAgIHN0YXJ0QW5pbWF0aW9u
KGJlZ2luQW5pbWF0aW9uVXBkYXRlVGltZSgpIC0gbV9zdGFydFRpbWUpOwpAQCAtOTkyLDYgKzEw
MDQsNyBAQCB2b2lkIEFuaW1hdGlvbkJhc2U6OnVwZGF0ZVN0YXRlTWFjaGluZShBbmltU3RhdGVJ
bnB1dCBpbnB1dCwgZG91YmxlIHBhcmFtKQogICAgICAgICBjYXNlIEFuaW1hdGlvblN0YXRlTmV3
OgogICAgICAgICAgICAgQVNTRVJUKGlucHV0ID09IEFuaW1hdGlvblN0YXRlSW5wdXRTdGFydEFu
aW1hdGlvbiB8fCBpbnB1dCA9PSBBbmltYXRpb25TdGF0ZUlucHV0UGxheVN0YXRlUnVubmluZyB8
fCBpbnB1dCA9PSBBbmltYXRpb25TdGF0ZUlucHV0UGxheVN0YXRlUGF1c2VkKTsKICAgICAgICAg
ICAgIGlmIChpbnB1dCA9PSBBbmltYXRpb25TdGF0ZUlucHV0U3RhcnRBbmltYXRpb24gfHwgaW5w
dXQgPT0gQW5pbWF0aW9uU3RhdGVJbnB1dFBsYXlTdGF0ZVJ1bm5pbmcpIHsKKy8vICAgICAgICAg
ICAgICAgIHByaW50ZigiU1RBVEUgQW5pbWF0aW9uU3RhdGVOZXcgPC0tIEFuaW1hdGlvblN0YXRl
SW5wdXRTdGFydEFuaW1hdGlvblxuIik7CiAgICAgICAgICAgICAgICAgbV9yZXF1ZXN0ZWRTdGFy
dFRpbWUgPSBiZWdpbkFuaW1hdGlvblVwZGF0ZVRpbWUoKTsKICAgICAgICAgICAgICAgICBtX2Fu
aW1TdGF0ZSA9IEFuaW1hdGlvblN0YXRlU3RhcnRXYWl0VGltZXI7CiAgICAgICAgICAgICB9CkBA
IC0xMDAwLDYgKzEwMTMsNyBAQCB2b2lkIEFuaW1hdGlvbkJhc2U6OnVwZGF0ZVN0YXRlTWFjaGlu
ZShBbmltU3RhdGVJbnB1dCBpbnB1dCwgZG91YmxlIHBhcmFtKQogICAgICAgICAgICAgQVNTRVJU
KGlucHV0ID09IEFuaW1hdGlvblN0YXRlSW5wdXRTdGFydFRpbWVyRmlyZWQgfHwgaW5wdXQgPT0g
QW5pbWF0aW9uU3RhdGVJbnB1dFBsYXlTdGF0ZVBhdXNlZCk7CiAKICAgICAgICAgICAgIGlmIChp
bnB1dCA9PSBBbmltYXRpb25TdGF0ZUlucHV0U3RhcnRUaW1lckZpcmVkKSB7CisvLyAgICAgICAg
ICAgICAgICBwcmludGYoIlNUQVRFIEFuaW1hdGlvblN0YXRlU3RhcnRXYWl0VGltZXIgPC0tIEFu
aW1hdGlvblN0YXRlSW5wdXRTdGFydFRpbWVyRmlyZWRcbiIpOwogICAgICAgICAgICAgICAgIEFT
U0VSVChwYXJhbSA+PSAwKTsKICAgICAgICAgICAgICAgICAvLyBTdGFydCB0aW1lciBoYXMgZmly
ZWQsIHRlbGwgdGhlIGFuaW1hdGlvbiB0byBzdGFydCBhbmQgd2FpdCBmb3IgaXQgdG8gcmVzcG9u
ZCB3aXRoIHN0YXJ0IHRpbWUKICAgICAgICAgICAgICAgICBtX2FuaW1TdGF0ZSA9IEFuaW1hdGlv
blN0YXRlU3RhcnRXYWl0U3R5bGVBdmFpbGFibGU7CkBAIC0xMDA5LDE2ICsxMDIzLDE5IEBAIHZv
aWQgQW5pbWF0aW9uQmFzZTo6dXBkYXRlU3RhdGVNYWNoaW5lKEFuaW1TdGF0ZUlucHV0IGlucHV0
LCBkb3VibGUgcGFyYW0pCiAgICAgICAgICAgICAgICAgaWYgKG1fb2JqZWN0KQogICAgICAgICAg
ICAgICAgICAgICBtX2NvbXBBbmltLT5hbmltYXRpb25Db250cm9sbGVyKCktPmFkZE5vZGVDaGFu
Z2VUb0Rpc3BhdGNoKG1fb2JqZWN0LT5ub2RlKCkpOwogICAgICAgICAgICAgfSBlbHNlIHsKKy8v
ICAgICAgICAgICAgICAgIHByaW50ZigiU1RBVEUgQW5pbWF0aW9uU3RhdGVTdGFydFdhaXRUaW1l
ciA8LS0gQW5pbWF0aW9uU3RhdGVJbnB1dFBsYXlTdGF0ZVBhdXNlZFxuIik7CiAgICAgICAgICAg
ICAgICAgQVNTRVJUKCFwYXVzZWQoKSk7CiAgICAgICAgICAgICAgICAgLy8gV2UncmUgd2FpdGlu
ZyBmb3IgdGhlIHN0YXJ0IHRpbWVyIHRvIGZpcmUgYW5kIHdlIGdvdCBhIHBhdXNlLiBDYW5jZWwg
dGhlIHRpbWVyLCBwYXVzZSBhbmQgd2FpdAogICAgICAgICAgICAgICAgIG1fcGF1c2VUaW1lID0g
YmVnaW5BbmltYXRpb25VcGRhdGVUaW1lKCk7CiAgICAgICAgICAgICAgICAgbV9hbmltU3RhdGUg
PSBBbmltYXRpb25TdGF0ZVBhdXNlZFdhaXRUaW1lcjsKKyAgICAgICAgICAgICAgICBtX2lzUGF1
c2VkID0gdHJ1ZTsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBj
YXNlIEFuaW1hdGlvblN0YXRlU3RhcnRXYWl0U3R5bGVBdmFpbGFibGU6CiAgICAgICAgICAgICBB
U1NFUlQoaW5wdXQgPT0gQW5pbWF0aW9uU3RhdGVJbnB1dFN0eWxlQXZhaWxhYmxlIHx8IGlucHV0
ID09IEFuaW1hdGlvblN0YXRlSW5wdXRQbGF5U3RhdGVQYXVzZWQpOwogCiAgICAgICAgICAgICBp
ZiAoaW5wdXQgPT0gQW5pbWF0aW9uU3RhdGVJbnB1dFN0eWxlQXZhaWxhYmxlKSB7CisvLyAgICAg
ICAgICAgICAgICBwcmludGYoIlNUQVRFIEFuaW1hdGlvblN0YXRlU3RhcnRXYWl0U3R5bGVBdmFp
bGFibGUgPC0tIEFuaW1hdGlvblN0YXRlSW5wdXRTdHlsZUF2YWlsYWJsZVxuIik7CiAgICAgICAg
ICAgICAgICAgLy8gU3RhcnQgdGltZXIgaGFzIGZpcmVkLCB0ZWxsIHRoZSBhbmltYXRpb24gdG8g
c3RhcnQgYW5kIHdhaXQgZm9yIGl0IHRvIHJlc3BvbmQgd2l0aCBzdGFydCB0aW1lCiAgICAgICAg
ICAgICAgICAgbV9hbmltU3RhdGUgPSBBbmltYXRpb25TdGF0ZVN0YXJ0V2FpdFJlc3BvbnNlOwog
CkBAIC0xMDI2LDEyICsxMDQzLDE0IEBAIHZvaWQgQW5pbWF0aW9uQmFzZTo6dXBkYXRlU3RhdGVN
YWNoaW5lKEFuaW1TdGF0ZUlucHV0IGlucHV0LCBkb3VibGUgcGFyYW0pCiAKICAgICAgICAgICAg
ICAgICAvLyBTdGFydCB0aGUgYW5pbWF0aW9uCiAgICAgICAgICAgICAgICAgaWYgKG92ZXJyaWRk
ZW4oKSkgeworLy8gICAgICAgICAgICAgICAgICAgIHByaW50ZigiT3ZlcnJpZGRlblxuIik7CiAg
ICAgICAgICAgICAgICAgICAgIC8vIFdlIHdvbid0IHRyeSB0byBzdGFydCBhY2NlbGVyYXRlZCBh
bmltYXRpb25zIGlmIHdlIGFyZSBvdmVycmlkZGVuIGFuZAogICAgICAgICAgICAgICAgICAgICAv
LyBqdXN0IG1vdmUgb24gdG8gdGhlIG5leHQgc3RhdGUuCiAgICAgICAgICAgICAgICAgICAgIG1f
YW5pbVN0YXRlID0gQW5pbWF0aW9uU3RhdGVTdGFydFdhaXRSZXNwb25zZTsKICAgICAgICAgICAg
ICAgICAgICAgbV9pc0FjY2VsZXJhdGVkID0gZmFsc2U7CiAgICAgICAgICAgICAgICAgICAgIHVw
ZGF0ZVN0YXRlTWFjaGluZShBbmltYXRpb25TdGF0ZUlucHV0U3RhcnRUaW1lU2V0LCBiZWdpbkFu
aW1hdGlvblVwZGF0ZVRpbWUoKSk7CiAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKy8vICAgICAg
ICAgICAgICAgICAgICBwcmludGYoIk5vdCBPdmVycmlkZGVuXG4iKTsKICAgICAgICAgICAgICAg
ICAgICAgZG91YmxlIHRpbWVPZmZzZXQgPSAwOwogICAgICAgICAgICAgICAgICAgICAvLyBJZiB0
aGUgdmFsdWUgZm9yICdhbmltYXRpb24tZGVsYXknIGlzIG5lZ2F0aXZlIHRoZW4gdGhlIGFuaW1h
dGlvbiBhcHBlYXJzIHRvIGhhdmUgc3RhcnRlZCBpbiB0aGUgcGFzdC4KICAgICAgICAgICAgICAg
ICAgICAgaWYgKG1fYW5pbWF0aW9uLT5kZWxheSgpIDwgMCkKQEAgLTEwNDIsMTggKzEwNjEsMjMg
QEAgdm9pZCBBbmltYXRpb25CYXNlOjp1cGRhdGVTdGF0ZU1hY2hpbmUoQW5pbVN0YXRlSW5wdXQg
aW5wdXQsIGRvdWJsZSBwYXJhbSkKICAgICAgICAgICAgICAgICAgICAgbV9pc0FjY2VsZXJhdGVk
ID0gc3RhcnRlZDsKICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICB9IGVsc2UgeworLy8g
ICAgICAgICAgICAgICAgcHJpbnRmKCJTVEFURSBBbmltYXRpb25TdGF0ZVN0YXJ0V2FpdFN0eWxl
QXZhaWxhYmxlIDwtLSBBbmltYXRpb25TdGF0ZUlucHV0UGxheVN0YXRlUGF1c2VkXG4iKTsKICAg
ICAgICAgICAgICAgICAvLyBXZSdyZSB3YWl0aW5nIGZvciB0aGUgc3R5bGUgdG8gYmUgYXZhaWxh
YmxlIGFuZCB3ZSBnb3QgYSBwYXVzZS4gUGF1c2UgYW5kIHdhaXQKICAgICAgICAgICAgICAgICBt
X3BhdXNlVGltZSA9IGJlZ2luQW5pbWF0aW9uVXBkYXRlVGltZSgpOwogICAgICAgICAgICAgICAg
IG1fYW5pbVN0YXRlID0gQW5pbWF0aW9uU3RhdGVQYXVzZWRXYWl0U3R5bGVBdmFpbGFibGU7Cisg
ICAgICAgICAgICAgICAgbV9pc1BhdXNlZCA9IHRydWU7CiAgICAgICAgICAgICB9CiAgICAgICAg
ICAgICBicmVhazsKICAgICAgICAgY2FzZSBBbmltYXRpb25TdGF0ZVN0YXJ0V2FpdFJlc3BvbnNl
OgogICAgICAgICAgICAgQVNTRVJUKGlucHV0ID09IEFuaW1hdGlvblN0YXRlSW5wdXRTdGFydFRp
bWVTZXQgfHwgaW5wdXQgPT0gQW5pbWF0aW9uU3RhdGVJbnB1dFBsYXlTdGF0ZVBhdXNlZCk7CiAK
ICAgICAgICAgICAgIGlmIChpbnB1dCA9PSBBbmltYXRpb25TdGF0ZUlucHV0U3RhcnRUaW1lU2V0
KSB7CisvLyAgICAgICAgICAgICAgICBwcmludGYoIlNUQVRFIEFuaW1hdGlvblN0YXRlU3RhcnRX
YWl0UmVzcG9uc2UgPC0tIEFuaW1hdGlvblN0YXRlSW5wdXRTdGFydFRpbWVTZXRcbiIpOworCiAg
ICAgICAgICAgICAgICAgQVNTRVJUKHBhcmFtID49IDApOwogICAgICAgICAgICAgICAgIC8vIFdl
IGhhdmUgYSBzdGFydCB0aW1lLCBzZXQgaXQsIHVubGVzcyB0aGUgc3RhcnRUaW1lIGlzIGFscmVh
ZHkgc2V0CiAgICAgICAgICAgICAgICAgaWYgKG1fc3RhcnRUaW1lIDw9IDApIHsKKy8vICAgICAg
ICAgICAgICAgICAgICBwcmludGYoInNldHRpbmcgbmV3IHN0YXJ0IHRpbWUgJWxmXG4iLCBwYXJh
bSk7CiAgICAgICAgICAgICAgICAgICAgIG1fc3RhcnRUaW1lID0gcGFyYW07CiAgICAgICAgICAg
ICAgICAgICAgIC8vIElmIHRoZSB2YWx1ZSBmb3IgJ2FuaW1hdGlvbi1kZWxheScgaXMgbmVnYXRp
dmUgdGhlbiB0aGUgYW5pbWF0aW9uIGFwcGVhcnMgdG8gaGF2ZSBzdGFydGVkIGluIHRoZSBwYXN0
LgogICAgICAgICAgICAgICAgICAgICBpZiAobV9hbmltYXRpb24tPmRlbGF5KCkgPCAwKQpAQCAt
MTA3NSwxMiArMTA5OSwxNSBAQCB2b2lkIEFuaW1hdGlvbkJhc2U6OnVwZGF0ZVN0YXRlTWFjaGlu
ZShBbmltU3RhdGVJbnB1dCBpbnB1dCwgZG91YmxlIHBhcmFtKQogICAgICAgICAgICAgICAgIG1f
cGF1c2VUaW1lID0gLTE7CiAgICAgICAgICAgICAgICAgcGF1c2VBbmltYXRpb24oYmVnaW5Bbmlt
YXRpb25VcGRhdGVUaW1lKCkgLSBtX3N0YXJ0VGltZSk7CiAgICAgICAgICAgICAgICAgbV9hbmlt
U3RhdGUgPSBBbmltYXRpb25TdGF0ZVBhdXNlZFdhaXRSZXNwb25zZTsKKyAgICAgICAgICAgICAg
ICBtX2lzUGF1c2VkID0gdHJ1ZTsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIGJyZWFrOwog
ICAgICAgICBjYXNlIEFuaW1hdGlvblN0YXRlTG9vcGluZzoKICAgICAgICAgICAgIEFTU0VSVChp
bnB1dCA9PSBBbmltYXRpb25TdGF0ZUlucHV0TG9vcFRpbWVyRmlyZWQgfHwgaW5wdXQgPT0gQW5p
bWF0aW9uU3RhdGVJbnB1dFBsYXlTdGF0ZVBhdXNlZCk7CiAKICAgICAgICAgICAgIGlmIChpbnB1
dCA9PSBBbmltYXRpb25TdGF0ZUlucHV0TG9vcFRpbWVyRmlyZWQpIHsKKy8vICAgICAgICAgICAg
ICAgIHByaW50ZigiU1RBVEUgQW5pbWF0aW9uU3RhdGVMb29waW5nIDwtLSBBbmltYXRpb25TdGF0
ZUlucHV0TG9vcFRpbWVyRmlyZWRcbiIpOworCiAgICAgICAgICAgICAgICAgQVNTRVJUKHBhcmFt
ID49IDApOwogICAgICAgICAgICAgICAgIC8vIExvb3AgdGltZXIgZmlyZWQsIGxvb3AgYWdhaW4g
b3IgZW5kLgogICAgICAgICAgICAgICAgIG9uQW5pbWF0aW9uSXRlcmF0aW9uKHBhcmFtKTsKQEAg
LTEwODgsMTYgKzExMTUsMTkgQEAgdm9pZCBBbmltYXRpb25CYXNlOjp1cGRhdGVTdGF0ZU1hY2hp
bmUoQW5pbVN0YXRlSW5wdXQgaW5wdXQsIGRvdWJsZSBwYXJhbSkKICAgICAgICAgICAgICAgICAv
LyBEZWNpZGUgd2hldGhlciB0byBnbyBpbnRvIGxvb3Bpbmcgb3IgZW5kaW5nIHN0YXRlCiAgICAg
ICAgICAgICAgICAgZ29JbnRvRW5kaW5nT3JMb29waW5nU3RhdGUoKTsKICAgICAgICAgICAgIH0g
ZWxzZSB7CisvLyAgICAgICAgICAgICAgICBwcmludGYoIlNUQVRFIEFuaW1hdGlvblN0YXRlTG9v
cGluZyA8LS0gQW5pbWF0aW9uU3RhdGVJbnB1dFBsYXlTdGF0ZVBhdXNlZFxuIik7CiAgICAgICAg
ICAgICAgICAgLy8gV2UgYXJlIHBhdXNpbmcgd2hpbGUgcnVubmluZy4gQ2FuY2VsIHRoZSBhbmlt
YXRpb24gYW5kIHdhaXQKICAgICAgICAgICAgICAgICBtX3BhdXNlVGltZSA9IGJlZ2luQW5pbWF0
aW9uVXBkYXRlVGltZSgpOwogICAgICAgICAgICAgICAgIHBhdXNlQW5pbWF0aW9uKGJlZ2luQW5p
bWF0aW9uVXBkYXRlVGltZSgpIC0gbV9zdGFydFRpbWUpOwogICAgICAgICAgICAgICAgIG1fYW5p
bVN0YXRlID0gQW5pbWF0aW9uU3RhdGVQYXVzZWRSdW47CisgICAgICAgICAgICAgICAgbV9pc1Bh
dXNlZCA9IHRydWU7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAg
Y2FzZSBBbmltYXRpb25TdGF0ZUVuZGluZzoKICAgICAgICAgICAgIEFTU0VSVChpbnB1dCA9PSBB
bmltYXRpb25TdGF0ZUlucHV0RW5kVGltZXJGaXJlZCB8fCBpbnB1dCA9PSBBbmltYXRpb25TdGF0
ZUlucHV0UGxheVN0YXRlUGF1c2VkKTsKIAogICAgICAgICAgICAgaWYgKGlucHV0ID09IEFuaW1h
dGlvblN0YXRlSW5wdXRFbmRUaW1lckZpcmVkKSB7CisvLyAgICAgICAgICAgICAgICBwcmludGYo
IlNUQVRFIEFuaW1hdGlvblN0YXRlRW5kaW5nIDwtLSBBbmltYXRpb25TdGF0ZUlucHV0RW5kVGlt
ZXJGaXJlZFxuIik7CiAKICAgICAgICAgICAgICAgICBBU1NFUlQocGFyYW0gPj0gMCk7CiAgICAg
ICAgICAgICAgICAgLy8gRW5kIHRpbWVyIGZpcmVkLCBmaW5pc2ggdXAKQEAgLTExMTUsMjMgKzEx
NDUsMzAgQEAgdm9pZCBBbmltYXRpb25CYXNlOjp1cGRhdGVTdGF0ZU1hY2hpbmUoQW5pbVN0YXRl
SW5wdXQgaW5wdXQsIGRvdWJsZSBwYXJhbSkKICAgICAgICAgICAgICAgICAgICAgbV9jb21wQW5p
bS0+YW5pbWF0aW9uQ29udHJvbGxlcigpLT5hZGROb2RlQ2hhbmdlVG9EaXNwYXRjaChtX29iamVj
dC0+bm9kZSgpKTsKICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICB9IGVsc2UgeworLy8g
ICAgICAgICAgICAgICAgcHJpbnRmKCJTVEFURSBBbmltYXRpb25TdGF0ZUVuZGluZyA8LS0gQW5p
bWF0aW9uU3RhdGVJbnB1dFBsYXlTdGF0ZVBhdXNlZFxuIik7CiAgICAgICAgICAgICAgICAgLy8g
V2UgYXJlIHBhdXNpbmcgd2hpbGUgcnVubmluZy4gQ2FuY2VsIHRoZSBhbmltYXRpb24gYW5kIHdh
aXQKICAgICAgICAgICAgICAgICBtX3BhdXNlVGltZSA9IGJlZ2luQW5pbWF0aW9uVXBkYXRlVGlt
ZSgpOwogICAgICAgICAgICAgICAgIHBhdXNlQW5pbWF0aW9uKGJlZ2luQW5pbWF0aW9uVXBkYXRl
VGltZSgpIC0gbV9zdGFydFRpbWUpOwogICAgICAgICAgICAgICAgIG1fYW5pbVN0YXRlID0gQW5p
bWF0aW9uU3RhdGVQYXVzZWRSdW47CisgICAgICAgICAgICAgICAgbV9pc1BhdXNlZCA9IHRydWU7
CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICAvLyB8dGhpc3wgbWF5IGJlIGRlbGV0ZWQgaGVy
ZQogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgQW5pbWF0aW9uU3RhdGVQYXVzZWRX
YWl0VGltZXI6CisvLyAgICAgICAgICAgIHByaW50ZigiU1RBVEUgQW5pbWF0aW9uU3RhdGVQYXVz
ZWRXYWl0VGltZXIgPC0tIEFuaW1hdGlvblN0YXRlSW5wdXRQbGF5U3RhdGVSdW5uaW5nXG4iKTsK
KwogICAgICAgICAgICAgQVNTRVJUKGlucHV0ID09IEFuaW1hdGlvblN0YXRlSW5wdXRQbGF5U3Rh
dGVSdW5uaW5nKTsKICAgICAgICAgICAgIEFTU0VSVChwYXVzZWQoKSk7CiAgICAgICAgICAgICAv
LyBVcGRhdGUgdGhlIHRpbWVzCi0gICAgICAgICAgICBtX3N0YXJ0VGltZSArPSBiZWdpbkFuaW1h
dGlvblVwZGF0ZVRpbWUoKSAtIG1fcGF1c2VUaW1lOworICAgICAgICAgICAgbV9yZXF1ZXN0ZWRT
dGFydFRpbWUgPSBiZWdpbkFuaW1hdGlvblVwZGF0ZVRpbWUoKSAtIChtX3BhdXNlVGltZSAtIG1f
cmVxdWVzdGVkU3RhcnRUaW1lKTsKICAgICAgICAgICAgIG1fcGF1c2VUaW1lID0gLTE7Ci0KLSAg
ICAgICAgICAgIC8vIHdlIHdlcmUgd2FpdGluZyBmb3IgdGhlIHN0YXJ0IHRpbWVyIHRvIGZpcmUs
IGdvIGJhY2sgYW5kIHdhaXQgYWdhaW4KLSAgICAgICAgICAgIG1fYW5pbVN0YXRlID0gQW5pbWF0
aW9uU3RhdGVOZXc7Ci0gICAgICAgICAgICB1cGRhdGVTdGF0ZU1hY2hpbmUoQW5pbWF0aW9uU3Rh
dGVJbnB1dFN0YXJ0QW5pbWF0aW9uLCAwKTsKKyAgICAgICAgICAgIG1fc3RhcnRUaW1lID0gMDsK
KyAgICAgICAgICAgIG1faXNQYXVzZWQgPSBmYWxzZTsKKyAgICAgICAgICAgIC8vIEp1bXAgYmFj
ayBpbnRvIHRoZSBkZWxheSB3YWl0aW5nIHN0YXRlLgorICAgICAgICAgICAgbV9hbmltU3RhdGUg
PSBBbmltYXRpb25TdGF0ZVN0YXJ0V2FpdFRpbWVyOworICAgICAgICAgICAgLy8gUmVzZXQgdGhl
IHRpbWVyLgorICAgICAgICAgICAgbV9jb21wQW5pbS0+YW5pbWF0aW9uQ29udHJvbGxlcigpLT51
cGRhdGVBbmltYXRpb25UaW1lcigpOworICAgICAgICAgICAgCiAgICAgICAgICAgICBicmVhazsK
ICAgICAgICAgY2FzZSBBbmltYXRpb25TdGF0ZVBhdXNlZFdhaXRSZXNwb25zZToKICAgICAgICAg
Y2FzZSBBbmltYXRpb25TdGF0ZVBhdXNlZFdhaXRTdHlsZUF2YWlsYWJsZToKQEAgLTExNDQsMTIg
KzExODEsMTUgQEAgdm9pZCBBbmltYXRpb25CYXNlOjp1cGRhdGVTdGF0ZU1hY2hpbmUoQW5pbVN0
YXRlSW5wdXQgaW5wdXQsIGRvdWJsZSBwYXJhbSkKICAgICAgICAgICAgIEFTU0VSVChwYXVzZWQo
KSk7CiAgICAgICAgICAgICAKICAgICAgICAgICAgIGlmIChpbnB1dCA9PSBBbmltYXRpb25TdGF0
ZUlucHV0UGxheVN0YXRlUnVubmluZykgeworLy8gICAgICAgICAgICAgICAgcHJpbnRmKCJTVEFU
RSBBbmltYXRpb25TdGF0ZVBhdXNlZCogPC0tIEFuaW1hdGlvblN0YXRlSW5wdXRQbGF5U3RhdGVS
dW5uaW5nXG4iKTsKKwogICAgICAgICAgICAgICAgIC8vIFVwZGF0ZSB0aGUgdGltZXMKICAgICAg
ICAgICAgICAgICBpZiAobV9hbmltU3RhdGUgPT0gQW5pbWF0aW9uU3RhdGVQYXVzZWRSdW4pCiAg
ICAgICAgICAgICAgICAgICAgIG1fc3RhcnRUaW1lICs9IGJlZ2luQW5pbWF0aW9uVXBkYXRlVGlt
ZSgpIC0gbV9wYXVzZVRpbWU7CiAgICAgICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAg
ICAgICBtX3N0YXJ0VGltZSA9IDA7CiAgICAgICAgICAgICAgICAgbV9wYXVzZVRpbWUgPSAtMTsK
KyAgICAgICAgICAgICAgICBtX2lzUGF1c2VkID0gZmFsc2U7CiAKICAgICAgICAgICAgICAgICBp
ZiAobV9hbmltU3RhdGUgPT0gQW5pbWF0aW9uU3RhdGVQYXVzZWRXYWl0U3R5bGVBdmFpbGFibGUp
CiAgICAgICAgICAgICAgICAgICAgIG1fYW5pbVN0YXRlID0gQW5pbWF0aW9uU3RhdGVTdGFydFdh
aXRTdHlsZUF2YWlsYWJsZTsKQEAgLTExNTgsMjMgKzExOTgsMzAgQEAgdm9pZCBBbmltYXRpb25C
YXNlOjp1cGRhdGVTdGF0ZU1hY2hpbmUoQW5pbVN0YXRlSW5wdXQgaW5wdXQsIGRvdWJsZSBwYXJh
bSkKICAgICAgICAgICAgICAgICAgICAgLy8gRWl0aGVyIHdheSB3ZSBuZWVkIHRvIHJlc3RhcnQg
dGhlIGFuaW1hdGlvbiAocG9zc2libHkgd2l0aCBhbiBvZmZzZXQgaWYgd2UKICAgICAgICAgICAg
ICAgICAgICAgLy8gaGFkIGFscmVhZHkgYmVlbiBydW5uaW5nKSBhbmQgd2FpdCBmb3IgaXQgdG8g
c3RhcnQuCiAgICAgICAgICAgICAgICAgICAgIG1fYW5pbVN0YXRlID0gQW5pbWF0aW9uU3RhdGVT
dGFydFdhaXRSZXNwb25zZTsKLQotICAgICAgICAgICAgICAgICAgICAvLyBTdGFydCB0aGUgYW5p
bWF0aW9uCi0gICAgICAgICAgICAgICAgICAgIGlmIChvdmVycmlkZGVuKCkpIHsKLSAgICAgICAg
ICAgICAgICAgICAgICAgIC8vIFdlIHdvbid0IHRyeSB0byBzdGFydCBhY2NlbGVyYXRlZCBhbmlt
YXRpb25zIGlmIHdlIGFyZSBvdmVycmlkZGVuIGFuZAotICAgICAgICAgICAgICAgICAgICAgICAg
Ly8ganVzdCBtb3ZlIG9uIHRvIHRoZSBuZXh0IHN0YXRlLgotICAgICAgICAgICAgICAgICAgICAg
ICAgdXBkYXRlU3RhdGVNYWNoaW5lKEFuaW1hdGlvblN0YXRlSW5wdXRTdGFydFRpbWVTZXQsIGJl
Z2luQW5pbWF0aW9uVXBkYXRlVGltZSgpKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIG1faXNB
Y2NlbGVyYXRlZCA9IHRydWU7Ci0gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAg
ICAgICAgICAgICAgICAgICBib29sIHN0YXJ0ZWQgPSBzdGFydEFuaW1hdGlvbihiZWdpbkFuaW1h
dGlvblVwZGF0ZVRpbWUoKSAtIG1fc3RhcnRUaW1lKTsKLSAgICAgICAgICAgICAgICAgICAgICAg
IG1fY29tcEFuaW0tPmFuaW1hdGlvbkNvbnRyb2xsZXIoKS0+YWRkVG9TdGFydFRpbWVSZXNwb25z
ZVdhaXRMaXN0KHRoaXMsIHN0YXJ0ZWQpOwotICAgICAgICAgICAgICAgICAgICAgICAgbV9pc0Fj
Y2VsZXJhdGVkID0gc3RhcnRlZDsKLSAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAg
ICAgICAgICBnb0ludG9FbmRpbmdPckxvb3BpbmdTdGF0ZSgpOworICAgICAgICAgICAgICAgICAg
ICAvLyBEaXNwYXRjaCB1cGRhdGVTdHlsZUlmTmVlZGVkIHNvIHdlIGNhbiBzdGFydCB0aGUgYW5p
bWF0aW9uCisgICAgICAgICAgICAgICAgICAgIGlmIChtX29iamVjdCkKKyAgICAgICAgICAgICAg
ICAgICAgICAgIG1fY29tcEFuaW0tPmFuaW1hdGlvbkNvbnRyb2xsZXIoKS0+YWRkTm9kZUNoYW5n
ZVRvRGlzcGF0Y2gobV9vYmplY3QtPm5vZGUoKSk7CisgICAgICAgICAgICAgICAgICAgIAorCisg
ICAgICAgICAgICAgICAgICAgIC8vIEZJWE1FIC0gdGhpcyB3aWxsIGJyZWFrIHRyYW5zaXRpb25z
CisvLyAgICAgICAgICAgICAgICAgICAgLy8gU3RhcnQgdGhlIGFuaW1hdGlvbgorLy8gICAgICAg
ICAgICAgICAgICAgIGlmIChvdmVycmlkZGVuKCkpIHsKKy8vICAgICAgICAgICAgICAgICAgICAg
ICAgLy8gV2Ugd29uJ3QgdHJ5IHRvIHN0YXJ0IGFjY2VsZXJhdGVkIGFuaW1hdGlvbnMgaWYgd2Ug
YXJlIG92ZXJyaWRkZW4gYW5kCisvLyAgICAgICAgICAgICAgICAgICAgICAgIC8vIGp1c3QgbW92
ZSBvbiB0byB0aGUgbmV4dCBzdGF0ZS4KKy8vICAgICAgICAgICAgICAgICAgICAgICAgdXBkYXRl
U3RhdGVNYWNoaW5lKEFuaW1hdGlvblN0YXRlSW5wdXRTdGFydFRpbWVTZXQsIGJlZ2luQW5pbWF0
aW9uVXBkYXRlVGltZSgpKTsKKy8vICAgICAgICAgICAgICAgICAgICAgICAgbV9pc0FjY2VsZXJh
dGVkID0gdHJ1ZTsKKy8vICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworLy8gICAgICAgICAg
ICAgICAgICAgICAgICBib29sIHN0YXJ0ZWQgPSBzdGFydEFuaW1hdGlvbihiZWdpbkFuaW1hdGlv
blVwZGF0ZVRpbWUoKSAtIG1fc3RhcnRUaW1lKTsKKy8vICAgICAgICAgICAgICAgICAgICAgICAg
bV9jb21wQW5pbS0+YW5pbWF0aW9uQ29udHJvbGxlcigpLT5hZGRUb1N0YXJ0VGltZVJlc3BvbnNl
V2FpdExpc3QodGhpcywgc3RhcnRlZCk7CisvLyAgICAgICAgICAgICAgICAgICAgICAgIG1faXNB
Y2NlbGVyYXRlZCA9IHN0YXJ0ZWQ7CisvLyAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAg
ICAgICAgIH0KICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIH0KICAgICAgICAg
ICAgIAogICAgICAgICAgICAgaWYgKGlucHV0ID09IEFuaW1hdGlvblN0YXRlSW5wdXRTdGFydFRp
bWVTZXQpIHsKKy8vICAgICAgICAgICAgICAgIHByaW50ZigiU1RBVEUgQW5pbWF0aW9uU3RhdGVQ
YXVzZWRXYWl0UmVzcG9uc2UgPC0tIEFuaW1hdGlvblN0YXRlSW5wdXRTdGFydFRpbWVTZXRcbiIp
OwogICAgICAgICAgICAgICAgIEFTU0VSVChtX2FuaW1TdGF0ZSA9PSBBbmltYXRpb25TdGF0ZVBh
dXNlZFdhaXRSZXNwb25zZSk7CiAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgLy8g
V2UgYXJlIHBhdXNlZCBidXQgd2UgZ290IHRoZSBjYWxsYmFjayB0aGF0IG5vdGlmaWVzIHVzIHRo
YXQgYW4gYWNjZWxlcmF0ZWQgYW5pbWF0aW9uIHN0YXJ0ZWQuCkBAIC0xMTkyLDExICsxMjM5LDMw
IEBAIHZvaWQgQW5pbWF0aW9uQmFzZTo6dXBkYXRlU3RhdGVNYWNoaW5lKEFuaW1TdGF0ZUlucHV0
IGlucHV0LCBkb3VibGUgcGFyYW0pCiAgICAgICAgICAgICBtX2FuaW1TdGF0ZSA9IEFuaW1hdGlv
blN0YXRlUGF1c2VkV2FpdFJlc3BvbnNlOwogICAgICAgICAgICAgb3ZlcnJpZGVBbmltYXRpb25z
KCk7CiAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBBbmltYXRpb25TdGF0ZVBhdXNl
ZERvbmU6CisgICAgICAgICAgICBpZiAoaW5wdXQgPT0gQW5pbWF0aW9uU3RhdGVJbnB1dFBsYXlT
dGF0ZVJ1bm5pbmcpIHsKKyAgICAgICAgICAgICAgICBtX3N0YXJ0VGltZSA9IGN1cnJlbnRUaW1l
KCkgLSAobV9wYXVzZVRpbWUgLSBtX3N0YXJ0VGltZSk7CisgICAgICAgICAgICAgICAgbV9wYXVz
ZVRpbWUgPSAtMTsKKyAgICAgICAgICAgICAgICBtX2lzUGF1c2VkID0gZmFsc2U7CisgICAgICAg
ICAgICAgICAgaWYgKG1fb2JqZWN0KSB7CisgICAgICAgICAgICAgICAgICAgIGlmIChtX2FuaW1h
dGlvbi0+ZmlsbHNGb3J3YXJkcygpKQorICAgICAgICAgICAgICAgICAgICAgICAgbV9hbmltU3Rh
dGUgPSBBbmltYXRpb25TdGF0ZUZpbGxpbmdGb3J3YXJkczsKKyAgICAgICAgICAgICAgICAgICAg
ZWxzZQorICAgICAgICAgICAgICAgICAgICAgICAgbV9hbmltU3RhdGUgPSBBbmltYXRpb25TdGF0
ZURvbmU7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgYnJl
YWs7CiAgICAgICAgIGNhc2UgQW5pbWF0aW9uU3RhdGVGaWxsaW5nRm9yd2FyZHM6CiAgICAgICAg
IGNhc2UgQW5pbWF0aW9uU3RhdGVEb25lOgotICAgICAgICAgICAgLy8gV2UncmUgZG9uZS4gU3Rh
eSBpbiB0aGlzIHN0YXRlIHVudGlsIHdlIGFyZSBkZWxldGVkCisgICAgICAgICAgICBpZiAoaW5w
dXQgPT0gQW5pbWF0aW9uU3RhdGVJbnB1dFBsYXlTdGF0ZVBhdXNlZCkgeworICAgICAgICAgICAg
ICAgIG1fYW5pbVN0YXRlID0gQW5pbWF0aW9uU3RhdGVQYXVzZWREb25lOworICAgICAgICAgICAg
ICAgIG1fcGF1c2VUaW1lID0gY3VycmVudFRpbWUoKTsKKyAgICAgICAgICAgICAgICBtX2lzUGF1
c2VkID0gdHJ1ZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIC8vIFdlJ3JlIGRvbmUuIFN0
YXkgaW4gdGhpcyBzdGF0ZS4KICAgICAgICAgICAgIGJyZWFrOwogICAgIH0KKyAgICAvL3ByaW50
ZigiU1RBVEUgLS0tLS0tXG4iKTsKIH0KICAgICAKIHZvaWQgQW5pbWF0aW9uQmFzZTo6ZmlyZUFu
aW1hdGlvbkV2ZW50c0lmTmVlZGVkKCkKQEAgLTEyNjMsNyArMTMyOSw3IEBAIHZvaWQgQW5pbWF0
aW9uQmFzZTo6dXBkYXRlUGxheVN0YXRlKEVBbmltUGxheVN0YXRlIHBsYXlTdGF0ZSkKICAgICBp
ZiAocGF1c2UgPT0gcGF1c2VkKCkgJiYgIWlzTmV3KCkpCiAgICAgICAgIHJldHVybjsKICAgICAK
LSAgICB1cGRhdGVTdGF0ZU1hY2hpbmUocGF1c2UgPyAgQW5pbWF0aW9uU3RhdGVJbnB1dFBsYXlT
dGF0ZVBhdXNlZCA6IEFuaW1hdGlvblN0YXRlSW5wdXRQbGF5U3RhdGVSdW5uaW5nLCAtMSk7Cisg
ICAgdXBkYXRlU3RhdGVNYWNoaW5lKHBhdXNlID8gQW5pbWF0aW9uU3RhdGVJbnB1dFBsYXlTdGF0
ZVBhdXNlZCA6IEFuaW1hdGlvblN0YXRlSW5wdXRQbGF5U3RhdGVSdW5uaW5nLCAtMSk7CiB9CiAK
IGRvdWJsZSBBbmltYXRpb25CYXNlOjp0aW1lVG9OZXh0U2VydmljZSgpCkBAIC0xMjg5LDcgKzEz
NTUsNyBAQCBkb3VibGUgQW5pbWF0aW9uQmFzZTo6cHJvZ3Jlc3MoZG91YmxlIHNjYWxlLCBkb3Vi
bGUgb2Zmc2V0LCBjb25zdCBUaW1pbmdGdW5jdGlvbgogICAgIGlmIChwcmVBY3RpdmUoKSkKICAg
ICAgICAgcmV0dXJuIDA7CiAKLSAgICBkb3VibGUgZWxhcHNlZFRpbWUgPSBnZXRFbGFwc2VkVGlt
ZSgpOworICAgIGRvdWJsZSBlbGFwc2VkVGltZSA9IG1heCgwLjAsIGdldEVsYXBzZWRUaW1lKCkp
OwogCiAgICAgZG91YmxlIGR1ciA9IG1fYW5pbWF0aW9uLT5kdXJhdGlvbigpOwogICAgIGlmICht
X2FuaW1hdGlvbi0+aXRlcmF0aW9uQ291bnQoKSA+IDApCkBAIC0xMzU5LDYgKzE0MjUsNyBAQCB2
b2lkIEFuaW1hdGlvbkJhc2U6OmdvSW50b0VuZGluZ09yTG9vcGluZ1N0YXRlKCkKICAgICBkb3Vi
bGUgdDsKICAgICBib29sIGlzTG9vcGluZzsKICAgICBnZXRUaW1lVG9OZXh0RXZlbnQodCwgaXNM
b29waW5nKTsKKwogICAgIG1fYW5pbVN0YXRlID0gaXNMb29waW5nID8gQW5pbWF0aW9uU3RhdGVM
b29waW5nIDogQW5pbWF0aW9uU3RhdGVFbmRpbmc7CiB9CiAgIApAQCAtMTM4OCwxNCArMTQ1NSwx
MDggQEAgZG91YmxlIEFuaW1hdGlvbkJhc2U6OmJlZ2luQW5pbWF0aW9uVXBkYXRlVGltZSgpIGNv
bnN0CiAKIGRvdWJsZSBBbmltYXRpb25CYXNlOjpnZXRFbGFwc2VkVGltZSgpIGNvbnN0CiB7Ci0g
ICAgaWYgKHBhdXNlZCgpKSAgICAKLSAgICAgICAgcmV0dXJuIG1fcGF1c2VUaW1lIC0gbV9zdGFy
dFRpbWU7Ci0gICAgaWYgKG1fc3RhcnRUaW1lIDw9IDApCi0gICAgICAgIHJldHVybiAwOwotICAg
IGlmIChwb3N0QWN0aXZlKCkpCi0gICAgICAgIHJldHVybiAxOwotCisgICAgaWYgKHBhdXNlZCgp
KSB7CisgICAgICAgIGlmIChtX3N0YXJ0VGltZSA8PSAwKQorICAgICAgICAgICAgcmV0dXJuIG1f
cGF1c2VUaW1lIC0gbV9yZXF1ZXN0ZWRTdGFydFRpbWUgLSBtX2FuaW1hdGlvbi0+ZGVsYXkoKTsK
KyAgICAgICAgZWxzZQorICAgICAgICAgICAgcmV0dXJuIG1fcGF1c2VUaW1lIC0gbV9zdGFydFRp
bWU7CisgICAgfQorICAgIGlmIChtX3N0YXJ0VGltZSA8PSAwKSB7CisgICAgICAgIHJldHVybiBj
dXJyZW50VGltZSgpIC0gbV9yZXF1ZXN0ZWRTdGFydFRpbWUgLSBtX2FuaW1hdGlvbi0+ZGVsYXko
KTsKKyAgICB9CiAgICAgcmV0dXJuIGJlZ2luQW5pbWF0aW9uVXBkYXRlVGltZSgpIC0gbV9zdGFy
dFRpbWU7CiB9Ci0gICAgCisKK3ZvaWQgQW5pbWF0aW9uQmFzZTo6c2V0RWxhcHNlZFRpbWUoZG91
YmxlIHRpbWUpCit7CisgICAgLy8gVGhlcmUgYXJlIHRocmVlIGNhc2VzOgorICAgIC8vIChhKSBz
ZXQgdGhlIHRpbWUgdG8gYmVmb3JlIHRoZSBhbmltYXRpb24gc3RhcnRzCisgICAgLy8gKGIpIHNl
dCB0aGUgdGltZSB0byBkdXJpbmcgdGhlIGFuaW1hdGlvbgorICAgIC8vIChjKSBzZXQgdGhlIHRp
bWUgdG8gYWZ0ZXIgdGhlIGFuaW1hdGlvbiBlbmRzCisgICAgLy8gVE9ETzogaXQgc2VlbXMgdGhh
dCAoYikgYW5kIChjKSBhcmUgbmVhcmx5IGlkZW50aWNhbAorCisgICAgaWYgKHRpbWUgPCAwKSB7
CisgICAgICAgIC8vIFRoZSBlbGFwc2VkVGltZSBjYW4gbmV2ZXIgYmUgbGVzcyB0aGFuIHRoZSBk
ZWxheSBhd2F5CisgICAgICAgIHRpbWUgPSBtYXgoLW1fYW5pbWF0aW9uLT5kZWxheSgpLCB0aW1l
KTsKKyAgICAgICAgbV9yZXF1ZXN0ZWRTdGFydFRpbWUgPSBjdXJyZW50VGltZSgpIC0gbV9hbmlt
YXRpb24tPmRlbGF5KCkgLSB0aW1lOworICAgICAgICBtX3N0YXJ0VGltZSA9IDA7CisgICAgICAg
IGlmIChwYXVzZWQoKSkgeworICAgICAgICAgICAgbV9hbmltU3RhdGUgPSBBbmltYXRpb25TdGF0
ZVBhdXNlZFdhaXRUaW1lcjsKKyAgICAgICAgICAgIG1fcGF1c2VUaW1lID0gY3VycmVudFRpbWUo
KTsKKyAgICAgICAgICAgIG1fYXBwbGllZFRpbWUgPSBtX3JlcXVlc3RlZFN0YXJ0VGltZTsKKyAg
ICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIG1fYW5pbVN0YXRlID0gQW5pbWF0aW9uU3RhdGVT
dGFydFdhaXRUaW1lcjsKKyAgICAgICAgICAgIG1fYXBwbGllZFRpbWUgPSBjdXJyZW50VGltZSgp
OworICAgICAgICB9CisgICAgICAgIC8vIFRlbGwgdGhlIHRpbWVyIHRvIHJlc2V0LgorICAgICAg
ICBtX2NvbXBBbmltLT5hbmltYXRpb25Db250cm9sbGVyKCktPnVwZGF0ZUFuaW1hdGlvblRpbWVy
KCk7CisgICAgICAgIC8vIFRyaWdnZXIgYSBzdHlsZSB1cGRhdGUgc28gd2UgcmVkcmF3IGluIG91
ciBkZWxheWVkIHN0YXRlLgorICAgICAgICBpZiAobV9vYmplY3QpIHsKKyAgICAgICAgICAgIG1f
Y29tcEFuaW0tPmFuaW1hdGlvbkNvbnRyb2xsZXIoKS0+YWRkTm9kZUNoYW5nZVRvRGlzcGF0Y2go
bV9vYmplY3QtPm5vZGUoKSk7CisgICAgICAgIH0KKyAgICB9IGVsc2UgaWYgKHRpbWUgPCAobV9h
bmltYXRpb24tPmR1cmF0aW9uKCkgKiBtX2FuaW1hdGlvbi0+aXRlcmF0aW9uQ291bnQoKSkpIHsK
KyAgICAgICAgLy8gQXMgbG9uZyBhcyB0aGUgaW5jb21pbmcgdGltZSBpcyBwb3NpdGl2ZSwgd2Ug
Y2FuIHNldCB0aGUgc3RhcnQvYXBwbGllZAorICAgICAgICAvLyB0aW1lIGRpcmVjdGx5LgorICAg
ICAgICB0aW1lID0gbWF4KC1tX2FuaW1hdGlvbi0+ZGVsYXkoKSwgdGltZSk7CisgICAgICAgIG1f
c3RhcnRUaW1lID0gY3VycmVudFRpbWUoKSAtIHRpbWU7CisgICAgICAgIG1fYXBwbGllZFRpbWUg
PSBtX3N0YXJ0VGltZSAtIG1fYW5pbWF0aW9uLT5kZWxheSgpOworICAgICAgICAvLyBJZiB3ZSB3
ZXJlIHdhaXRpbmcgZm9yIGRlbGF5IHRvIGV4cGlyZSwgdGhlbiB3ZSBuZWVkIHRvIGFkdmFuY2Ug
c3RhdGUuCisgICAgICAgIGlmIChtX2FuaW1TdGF0ZSA9PSBBbmltYXRpb25TdGF0ZVN0YXJ0V2Fp
dFRpbWVyKSB7CisgICAgICAgICAgICB1cGRhdGVTdGF0ZU1hY2hpbmUoQW5pbWF0aW9uU3RhdGVJ
bnB1dFN0YXJ0VGltZXJGaXJlZCwgMCk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAv
LyBUZWxsIHRoZSB0aW1lciB0byByZXNldC4KKyAgICAgICAgICAgIC8vIEZJWE1FOiBXaHkgaXMg
dGhpcyBhIHByaXZhdGUgZnVuY3Rpb24/IFdoeSBpc24ndCB0aGUgbWFnaWMgY29uc3RhbnQgZXhw
b3NlZD8KKyAgICAgICAgICAgIG1fY29tcEFuaW0tPmFuaW1hdGlvbkNvbnRyb2xsZXIoKS0+c2V0
QmVnaW5BbmltYXRpb25VcGRhdGVUaW1lKC0xKTsKKyAgICAgICAgICAgIC8vbV9jb21wQW5pbS0+
YW5pbWF0aW9uQ29udHJvbGxlcigpLT51cGRhdGVBbmltYXRpb25UaW1lcigpOworICAgICAgICAg
ICAgZ29JbnRvRW5kaW5nT3JMb29waW5nU3RhdGUoKTsKKyAgICAgICAgfQorICAgICAgICAvLyBU
cmlnZ2VyIGEgc3R5bGUgdXBkYXRlLiBBIHJ1bm5pbmcgYW5pbWF0aW9uCisgICAgICAgIC8vIHdp
bGwgYmUgdHJpZ2dlcmVkIGluIHRoZSBub3JtYWwgYW5pbWF0aW9uIGxvb3AsIGJ1dCBwYXVzZWQg
b3IgZW5kZWQgYW5pbWF0aW9ucyB3b24ndC4KKyAgICAgICAgaWYgKG1fb2JqZWN0KSB7CisgICAg
ICAgICAgICBpZiAocGF1c2VkKCkpIHsKKyAgICAgICAgICAgICAgICBtX3BhdXNlVGltZSA9IGN1
cnJlbnRUaW1lKCk7IC8vIFdlJ3ZlIGFscmVhZHkgYWRqdXN0ZWQgb3VyIHN0YXJ0IHRpbWUuCisg
ICAgICAgICAgICAgICAgLy8gSWYgd2UgYXJlIHBhdXNlZCwgbWFrZSBzdXJlIHdlIG1vdmUgaW50
byB0aGUgY29ycmVjdCBwYXVzZWQgc3RhdGUgKHdlIG1pZ2h0IGJlIGNvbWluZyBmcm9tIGFuIGVu
ZGluZyBzdGF0ZSBzZXQgYWJvdmUpCisgICAgICAgICAgICAgICAgbV9hbmltU3RhdGUgPSBBbmlt
YXRpb25TdGF0ZVBhdXNlZFJ1bjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIG1fY29tcEFu
aW0tPmFuaW1hdGlvbkNvbnRyb2xsZXIoKS0+YWRkTm9kZUNoYW5nZVRvRGlzcGF0Y2gobV9vYmpl
Y3QtPm5vZGUoKSk7CisgICAgICAgIH0KKyAgICB9IGVsc2UgeworICAgICAgICAvLyBGdWNrIGl0
LiBMZXQncyBzZXQgdGhlIHN0YXJ0IHRpbWUgYW5kIHNlZSB3aGF0IGhhcHBlbnMuCisgICAgICAg
IG1fc3RhcnRUaW1lID0gY3VycmVudFRpbWUoKSAtIHRpbWU7CisgICAgICAgIG1fYXBwbGllZFRp
bWUgPSBtX3N0YXJ0VGltZSAtIG1fYW5pbWF0aW9uLT5kZWxheSgpOworICAgICAgICBpZiAocGF1
c2VkKCkgJiYgbV9vYmplY3QpIHsKKyAgICAgICAgICAgIG1fYW5pbVN0YXRlID0gQW5pbWF0aW9u
U3RhdGVQYXVzZWREb25lOworICAgICAgICAgICAgbV9wYXVzZVRpbWUgPSBjdXJyZW50VGltZSgp
OyAvLyBXZSd2ZSBhbHJlYWR5IGFkanVzdGVkIG91ciBzdGFydCB0aW1lLgorICAgICAgICAgICAg
bV9jb21wQW5pbS0+YW5pbWF0aW9uQ29udHJvbGxlcigpLT5hZGROb2RlQ2hhbmdlVG9EaXNwYXRj
aChtX29iamVjdC0+bm9kZSgpKTsKKyAgICAgICAgfQorICAgIH0KK30KKworZG91YmxlIEFuaW1h
dGlvbkJhc2U6OmdldEFwcGxpZWRUaW1lKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9hcHBsaWVk
VGltZTsKK30KKworZG91YmxlIEFuaW1hdGlvbkJhc2U6OmdldFN0YXJ0VGltZSgpIGNvbnN0Cit7
CisgICAgcmV0dXJuIG1fc3RhcnRUaW1lOworfQorCit2b2lkIEFuaW1hdGlvbkJhc2U6OnBsYXko
KQoreworICAgIC8vIFdlIG9ubHkgcmVjb21tZW5jZSBwbGF5YmFjayBpZiBvdXIgQ1NTIHBsYXlz
dGF0ZSBhbGxvd3MgaXQuCisgICAgaWYgKHBhdXNlZCgpICYmIG1fYW5pbWF0aW9uLT5wbGF5U3Rh
dGUoKSA9PSBBbmltUGxheVN0YXRlUGxheWluZykgeworICAgICAgICBtX3BhdXNlZEJ5U2NyaXB0
ID0gZmFsc2U7CisgICAgICAgIHVwZGF0ZVBsYXlTdGF0ZShBbmltUGxheVN0YXRlUGxheWluZyk7
CisgICAgfQorfQorCit2b2lkIEFuaW1hdGlvbkJhc2U6OnBhdXNlKCkKK3sKKyAgICBpZiAoIXBh
dXNlZCgpKSB7CisgICAgICAgIG1fcGF1c2VkQnlTY3JpcHQgPSB0cnVlOworICAgICAgICB1cGRh
dGVQbGF5U3RhdGUoQW5pbVBsYXlTdGF0ZVBhdXNlZCk7CisgICAgfQorfQorCiB9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9B
bmltYXRpb25CYXNlLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9BbmltYXRpb25C
YXNlLmgKaW5kZXggODc3ZDY0OS4uNmU5ZGUxZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGFnZS9hbmltYXRpb24vQW5pbWF0aW9uQmFzZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
YW5pbWF0aW9uL0FuaW1hdGlvbkJhc2UuaApAQCAtNzQsNyArNzQsOCBAQCBwdWJsaWM6CiAgICAg
ICAgIEFuaW1hdGlvblN0YXRlUGF1c2VkV2FpdFN0eWxlQXZhaWxhYmxlLCAvLyBpbiBwYXVzZSBt
b2RlIHdoZW4gd2FpdGluZyBmb3Igc3R5bGUgc2V0dXAKICAgICAgICAgQW5pbWF0aW9uU3RhdGVQ
YXVzZWRXYWl0UmVzcG9uc2UsICAgLy8gYW5pbWF0aW9uIHBhdXNlZCB3aGVuIGluIFNUQVJUSU5H
IHN0YXRlCiAgICAgICAgIEFuaW1hdGlvblN0YXRlUGF1c2VkUnVuLCAgICAgICAgICAgIC8vIGFu
aW1hdGlvbiBwYXVzZWQgd2hlbiBpbiBMT09QSU5HIG9yIEVORElORyBzdGF0ZQotICAgICAgICBB
bmltYXRpb25TdGF0ZURvbmUsICAgICAgICAgICAgICAgICAvLyBlbmQgdGltZXIgZmlyZWQsIGFu
aW1hdGlvbiBmaW5pc2hlZCBhbmQgcmVtb3ZlZAorICAgICAgICBBbmltYXRpb25TdGF0ZVBhdXNl
ZERvbmUsICAgICAgICAgICAvLyBhbmltYXRpb24gcGF1c2VkIHdoZW4gZG9uZQorICAgICAgICBB
bmltYXRpb25TdGF0ZURvbmUsICAgICAgICAgICAgICAgICAvLyBlbmQgdGltZXIgZmlyZWQsIGFu
aW1hdGlvbiBmaW5pc2hlZAogICAgICAgICBBbmltYXRpb25TdGF0ZUZpbGxpbmdGb3J3YXJkcyAg
ICAgICAvLyBhbmltYXRpb24gaGFzIGVuZGVkIGFuZCBpcyByZXRhaW5pbmcgaXRzIGZpbmFsIHZh
bHVlCiAgICAgfTsKIApAQCAtMTE2LDcgKzExNyw4IEBAIHB1YmxpYzoKICAgICBib29sIHBvc3RB
Y3RpdmUoKSBjb25zdCB7IHJldHVybiBtX2FuaW1TdGF0ZSA9PSBBbmltYXRpb25TdGF0ZURvbmU7
IH0KICAgICBib29sIGFjdGl2ZSgpIGNvbnN0IHsgcmV0dXJuICFwb3N0QWN0aXZlKCkgJiYgIXBy
ZUFjdGl2ZSgpOyB9CiAgICAgYm9vbCBydW5uaW5nKCkgY29uc3QgeyByZXR1cm4gIWlzTmV3KCkg
JiYgIXBvc3RBY3RpdmUoKTsgfQotICAgIGJvb2wgcGF1c2VkKCkgY29uc3QgeyByZXR1cm4gbV9w
YXVzZVRpbWUgPj0gMDsgfQorICAgIGJvb2wgcGF1c2VkKCkgY29uc3QgeyByZXR1cm4gbV9pc1Bh
dXNlZDsgfQorICAgIGJvb2wgcGF1c2VkQnlTY3JpcHQoKSBjb25zdCB7IHJldHVybiBtX3BhdXNl
ZEJ5U2NyaXB0OyB9CiAgICAgYm9vbCBpc05ldygpIGNvbnN0IHsgcmV0dXJuIG1fYW5pbVN0YXRl
ID09IEFuaW1hdGlvblN0YXRlTmV3OyB9CiAgICAgYm9vbCB3YWl0aW5nRm9yU3RhcnRUaW1lKCkg
Y29uc3QgeyByZXR1cm4gbV9hbmltU3RhdGUgPT0gQW5pbWF0aW9uU3RhdGVTdGFydFdhaXRSZXNw
b25zZTsgfQogICAgIGJvb2wgd2FpdGluZ0ZvclN0eWxlQXZhaWxhYmxlKCkgY29uc3QgeyByZXR1
cm4gbV9hbmltU3RhdGUgPT0gQW5pbWF0aW9uU3RhdGVTdGFydFdhaXRTdHlsZUF2YWlsYWJsZTsg
fQpAQCAtMTYzLDEwICsxNjUsMTggQEAgcHVibGljOgogICAgIAogICAgIC8vIEZyZWV6ZSB0aGUg
YW5pbWF0aW9uOyB1c2VkIGJ5IER1bXBSZW5kZXJUcmVlLgogICAgIHZvaWQgZnJlZXplQXRUaW1l
KGRvdWJsZSB0KTsKKyAgICAvLyBQbGF5IGFuZCBwYXVzZSBBUEkKKyAgICB2b2lkIHBsYXkoKTsK
KyAgICB2b2lkIHBhdXNlKCk7CiAgICAgCiAgICAgZG91YmxlIGJlZ2luQW5pbWF0aW9uVXBkYXRl
VGltZSgpIGNvbnN0OwogICAgIAorICAgIGRvdWJsZSBnZXRBcHBsaWVkVGltZSgpIGNvbnN0Owor
ICAgIGRvdWJsZSBnZXRTdGFydFRpbWUoKSBjb25zdDsKICAgICBkb3VibGUgZ2V0RWxhcHNlZFRp
bWUoKSBjb25zdDsKKworICAgIC8vIFNldHRpbmcgdGhlIGVsYXBzZWQgdGltZSB3aWxsIGFkanVz
dCB0aGUgc3RhcnQgdGltZSwgYXBwbGllZCB0aW1lIGFuZCBwb3NzaWJseSBwYXVzZSB0aW1lLgor
ICAgIHZvaWQgc2V0RWxhcHNlZFRpbWUoZG91YmxlIHRpbWUpOwogICAgIAogICAgIEFuaW1hdGlv
bkJhc2UqIG5leHQoKSBjb25zdCB7IHJldHVybiBtX25leHQ7IH0KICAgICB2b2lkIHNldE5leHQo
QW5pbWF0aW9uQmFzZSogYW5pbWF0aW9uKSB7IG1fbmV4dCA9IGFuaW1hdGlvbjsgfQpAQCAtMTgz
LDYgKzE5Myw4IEBAIHB1YmxpYzoKIAogICAgIHN0YXRpYyBIYXNoU2V0PGludD4gYW5pbWF0YWJs
ZVNob3J0aGFuZHNBZmZlY3RpbmdQcm9wZXJ0eShpbnQgcHJvcGVydHkpOwogICAgIAorICAgIEFu
aW1hdGlvbiogYW5pbWF0aW9uKCkgeyByZXR1cm4gbV9hbmltYXRpb24uZ2V0KCk7IH0KKyAgICAK
IHByb3RlY3RlZDoKICAgICB2aXJ0dWFsIHZvaWQgb3ZlcnJpZGVBbmltYXRpb25zKCkgeyB9CiAg
ICAgdmlydHVhbCB2b2lkIHJlc3VtZU92ZXJyaWRkZW5BbmltYXRpb25zKCkgeyB9CkBAIC0yMTks
OCArMjMxLDExIEBAIHByb3RlY3RlZDoKICAgICBBbmltU3RhdGUgbV9hbmltU3RhdGU7CiAKICAg
ICBib29sIG1faXNBbmltYXRpbmc7ICAgICAgIC8vIHRyYW5zaXRpb24vYW5pbWF0aW9uIHJlcXVp
cmVzIGNvbnRpbnVhbCB0aW1lciBmaXJpbmcKLSAgICBkb3VibGUgbV9zdGFydFRpbWU7CisgICAg
ZG91YmxlIG1fYXBwbGllZFRpbWU7IC8vIHRoZSB0aW1lIHdoZW4gdGhlIGFuaW1hdGlvbiBpcyBh
cHBsaWVkIHRvIHRoZSBlbGVtZW50IChwb3RlbnRpYWxseSBiZWZvcmUgc3RhcnQgdGltZSkKKyAg
ICBkb3VibGUgbV9zdGFydFRpbWU7IC8vIHRoZSB0aW1lIHdoZW4gdGhlIGFuaW1hdGlvbiBhY3R1
YWxseSBiZWdpbnMgKGFmdGVyIHRoZSBkZWxheSkKICAgICBkb3VibGUgbV9wYXVzZVRpbWU7Cisg
ICAgYm9vbCBtX2lzUGF1c2VkOworICAgIGJvb2wgbV9wYXVzZWRCeVNjcmlwdDsKICAgICBkb3Vi
bGUgbV9yZXF1ZXN0ZWRTdGFydFRpbWU7CiAgICAgUmVuZGVyT2JqZWN0KiBtX29iamVjdDsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vQW5pbWF0aW9uQ29udHJv
bGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9BbmltYXRpb25Db250cm9s
bGVyLmNwcAppbmRleCBkY2RlYTAzLi5lOGZmNzM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL2FuaW1hdGlvbi9BbmltYXRpb25Db250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL2FuaW1hdGlvbi9BbmltYXRpb25Db250cm9sbGVyLmNwcApAQCAtMzcsMTIgKzM3
LDE0IEBACiAjaW5jbHVkZSAiRnJhbWUuaCIKICNpbmNsdWRlICJSZW5kZXJWaWV3LmgiCiAjaW5j
bHVkZSAiV2ViS2l0QW5pbWF0aW9uRXZlbnQuaCIKKyNpbmNsdWRlICJXZWJLaXRBbmltYXRpb25M
aXN0LmgiCiAjaW5jbHVkZSAiV2ViS2l0VHJhbnNpdGlvbkV2ZW50LmgiCiAjaW5jbHVkZSA8d3Rm
L0N1cnJlbnRUaW1lLmg+CiAjaW5jbHVkZSA8d3RmL1VudXNlZFBhcmFtLmg+CiAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAorLy8gRklYTUU6IFdoeSBpc24ndCB0aGlzIHNldCB0byA2MGZwcyBvciBz
b21ldGhpbmc/CiBzdGF0aWMgY29uc3QgZG91YmxlIGNBbmltYXRpb25UaW1lckRlbGF5ID0gMC4w
MjU7CiBzdGF0aWMgY29uc3QgZG91YmxlIGNCZWdpbkFuaW1hdGlvblVwZGF0ZVRpbWVOb3RTZXQg
PSAtMTsKIApAQCAtNDc5LDYgKzQ4MSwxNyBAQCB2b2lkIEFuaW1hdGlvbkNvbnRyb2xsZXJQcml2
YXRlOjpzdGFydFRpbWVSZXNwb25zZShkb3VibGUgdGltZSkKICAgICBtX2xhc3RTdGFydFRpbWVS
ZXNwb25zZVdhaXRlciA9IDA7CiB9CiAKKyAgICAKK1Bhc3NSZWZQdHI8V2ViS2l0QW5pbWF0aW9u
TGlzdD4gQW5pbWF0aW9uQ29udHJvbGxlclByaXZhdGU6OmFuaW1hdGlvbnNGb3JSZW5kZXJlcihS
ZW5kZXJPYmplY3QqIHJlbmRlcmVyKSBjb25zdAoreworICAgIFJlZlB0cjxDb21wb3NpdGVBbmlt
YXRpb24+IGFuaW1hdGlvbiA9IG1fY29tcG9zaXRlQW5pbWF0aW9ucy5nZXQocmVuZGVyZXIpOwor
CisgICAgaWYgKCFhbmltYXRpb24pCisgICAgICAgIHJldHVybiAwOworCisgICAgcmV0dXJuIGFu
aW1hdGlvbi0+YW5pbWF0aW9ucygpOworfQorICAgIAogQW5pbWF0aW9uQ29udHJvbGxlcjo6QW5p
bWF0aW9uQ29udHJvbGxlcihGcmFtZSogZnJhbWUpCiAgICAgOiBtX2RhdGEobmV3IEFuaW1hdGlv
bkNvbnRyb2xsZXJQcml2YXRlKGZyYW1lKSkKIHsKQEAgLTYxMiw0ICs2MjUsOSBAQCBib29sIEFu
aW1hdGlvbkNvbnRyb2xsZXI6OnN1cHBvcnRzQWNjZWxlcmF0ZWRBbmltYXRpb25PZlByb3BlcnR5
KENTU1Byb3BlcnR5SUQgcAogI2VuZGlmCiB9CiAKK1Bhc3NSZWZQdHI8V2ViS2l0QW5pbWF0aW9u
TGlzdD4gQW5pbWF0aW9uQ29udHJvbGxlcjo6YW5pbWF0aW9uc0ZvclJlbmRlcmVyKFJlbmRlck9i
amVjdCogcmVuZGVyZXIpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fZGF0YS0+YW5pbWF0aW9uc0Zv
clJlbmRlcmVyKHJlbmRlcmVyKTsKK30KKyAgICAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0FuaW1hdGlvbkNvbnRyb2xs
ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0FuaW1hdGlvbkNvbnRyb2xsZXIu
aAppbmRleCA1Mjc5NDY3Li4yYmM5NjY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L2FuaW1hdGlvbi9BbmltYXRpb25Db250cm9sbGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9hbmltYXRpb24vQW5pbWF0aW9uQ29udHJvbGxlci5oCkBAIC00Miw2ICs0Miw3IEBAIGNsYXNz
IEZyYW1lOwogY2xhc3MgTm9kZTsKIGNsYXNzIFJlbmRlck9iamVjdDsKIGNsYXNzIFJlbmRlclN0
eWxlOworY2xhc3MgV2ViS2l0QW5pbWF0aW9uTGlzdDsKIAogY2xhc3MgQW5pbWF0aW9uQ29udHJv
bGxlciB7CiBwdWJsaWM6CkBAIC03Myw2ICs3NCw4IEBAIHB1YmxpYzoKICAgICAKICAgICBzdGF0
aWMgYm9vbCBzdXBwb3J0c0FjY2VsZXJhdGVkQW5pbWF0aW9uT2ZQcm9wZXJ0eShDU1NQcm9wZXJ0
eUlEKTsKIAorICAgIFBhc3NSZWZQdHI8V2ViS2l0QW5pbWF0aW9uTGlzdD4gYW5pbWF0aW9uc0Zv
clJlbmRlcmVyKFJlbmRlck9iamVjdCopIGNvbnN0OworICAgIAogcHJpdmF0ZToKICAgICBBbmlt
YXRpb25Db250cm9sbGVyUHJpdmF0ZSogbV9kYXRhOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0FuaW1hdGlvbkNvbnRyb2xsZXJQcml2YXRlLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9BbmltYXRpb25Db250cm9sbGVyUHJpdmF0ZS5oCmlu
ZGV4IDE4NmRkN2QuLjg4YjgyYTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5p
bWF0aW9uL0FuaW1hdGlvbkNvbnRyb2xsZXJQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9hbmltYXRpb24vQW5pbWF0aW9uQ29udHJvbGxlclByaXZhdGUuaApAQCAtNDgsNiArNDgs
NyBAQCBjbGFzcyBGcmFtZTsKIGNsYXNzIE5vZGU7CiBjbGFzcyBSZW5kZXJPYmplY3Q7CiBjbGFz
cyBSZW5kZXJTdHlsZTsKK2NsYXNzIFdlYktpdEFuaW1hdGlvbkxpc3Q7CiAKIGNsYXNzIEFuaW1h
dGlvbkNvbnRyb2xsZXJQcml2YXRlIHsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShBbmltYXRp
b25Db250cm9sbGVyUHJpdmF0ZSk7IFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwpAQCAtOTMsNiAr
OTQsOCBAQCBwdWJsaWM6CiAgICAgdm9pZCBhZGRUb1N0YXJ0VGltZVJlc3BvbnNlV2FpdExpc3Qo
QW5pbWF0aW9uQmFzZSosIGJvb2wgd2lsbEdldFJlc3BvbnNlKTsKICAgICB2b2lkIHJlbW92ZUZy
b21TdGFydFRpbWVSZXNwb25zZVdhaXRMaXN0KEFuaW1hdGlvbkJhc2UqKTsgICAgCiAgICAgCisg
ICAgUGFzc1JlZlB0cjxXZWJLaXRBbmltYXRpb25MaXN0PiBhbmltYXRpb25zRm9yUmVuZGVyZXIo
UmVuZGVyT2JqZWN0KikgY29uc3Q7CisgICAgCiBwcml2YXRlOgogICAgIHZvaWQgYW5pbWF0aW9u
VGltZXJGaXJlZChUaW1lcjxBbmltYXRpb25Db250cm9sbGVyUHJpdmF0ZT4qKTsKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vQ29tcG9zaXRlQW5pbWF0aW9uLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0NvbXBvc2l0ZUFuaW1hdGlvbi5jcHAK
aW5kZXggNjAyNDkxZS4uMzNhNDVjOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9h
bmltYXRpb24vQ29tcG9zaXRlQW5pbWF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L2FuaW1hdGlvbi9Db21wb3NpdGVBbmltYXRpb24uY3BwCkBAIC0zNiw2ICszNiw4IEBACiAjaW5j
bHVkZSAiS2V5ZnJhbWVBbmltYXRpb24uaCIKICNpbmNsdWRlICJSZW5kZXJPYmplY3QuaCIKICNp
bmNsdWRlICJSZW5kZXJTdHlsZS5oIgorI2luY2x1ZGUgIldlYktpdEFuaW1hdGlvbi5oIgorI2lu
Y2x1ZGUgIldlYktpdEFuaW1hdGlvbkxpc3QuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBA
IC0xOTIsMTQgKzE5NCw3IEBAIHZvaWQgQ29tcG9zaXRlQW5pbWF0aW9uOjp1cGRhdGVLZXlmcmFt
ZUFuaW1hdGlvbnMoUmVuZGVyT2JqZWN0KiByZW5kZXJlciwgUmVuZGVyCiAKICAgICBBbmltYXRp
b25OYW1lTWFwOjpjb25zdF9pdGVyYXRvciBrZmVuZCA9IG1fa2V5ZnJhbWVBbmltYXRpb25zLmVu
ZCgpOwogICAgIAotICAgIGlmIChjdXJyZW50U3R5bGUgJiYgY3VycmVudFN0eWxlLT5oYXNBbmlt
YXRpb25zKCkgJiYgdGFyZ2V0U3R5bGUtPmhhc0FuaW1hdGlvbnMoKSAmJiAqKGN1cnJlbnRTdHls
ZS0+YW5pbWF0aW9ucygpKSA9PSAqKHRhcmdldFN0eWxlLT5hbmltYXRpb25zKCkpKSB7Ci0gICAg
ICAgIC8vIFRoZSBjdXJyZW50IGFuZCB0YXJnZXQgYW5pbWF0aW9ucyBhcmUgdGhlIHNhbWUgc28g
d2UganVzdCBuZWVkIHRvIHRvc3MgYW55IAotICAgICAgICAvLyBhbmltYXRpb24gd2hpY2ggaXMg
ZmluaXNoZWQgKHBvc3RBY3RpdmUpLgotICAgICAgICBmb3IgKEFuaW1hdGlvbk5hbWVNYXA6OmNv
bnN0X2l0ZXJhdG9yIGl0ID0gbV9rZXlmcmFtZUFuaW1hdGlvbnMuYmVnaW4oKTsgaXQgIT0ga2Zl
bmQ7ICsraXQpIHsKLSAgICAgICAgICAgIGlmIChpdC0+c2Vjb25kLT5wb3N0QWN0aXZlKCkpCi0g
ICAgICAgICAgICAgICAgaXQtPnNlY29uZC0+c2V0SW5kZXgoLTEpOwotICAgICAgICB9Ci0gICAg
fSBlbHNlIHsKKyAgICBpZiAoIWN1cnJlbnRTdHlsZSB8fCAhY3VycmVudFN0eWxlLT5oYXNBbmlt
YXRpb25zKCkgfHwgIXRhcmdldFN0eWxlLT5oYXNBbmltYXRpb25zKCkgfHwgKihjdXJyZW50U3R5
bGUtPmFuaW1hdGlvbnMoKSkgIT0gKih0YXJnZXRTdHlsZS0+YW5pbWF0aW9ucygpKSkgewogICAg
ICAgICAvLyBNYXJrIGFsbCBleGlzdGluZyBhbmltYXRpb25zIGFzIG5vIGxvbmdlciBhY3RpdmUu
CiAgICAgICAgIGZvciAoQW5pbWF0aW9uTmFtZU1hcDo6Y29uc3RfaXRlcmF0b3IgaXQgPSBtX2tl
eWZyYW1lQW5pbWF0aW9ucy5iZWdpbigpOyBpdCAhPSBrZmVuZDsgKytpdCkKICAgICAgICAgICAg
IGl0LT5zZWNvbmQtPnNldEluZGV4KC0xKTsKQEAgLTIwNyw4ICsyMDIsNiBAQCB2b2lkIENvbXBv
c2l0ZUFuaW1hdGlvbjo6dXBkYXRlS2V5ZnJhbWVBbmltYXRpb25zKFJlbmRlck9iamVjdCogcmVu
ZGVyZXIsIFJlbmRlcgogICAgICAgICAvLyBUb3NzIHRoZSBhbmltYXRpb24gb3JkZXIgbWFwLgog
ICAgICAgICBtX2tleWZyYW1lQW5pbWF0aW9uT3JkZXJNYXAuY2xlYXIoKTsKIAotICAgICAgICBE
RUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IEF0b21pY1N0cmluZywgbm9uZSwgKCJub25lIikpOwot
ICAgICAgICAKICAgICAgICAgLy8gTm93IG1hcmsgYW55IHN0aWxsIGFjdGl2ZSBhbmltYXRpb25z
IGFzIGFjdGl2ZSBhbmQgYWRkIGFueSBuZXcgYW5pbWF0aW9ucy4KICAgICAgICAgaWYgKHRhcmdl
dFN0eWxlLT5hbmltYXRpb25zKCkpIHsKICAgICAgICAgICAgIGludCBudW1BbmltcyA9IHRhcmdl
dFN0eWxlLT5hbmltYXRpb25zKCktPnNpemUoKTsKQEAgLTIyMywxOSArMjE2LDE2IEBAIHZvaWQg
Q29tcG9zaXRlQW5pbWF0aW9uOjp1cGRhdGVLZXlmcmFtZUFuaW1hdGlvbnMoUmVuZGVyT2JqZWN0
KiByZW5kZXJlciwgUmVuZGVyCiAgICAgICAgICAgICAgICAgUmVmUHRyPEtleWZyYW1lQW5pbWF0
aW9uPiBrZXlmcmFtZUFuaW0gPSBtX2tleWZyYW1lQW5pbWF0aW9ucy5nZXQoYW5pbWF0aW9uTmFt
ZS5pbXBsKCkpOwogICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgIGlmIChrZXlmcmFt
ZUFuaW0pIHsKLSAgICAgICAgICAgICAgICAgICAgLy8gSWYgdGhpcyBhbmltYXRpb24gaXMgcG9z
dEFjdGl2ZSwgc2tpcCBpdCBzbyBpdCBnZXRzIHJlbW92ZWQgYXQgdGhlIGVuZCBvZiB0aGlzIGZ1
bmN0aW9uLgotICAgICAgICAgICAgICAgICAgICBpZiAoa2V5ZnJhbWVBbmltLT5wb3N0QWN0aXZl
KCkpCi0gICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgICAgICAgICAg
ICAgCi0gICAgICAgICAgICAgICAgICAgIC8vIFRoaXMgb25lIGlzIHN0aWxsIGFjdGl2ZS4KLQog
ICAgICAgICAgICAgICAgICAgICAvLyBBbmltYXRpb25zIG1hdGNoLCBidXQgcGxheSBzdGF0ZXMg
bWF5IGRpZmZlci4gVXBkYXRlIGlmIG5lZWRlZC4KLSAgICAgICAgICAgICAgICAgICAga2V5ZnJh
bWVBbmltLT51cGRhdGVQbGF5U3RhdGUoYW5pbS0+cGxheVN0YXRlKCkpOworICAgICAgICAgICAg
ICAgICAgICBpZiAoa2V5ZnJhbWVBbmltLT5wYXVzZWQoKSAmJiAha2V5ZnJhbWVBbmltLT5wYXVz
ZWRCeVNjcmlwdCgpICYmIGFuaW0tPnBsYXlTdGF0ZSgpID09IEFuaW1QbGF5U3RhdGVQbGF5aW5n
KQorICAgICAgICAgICAgICAgICAgICAgICAga2V5ZnJhbWVBbmltLT51cGRhdGVQbGF5U3RhdGUo
QW5pbVBsYXlTdGF0ZVBsYXlpbmcpOworICAgICAgICAgICAgICAgICAgICBlbHNlIGlmICgha2V5
ZnJhbWVBbmltLT5wYXVzZWQoKSAmJiBhbmltLT5wbGF5U3RhdGUoKSA9PSBBbmltUGxheVN0YXRl
UGF1c2VkKQorICAgICAgICAgICAgICAgICAgICAgICAga2V5ZnJhbWVBbmltLT51cGRhdGVQbGF5
U3RhdGUoQW5pbVBsYXlTdGF0ZVBhdXNlZCk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIAogICAgICAgICAgICAgICAgICAgICAvLyBTZXQgdGhlIHNhdmVkIGFuaW1hdGlvbiB0byB0
aGlzIG5ldyBvbmUsIGp1c3QgaW4gY2FzZSB0aGUgcGxheSBzdGF0ZSBoYXMgY2hhbmdlZC4KICAg
ICAgICAgICAgICAgICAgICAga2V5ZnJhbWVBbmltLT5zZXRBbmltYXRpb24oYW5pbSk7CiAgICAg
ICAgICAgICAgICAgICAgIGtleWZyYW1lQW5pbS0+c2V0SW5kZXgoaSk7Ci0gICAgICAgICAgICAg
ICAgfSBlbHNlIGlmICgoYW5pbS0+ZHVyYXRpb24oKSB8fCBhbmltLT5kZWxheSgpKSAmJiBhbmlt
LT5pdGVyYXRpb25Db3VudCgpICYmIGFuaW1hdGlvbk5hbWUgIT0gbm9uZSkgeworICAgICAgICAg
ICAgICAgIH0gZWxzZSBpZiAoKGFuaW0tPmR1cmF0aW9uKCkgfHwgYW5pbS0+ZGVsYXkoKSkgJiYg
YW5pbS0+aXRlcmF0aW9uQ291bnQoKSAmJiAhYW5pbS0+aXNOb25lQW5pbWF0aW9uKCkpIHsKICAg
ICAgICAgICAgICAgICAgICAga2V5ZnJhbWVBbmltID0gS2V5ZnJhbWVBbmltYXRpb246OmNyZWF0
ZShjb25zdF9jYXN0PEFuaW1hdGlvbio+KGFuaW0pLCByZW5kZXJlciwgaSwgdGhpcywgdGFyZ2V0
U3R5bGUpOwogICAgICAgICAgICAgICAgICAgICBtX2tleWZyYW1lQW5pbWF0aW9ucy5zZXQoa2V5
ZnJhbWVBbmltLT5uYW1lKCkuaW1wbCgpLCBrZXlmcmFtZUFuaW0pOwogICAgICAgICAgICAgICAg
IH0KQEAgLTU2MCw0ICs1NTAsMTkgQEAgdW5zaWduZWQgQ29tcG9zaXRlQW5pbWF0aW9uOjpudW1i
ZXJPZkFjdGl2ZUFuaW1hdGlvbnMoKSBjb25zdAogICAgIHJldHVybiBjb3VudDsKIH0KIAorUGFz
c1JlZlB0cjxXZWJLaXRBbmltYXRpb25MaXN0PiBDb21wb3NpdGVBbmltYXRpb246OmFuaW1hdGlv
bnMoKSBjb25zdAoreworICAgIFJlZlB0cjxXZWJLaXRBbmltYXRpb25MaXN0PiBhbmltYXRpb25z
ID0gV2ViS2l0QW5pbWF0aW9uTGlzdDo6Y3JlYXRlKCk7CisgICAgaWYgKCFtX2tleWZyYW1lQW5p
bWF0aW9ucy5pc0VtcHR5KCkpIHsKKyAgICAgICAgbV9rZXlmcmFtZUFuaW1hdGlvbnMuY2hlY2tD
b25zaXN0ZW5jeSgpOworICAgICAgICBBbmltYXRpb25OYW1lTWFwOjpjb25zdF9pdGVyYXRvciBh
bmltYXRpb25zRW5kID0gbV9rZXlmcmFtZUFuaW1hdGlvbnMuZW5kKCk7CisgICAgICAgIGZvciAo
QW5pbWF0aW9uTmFtZU1hcDo6Y29uc3RfaXRlcmF0b3IgaXQgPSBtX2tleWZyYW1lQW5pbWF0aW9u
cy5iZWdpbigpOyBpdCAhPSBhbmltYXRpb25zRW5kOyArK2l0KSB7CisgICAgICAgICAgICBLZXlm
cmFtZUFuaW1hdGlvbioga2V5ZnJhbWVBbmltYXRpb24gPSBpdC0+c2Vjb25kLmdldCgpOworICAg
ICAgICAgICAgUmVmUHRyPFdlYktpdEFuaW1hdGlvbj4gYW5pbSA9IFdlYktpdEFuaW1hdGlvbjo6
Y3JlYXRlKGtleWZyYW1lQW5pbWF0aW9uKTsKKyAgICAgICAgICAgIGFuaW1hdGlvbnMtPmFwcGVu
ZChhbmltKTsKKyAgICAgICAgfQorICAgIH0KKyAgICByZXR1cm4gYW5pbWF0aW9uczsKK30KKyAg
ICAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvYW5pbWF0aW9uL0NvbXBvc2l0ZUFuaW1hdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9h
bmltYXRpb24vQ29tcG9zaXRlQW5pbWF0aW9uLmgKaW5kZXggMjQ5ZjRjMy4uMWJmZTU4NSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vQ29tcG9zaXRlQW5pbWF0aW9u
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vQ29tcG9zaXRlQW5pbWF0aW9u
LmgKQEAgLTQxLDYgKzQxLDcgQEAgY2xhc3MgQW5pbWF0aW9uQ29udHJvbGxlclByaXZhdGU7CiBj
bGFzcyBBbmltYXRpb25Db250cm9sbGVyOwogY2xhc3MgUmVuZGVyT2JqZWN0OwogY2xhc3MgUmVu
ZGVyU3R5bGU7CitjbGFzcyBXZWJLaXRBbmltYXRpb25MaXN0OwogCiAvLyBBIENvbXBvc2l0ZUFu
aW1hdGlvbiByZXByZXNlbnRzIGEgY29sbGVjdGlvbiBvZiBhbmltYXRpb25zIHRoYXQgYXJlIHJ1
bm5pbmcKIC8vIG9uIGEgc2luZ2xlIFJlbmRlck9iamVjdCwgc3VjaCBhcyBhIG51bWJlciBvZiBw
cm9wZXJ0aWVzIHRyYW5zaXRpb25pbmcgYXQgb25jZS4KQEAgLTgwLDYgKzgxLDggQEAgcHVibGlj
OgogICAgIGJvb2wgcGF1c2VUcmFuc2l0aW9uQXRUaW1lKGludCBwcm9wZXJ0eSwgZG91YmxlIHQp
OwogICAgIHVuc2lnbmVkIG51bWJlck9mQWN0aXZlQW5pbWF0aW9ucygpIGNvbnN0OwogCisgICAg
UGFzc1JlZlB0cjxXZWJLaXRBbmltYXRpb25MaXN0PiBhbmltYXRpb25zKCkgY29uc3Q7CisKIHBy
aXZhdGU6CiAgICAgQ29tcG9zaXRlQW5pbWF0aW9uKEFuaW1hdGlvbkNvbnRyb2xsZXJQcml2YXRl
KiBhbmltYXRpb25Db250cm9sbGVyKQogICAgICAgICA6IG1fYW5pbWF0aW9uQ29udHJvbGxlcihh
bmltYXRpb25Db250cm9sbGVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9hbmlt
YXRpb24vS2V5ZnJhbWVBbmltYXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRp
b24vS2V5ZnJhbWVBbmltYXRpb24uY3BwCmluZGV4IDVmMTlmZTQuLjIzMWZhYmMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0tleWZyYW1lQW5pbWF0aW9uLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9LZXlmcmFtZUFuaW1hdGlvbi5jcHAK
QEAgLTY4LDcgKzY4LDcgQEAgS2V5ZnJhbWVBbmltYXRpb246On5LZXlmcmFtZUFuaW1hdGlvbigp
CiB2b2lkIEtleWZyYW1lQW5pbWF0aW9uOjpmZXRjaEludGVydmFsRW5kcG9pbnRzRm9yUHJvcGVy
dHkoaW50IHByb3BlcnR5LCBjb25zdCBSZW5kZXJTdHlsZSomIGZyb21TdHlsZSwgY29uc3QgUmVu
ZGVyU3R5bGUqJiB0b1N0eWxlLCBkb3VibGUmIHByb2cpIGNvbnN0CiB7CiAgICAgLy8gRmluZCB0
aGUgZmlyc3Qga2V5Ci0gICAgZG91YmxlIGVsYXBzZWRUaW1lID0gZ2V0RWxhcHNlZFRpbWUoKTsK
KyAgICBkb3VibGUgZWxhcHNlZFRpbWUgPSBtYXgoMC4wLCBnZXRFbGFwc2VkVGltZSgpKTsKICAg
ICBpZiAobV9hbmltYXRpb24tPmR1cmF0aW9uKCkgJiYgbV9hbmltYXRpb24tPml0ZXJhdGlvbkNv
dW50KCkgIT0gQW5pbWF0aW9uOjpJdGVyYXRpb25Db3VudEluZmluaXRlKQogICAgICAgICBlbGFw
c2VkVGltZSA9IG1pbihlbGFwc2VkVGltZSwgbV9hbmltYXRpb24tPmR1cmF0aW9uKCkgKiBtX2Fu
aW1hdGlvbi0+aXRlcmF0aW9uQ291bnQoKSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvYW5pbWF0aW9uL1dlYktpdEFuaW1hdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L2FuaW1hdGlvbi9XZWJLaXRBbmltYXRpb24uY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAuLjE2YzhkNGQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L2FuaW1hdGlvbi9XZWJLaXRBbmltYXRpb24uY3BwCkBAIC0wLDAgKzEsMTQ4IEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDExIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJ
TkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElO
Qy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0Yg
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8K
KworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYktpdEFuaW1hdGlvbi5oIgorCisj
aW5jbHVkZSAiQW5pbWF0aW9uLmgiCisjaW5jbHVkZSAiQW5pbWF0aW9uQmFzZS5oIgorI2luY2x1
ZGUgIlJlbmRlclN0eWxlLmgiCisKK3VzaW5nIG5hbWVzcGFjZSBzdGQ7CisKK25hbWVzcGFjZSBX
ZWJDb3JlIHsKKworV2ViS2l0QW5pbWF0aW9uOjpXZWJLaXRBbmltYXRpb24oUGFzc1JlZlB0cjxL
ZXlmcmFtZUFuaW1hdGlvbj4ga2V5ZnJhbWVBbmltYXRpb24pCisgICAgOiBtX2tleWZyYW1lQW5p
bWF0aW9uKGtleWZyYW1lQW5pbWF0aW9uKQoreworfQorCitTdHJpbmcgV2ViS2l0QW5pbWF0aW9u
OjpuYW1lKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9rZXlmcmFtZUFuaW1hdGlvbi0+YW5pbWF0
aW9uKCktPm5hbWUoKTsKK30KKworZG91YmxlIFdlYktpdEFuaW1hdGlvbjo6c3RhcnRUaW1lKCkg
Y29uc3QKK3sKKyAgICAvLyBJbiBvdXIgY2FzZSwgc3RhcnQgdGltZSBpcyB0aGUgdGltZSB0aGUK
KyAgICAvLyBhbmltYXRpb24gd2FzIGFwcGxpZWQuIFRoaXMgZG9lcyBub3QgaW5jbHVkZQorICAg
IC8vIGRlbGF5LiBUaGUgbW9tZW50IHRoaW5ncyBzdGFydCBtb3ZpbmcgaXMKKyAgICAvLyBhcHBs
aWVkVGltZSArIGRlbGF5LgorICAgIHJldHVybiBtX2tleWZyYW1lQW5pbWF0aW9uLT5nZXRBcHBs
aWVkVGltZSgpOworfQorCitkb3VibGUgV2ViS2l0QW5pbWF0aW9uOjpkdXJhdGlvbigpIGNvbnN0
Cit7CisgICAgcmV0dXJuIG1fa2V5ZnJhbWVBbmltYXRpb24tPmR1cmF0aW9uKCk7Cit9CisKK2Rv
dWJsZSBXZWJLaXRBbmltYXRpb246OmVsYXBzZWRUaW1lKCkgY29uc3QKK3sKKyAgICByZXR1cm4g
bV9rZXlmcmFtZUFuaW1hdGlvbi0+Z2V0RWxhcHNlZFRpbWUoKTsKK30KKwordm9pZCBXZWJLaXRB
bmltYXRpb246OnNldEVsYXBzZWRUaW1lKGRvdWJsZSB0aW1lKQoreworICAgIG1fa2V5ZnJhbWVB
bmltYXRpb24tPnNldEVsYXBzZWRUaW1lKHRpbWUpOworfQorCitkb3VibGUgV2ViS2l0QW5pbWF0
aW9uOjpkZWxheSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fa2V5ZnJhbWVBbmltYXRpb24tPmFu
aW1hdGlvbigpLT5kZWxheSgpOworfQorCitpbnQgV2ViS2l0QW5pbWF0aW9uOjppdGVyYXRpb25D
b3VudCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fa2V5ZnJhbWVBbmltYXRpb24tPmFuaW1hdGlv
bigpLT5pdGVyYXRpb25Db3VudCgpOworfQorCitib29sIFdlYktpdEFuaW1hdGlvbjo6aXRlcmF0
ZXNGb3JldmVyKCkgY29uc3QKK3sKKyAgICByZXR1cm4gKG1fa2V5ZnJhbWVBbmltYXRpb24tPmFu
aW1hdGlvbigpLT5pdGVyYXRpb25Db3VudCgpID09IEFuaW1hdGlvbjo6SXRlcmF0aW9uQ291bnRJ
bmZpbml0ZSk7Cit9CisgICAgCitib29sIFdlYktpdEFuaW1hdGlvbjo6cGF1c2VkKCkgY29uc3QK
K3sKKyAgICByZXR1cm4gbV9rZXlmcmFtZUFuaW1hdGlvbi0+cGF1c2VkKCk7Cit9CisKK2Jvb2wg
V2ViS2l0QW5pbWF0aW9uOjpkZWxheWVkKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9rZXlmcmFt
ZUFuaW1hdGlvbi0+Z2V0RWxhcHNlZFRpbWUoKSA8IDAuMDsKK30KKworYm9vbCBXZWJLaXRBbmlt
YXRpb246OmZpbGxpbmcoKSBjb25zdAoreworICAgIGRvdWJsZSBjdXJyZW50RWxhcHNlZFRpbWUg
PSBtX2tleWZyYW1lQW5pbWF0aW9uLT5nZXRFbGFwc2VkVGltZSgpOworICAgIHVuc2lnbmVkIGlu
dCBmaWxsTW9kZVN0YXRlID0gbV9rZXlmcmFtZUFuaW1hdGlvbi0+YW5pbWF0aW9uKCktPmZpbGxN
b2RlKCk7CisgICAgCisgICAgLy8gV2UgYXJlIGZpbGxpbmcgaWY6CisgICAgLy8gZmlsbE1vZGUg
aXMgQm90aC9CYWNrd2FyZHMgYW5kIGN1cnJlbnRUaW1lIDwgZGVsYXkKKyAgICBpZiAoY3VycmVu
dEVsYXBzZWRUaW1lIDwgMC4wICYmIChmaWxsTW9kZVN0YXRlID09IEFuaW1hdGlvbkZpbGxNb2Rl
QmFja3dhcmRzIHx8IGZpbGxNb2RlU3RhdGUgPT0gQW5pbWF0aW9uRmlsbE1vZGVCb3RoKSkKKyAg
ICAgICAgcmV0dXJuIHRydWU7CisKKyAgICAvLyBPciBpZiBmaWxsTW9kZSBpcyBCb3RoL0Zvcndh
cmRzIGFuZCBpdGVyYXRpb25Db3VudCAqIGR1cmF0aW9uIDwgY3VycmVudFRpbWUKKyAgICBpZiAo
KGl0ZXJhdGlvbkNvdW50KCkgKiBkdXJhdGlvbigpKSA8IGN1cnJlbnRFbGFwc2VkVGltZSAmJiAo
ZmlsbE1vZGVTdGF0ZSA9PSBBbmltYXRpb25GaWxsTW9kZUZvcndhcmRzIHx8IGZpbGxNb2RlU3Rh
dGUgPT0gQW5pbWF0aW9uRmlsbE1vZGVCb3RoKSkKKyAgICAgICAgcmV0dXJuIHRydWU7CisKKyAg
ICByZXR1cm4gZmFsc2U7Cit9CisKK1dlYktpdEFuaW1hdGlvbjo6RGlyZWN0aW9uIFdlYktpdEFu
aW1hdGlvbjo6ZGlyZWN0aW9uKCkgY29uc3QKK3sKKyAgICBpZiAobV9rZXlmcmFtZUFuaW1hdGlv
bi0+YW5pbWF0aW9uKCktPmRpcmVjdGlvbigpID09IEFuaW1hdGlvbjo6QW5pbWF0aW9uRGlyZWN0
aW9uTm9ybWFsKQorICAgICAgICByZXR1cm4gRElSRUNUSU9OX05PUk1BTDsKKyAgICByZXR1cm4g
RElSRUNUSU9OX0FMVEVSTkFURTsKK30KKworV2ViS2l0QW5pbWF0aW9uOjpGaWxsTW9kZSBXZWJL
aXRBbmltYXRpb246OmZpbGxNb2RlKCkgY29uc3QKK3sKKyAgICBzd2l0Y2ggKG1fa2V5ZnJhbWVB
bmltYXRpb24tPmFuaW1hdGlvbigpLT5maWxsTW9kZSgpKSB7CisgICAgICAgIGNhc2UgQW5pbWF0
aW9uRmlsbE1vZGVOb25lOgorICAgICAgICAgICAgcmV0dXJuIEZJTExfTk9ORTsKKyAgICAgICAg
ICAgIGJyZWFrOworICAgICAgICBjYXNlIEFuaW1hdGlvbkZpbGxNb2RlRm9yd2FyZHM6CisgICAg
ICAgICAgICByZXR1cm4gRklMTF9GT1JXQVJEUzsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAg
ICBjYXNlIEFuaW1hdGlvbkZpbGxNb2RlQmFja3dhcmRzOgorICAgICAgICAgICAgcmV0dXJuIEZJ
TExfQkFDS1dBUkRTOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGRlZmF1bHQ6CisgICAg
ICAgICAgICByZXR1cm4gRklMTF9CT1RIOworICAgICAgICAgICAgYnJlYWs7CisgICAgfQorfQor
Cit2b2lkIFdlYktpdEFuaW1hdGlvbjo6cGF1c2UoKQoreworICAgIG1fa2V5ZnJhbWVBbmltYXRp
b24tPnBhdXNlKCk7Cit9CisKK3ZvaWQgV2ViS2l0QW5pbWF0aW9uOjpwbGF5KCkKK3sKKyAgICBt
X2tleWZyYW1lQW5pbWF0aW9uLT5wbGF5KCk7Cit9CisgICAgCit9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9XZWJLaXRBbmltYXRpb24uaCBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvYW5pbWF0aW9uL1dlYktpdEFuaW1hdGlvbi5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAuLjczNGJhMTcKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL2FuaW1hdGlvbi9XZWJLaXRBbmltYXRpb24uaApAQCAtMCwwICsxLDg1IEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDExIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVS
LCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIs
IElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQg
T0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisg
KiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisg
Ki8KKworI2lmbmRlZiBXZWJLaXRBbmltYXRpb25faAorI2RlZmluZSBXZWJLaXRBbmltYXRpb25f
aAorCisjaW5jbHVkZSAiQW5pbWF0aW9uLmgiCisjaW5jbHVkZSAiQW5pbWF0aW9uQmFzZS5oIgor
I2luY2x1ZGUgIktleWZyYW1lQW5pbWF0aW9uLmgiCisjaW5jbHVkZSAiUmVuZGVyU3R5bGUuaCIK
KworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBXZWJLaXRBbmltYXRpb24gOiBwdWJsaWMg
UmVmQ291bnRlZDxXZWJLaXRBbmltYXRpb24+eworcHVibGljOgorCisgICAgc3RhdGljIFBhc3NS
ZWZQdHI8V2ViS2l0QW5pbWF0aW9uPiBjcmVhdGUoUGFzc1JlZlB0cjxLZXlmcmFtZUFuaW1hdGlv
bj4ga2V5ZnJhbWVBbmltYXRpb24pCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3
IFdlYktpdEFuaW1hdGlvbihrZXlmcmFtZUFuaW1hdGlvbikpOworICAgIH0KKyAgICAKKyAgICB2
aXJ0dWFsIH5XZWJLaXRBbmltYXRpb24oKSB7IH0KKyAgICAKKyAgICAvLyBET00gQVBJCisgICAg
CisgICAgU3RyaW5nIG5hbWUoKSBjb25zdDsKKworICAgIGRvdWJsZSBzdGFydFRpbWUoKSBjb25z
dDsKKyAgICBkb3VibGUgZHVyYXRpb24oKSBjb25zdDsKKworICAgIGRvdWJsZSBlbGFwc2VkVGlt
ZSgpIGNvbnN0OworICAgIHZvaWQgc2V0RWxhcHNlZFRpbWUoZG91YmxlKTsKKworICAgIGRvdWJs
ZSBkZWxheSgpIGNvbnN0OworICAgIGludCBpdGVyYXRpb25Db3VudCgpIGNvbnN0OworICAgIGJv
b2wgaXRlcmF0ZXNGb3JldmVyKCkgY29uc3Q7CisgICAgCisgICAgYm9vbCBwYXVzZWQoKSBjb25z
dDsKKyAgICBib29sIGRlbGF5ZWQoKSBjb25zdDsKKyAgICBib29sIGZpbGxpbmcoKSBjb25zdDsK
KworICAgIC8vIGRpcmVjdGlvbgorICAgIGVudW0gRGlyZWN0aW9uIHsgRElSRUNUSU9OX05PUk1B
TCwgRElSRUNUSU9OX0FMVEVSTkFURSB9OworICAgIERpcmVjdGlvbiBkaXJlY3Rpb24oKSBjb25z
dDsKKworICAgIC8vIGZpbGwgbW9kZQorICAgIGVudW0gRmlsbE1vZGUgeyBGSUxMX05PTkUsIEZJ
TExfQkFDS1dBUkRTLCBGSUxMX0ZPUldBUkRTLCBGSUxMX0JPVEggfTsKKyAgICBGaWxsTW9kZSBm
aWxsTW9kZSgpIGNvbnN0OworICAgIAorICAgIHZvaWQgcGxheSgpOworICAgIHZvaWQgcGF1c2Uo
KTsKKworcHJvdGVjdGVkOgorICAgIFdlYktpdEFuaW1hdGlvbihQYXNzUmVmUHRyPEtleWZyYW1l
QW5pbWF0aW9uPik7CisKK3ByaXZhdGU6CisgICAgCisgICAgUmVmUHRyPEtleWZyYW1lQW5pbWF0
aW9uPiBtX2tleWZyYW1lQW5pbWF0aW9uOworfTsKKworfSAvL25hbWVzcGFjZQorCisjZW5kaWYK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL1dlYktpdEFuaW1hdGlv
bi5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9XZWJLaXRBbmltYXRpb24uaWRs
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjIzZjQ5ZjcKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9XZWJLaXRBbmltYXRpb24uaWRs
CkBAIC0wLDAgKzEsNjMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICogMy4gIE5laXRoZXIgdGhl
IG5hbWUgb2YgQXBwbGUgQ29tcHV0ZXIsIEluYy4gKCJBcHBsZSIpIG5vciB0aGUgbmFtZXMgb2YK
KyAqICAgICBpdHMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90
ZSBwcm9kdWN0cyBkZXJpdmVkCisgKiAgICAgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3Bl
Y2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCisg
KiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5Z
CisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
IENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5ECisgKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCisg
KiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKK21vZHVsZSBodG1sIHsKKworICAgIGludGVyZmFjZSBXZWJLaXRB
bmltYXRpb24geworCisgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgbmFtZTsK
KyAgICAgICAgLy9yZWFkb25seSBhdHRyaWJ1dGUgV2ViS2l0Q1NTS2V5ZnJhbWVzUnVsZSBrZXlm
cmFtZXNSdWxlOworICAgICAgICAvL3JlYWRvbmx5IGF0dHJpYnV0ZSBFbGVtZW50IGVsZW1lbnQ7
CisgICAgICAgIAorICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgZmxvYXQgc3RhcnRUaW1lOwor
ICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgZmxvYXQgZHVyYXRpb247CisgICAgICAgIGF0dHJp
YnV0ZSBmbG9hdCBlbGFwc2VkVGltZTsKKyAgICAgICAgCisgICAgICAgIHJlYWRvbmx5IGF0dHJp
YnV0ZSBmbG9hdCBkZWxheTsKKyAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIGludCBpdGVyYXRp
b25Db3VudDsKKyAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIGJvb2xlYW4gaXRlcmF0ZXNGb3Jl
dmVyOworCisgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBib29sZWFuIHBhdXNlZDsKKyAgICAg
ICAgcmVhZG9ubHkgYXR0cmlidXRlIGJvb2xlYW4gZGVsYXllZDsKKyAgICAgICAgcmVhZG9ubHkg
YXR0cmlidXRlIGJvb2xlYW4gZmlsbGluZzsKKyAgICAgICAgCisgICAgICAgIGNvbnN0IHVuc2ln
bmVkIHNob3J0IERJUkVDVElPTl9OT1JNQUwgPSAwOworICAgICAgICBjb25zdCB1bnNpZ25lZCBz
aG9ydCBESVJFQ1RJT05fQUxURVJOQVRFID0gMTsKKyAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRl
IHVuc2lnbmVkIHNob3J0IGRpcmVjdGlvbjsKKyAgICAgICAgCisgICAgICAgIGNvbnN0IHVuc2ln
bmVkIHNob3J0IEZJTExfTk9ORSA9IDA7CisgICAgICAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IEZJ
TExfQkFDS1dBUkRTID0gMTsKKyAgICAgICAgY29uc3QgdW5zaWduZWQgc2hvcnQgRklMTF9GT1JX
QVJEUyA9IDI7CisgICAgICAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IEZJTExfQk9USCA9IDM7Cisg
ICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnNpZ25lZCBzaG9ydCBmaWxsTW9kZTsKKyAgICAg
ICAgCisgICAgICAgIHZvaWQgcGxheSgpOworICAgICAgICB2b2lkIHBhdXNlKCk7CisgICAgfTsK
KworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vV2ViS2l0QW5p
bWF0aW9uTGlzdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9XZWJLaXRBbmlt
YXRpb25MaXN0LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kNWNiNzYw
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vV2ViS2l0
QW5pbWF0aW9uTGlzdC5jcHAKQEAgLTAsMCArMSw4NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAxMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBgYEFTIElTJycg
QU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCisgKiBDT05U
UklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVT
SU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICog
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpbmNsdWRlICJj
b25maWcuaCIKKyNpbmNsdWRlICJXZWJLaXRBbmltYXRpb25MaXN0LmgiCisKKyNpbmNsdWRlICJB
bmltYXRpb24uaCIKKyNpbmNsdWRlICJBbmltYXRpb25CYXNlLmgiCisjaW5jbHVkZSAiUmVuZGVy
U3R5bGUuaCIKKyNpbmNsdWRlICJXZWJLaXRBbmltYXRpb24uaCIKKworbmFtZXNwYWNlIFdlYkNv
cmUgeworICAgIAorV2ViS2l0QW5pbWF0aW9uTGlzdDo6V2ViS2l0QW5pbWF0aW9uTGlzdCgpCit7
Cit9CisKK1dlYktpdEFuaW1hdGlvbkxpc3Q6On5XZWJLaXRBbmltYXRpb25MaXN0KCkKK3sKK30K
KwordW5zaWduZWQgV2ViS2l0QW5pbWF0aW9uTGlzdDo6bGVuZ3RoKCkgY29uc3QKK3sKKyAgICBy
ZXR1cm4gbV9hbmltYXRpb25zLnNpemUoKTsKK30KKworV2ViS2l0QW5pbWF0aW9uKiBXZWJLaXRB
bmltYXRpb25MaXN0OjppdGVtKHVuc2lnbmVkIGluZGV4KQoreworICAgIGlmIChpbmRleCA8IG1f
YW5pbWF0aW9ucy5zaXplKCkpCisgICAgICAgIHJldHVybiBtX2FuaW1hdGlvbnNbaW5kZXhdLmdl
dCgpOworICAgIHJldHVybiAwOworfQorCit2b2lkIFdlYktpdEFuaW1hdGlvbkxpc3Q6OmRlbGV0
ZUFuaW1hdGlvbih1bnNpZ25lZCBpbmRleCkKK3sKKyAgICBpZiAoaW5kZXggPj0gbV9hbmltYXRp
b25zLnNpemUoKSkgeworICAgICAgICByZXR1cm47CisgICAgfQorICAgIAorICAgIG1fYW5pbWF0
aW9ucy5yZW1vdmUoaW5kZXgpOworfQorCit2b2lkIFdlYktpdEFuaW1hdGlvbkxpc3Q6OmFwcGVu
ZChSZWZQdHI8V2ViS2l0QW5pbWF0aW9uPiBhbmltYXRpb24pCit7CisgICAgbV9hbmltYXRpb25z
LmFwcGVuZChhbmltYXRpb24pOworfQorCit1bnNpZ25lZCBXZWJLaXRBbmltYXRpb25MaXN0Ojpp
bnNlcnRBbmltYXRpb24oUmVmUHRyPFdlYktpdEFuaW1hdGlvbj4gYW5pbWF0aW9uLCB1bnNpZ25l
ZCBpbmRleCkKK3sKKyAgICBpZiAoIWFuaW1hdGlvbikgeworICAgICAgICByZXR1cm4gMDsKKyAg
ICB9CisgICAgCisgICAgaWYgKGluZGV4ID4gbV9hbmltYXRpb25zLnNpemUoKSkgeworICAgICAg
ICByZXR1cm4gMDsKKyAgICB9CisgICAgCisgICAgbV9hbmltYXRpb25zLmluc2VydChpbmRleCwg
YW5pbWF0aW9uKTsKKyAgICByZXR1cm4gaW5kZXg7Cit9CisgICAgCit9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCisKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL1dlYktp
dEFuaW1hdGlvbkxpc3QuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL1dlYktpdEFu
aW1hdGlvbkxpc3QuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xOTg1Mjhj
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vV2ViS2l0
QW5pbWF0aW9uTGlzdC5oCkBAIC0wLDAgKzEsNjEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFO
RCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgorICogQ09OVFJJ
QlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lO
RVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaWZuZGVmIFdlYktp
dEFuaW1hdGlvbkxpc3RfaAorI2RlZmluZSBXZWJLaXRBbmltYXRpb25MaXN0X2gKKworI2luY2x1
ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CisjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KKyNpbmNs
dWRlIDx3dGYvUmVmUHRyLmg+CisjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgorCituYW1lc3BhY2Ug
V2ViQ29yZSB7CisgICAgCitjbGFzcyBXZWJLaXRBbmltYXRpb247CisKK2NsYXNzIFdlYktpdEFu
aW1hdGlvbkxpc3QgOiBwdWJsaWMgUmVmQ291bnRlZDxXZWJLaXRBbmltYXRpb25MaXN0PiB7Citw
dWJsaWM6CisgICAgc3RhdGljIFBhc3NSZWZQdHI8V2ViS2l0QW5pbWF0aW9uTGlzdD4gY3JlYXRl
KCkKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgV2ViS2l0QW5pbWF0aW9uTGlz
dCgpKTsKKyAgICB9CisgICAgfldlYktpdEFuaW1hdGlvbkxpc3QoKTsKKyAgICAKKyAgICB1bnNp
Z25lZCBsZW5ndGgoKSBjb25zdDsKKyAgICBXZWJLaXRBbmltYXRpb24qIGl0ZW0odW5zaWduZWQg
aW5kZXgpOworICAgIAorICAgIHVuc2lnbmVkIGluc2VydEFuaW1hdGlvbihSZWZQdHI8V2ViS2l0
QW5pbWF0aW9uPiwgdW5zaWduZWQgaW5kZXgpOworICAgIHZvaWQgZGVsZXRlQW5pbWF0aW9uKHVu
c2lnbmVkIGluZGV4KTsKKyAgICB2b2lkIGFwcGVuZChSZWZQdHI8V2ViS2l0QW5pbWF0aW9uPik7
CisgICAgCitwcml2YXRlOgorICAgIFdlYktpdEFuaW1hdGlvbkxpc3QoKTsKKyAgICAKKyAgICBW
ZWN0b3I8UmVmUHRyPFdlYktpdEFuaW1hdGlvbj4gPiBtX2FuaW1hdGlvbnM7Cit9OworICAgIAor
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gV2ViS2l0QW5pbWF0aW9uTGlzdF9o
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9XZWJLaXRBbmltYXRp
b25MaXN0LmlkbCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL1dlYktpdEFuaW1hdGlv
bkxpc3QuaWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjRjMzc2ZTYKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9XZWJLaXRBbmlt
YXRpb25MaXN0LmlkbApAQCAtMCwwICsxLDM2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEx
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQg
QU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKKyAqIENPTlRSSUJV
VE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVT
UyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQK
KyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworbW9kdWxlIGh0bWwgewor
CisgICAgaW50ZXJmYWNlIFsKKyAgICAgICAgQ3VzdG9tTWFya0Z1bmN0aW9uLAorICAgICAgICBI
YXNJbmRleEdldHRlcgorICAgIF0gV2ViS2l0QW5pbWF0aW9uTGlzdCB7CisgICAgICAgIHJlYWRv
bmx5IGF0dHJpYnV0ZSB1bnNpZ25lZCBsb25nIGxlbmd0aDsKKyAgICAgICAgV2ViS2l0QW5pbWF0
aW9uIGl0ZW0oaW4gdW5zaWduZWQgbG9uZyBpbmRleCk7CisgICAgfTsKKworfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNwcAppbmRleCBkODRmY2QwLi4wMzhlOTQ4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNwcApAQCAtNTcsNiArNTcs
NyBAQAogI2luY2x1ZGUgIlJlbmRlclRoZW1lLmgiCiAjaW5jbHVkZSAiUmVuZGVyVmlldy5oIgog
I2luY2x1ZGUgIlRyYW5zZm9ybVN0YXRlLmgiCisjaW5jbHVkZSAiV2ViS2l0QW5pbWF0aW9uTGlz
dC5oIgogI2luY2x1ZGUgImh0bWxlZGl0aW5nLmgiCiAjaW5jbHVkZSA8YWxnb3JpdGhtPgogI2lu
Y2x1ZGUgPHN0ZGlvLmg+CkBAIC0yNTg1LDYgKzI1ODYsMTQgQEAgQW5pbWF0aW9uQ29udHJvbGxl
ciogUmVuZGVyT2JqZWN0OjphbmltYXRpb24oKSBjb25zdAogICAgIHJldHVybiBmcmFtZSgpLT5h
bmltYXRpb24oKTsKIH0KIAorUGFzc1JlZlB0cjxXZWJLaXRBbmltYXRpb25MaXN0PiBSZW5kZXJP
YmplY3Q6OmFuaW1hdGlvbnMoKQoreworICAgIEFuaW1hdGlvbkNvbnRyb2xsZXIqIGFuaW1Db250
cm9sbGVyID0gYW5pbWF0aW9uKCk7CisgICAgaWYgKCFhbmltQ29udHJvbGxlcikKKyAgICAgICAg
cmV0dXJuIDA7CisgICAgcmV0dXJuIGFuaW1Db250cm9sbGVyLT5hbmltYXRpb25zRm9yUmVuZGVy
ZXIodGhpcyk7Cit9CisKIHZvaWQgUmVuZGVyT2JqZWN0OjppbWFnZUNoYW5nZWQoQ2FjaGVkSW1h
Z2UqIGltYWdlLCBjb25zdCBJbnRSZWN0KiByZWN0KQogewogICAgIGltYWdlQ2hhbmdlZChzdGF0
aWNfY2FzdDxXcmFwcGVkSW1hZ2VQdHI+KGltYWdlKSwgcmVjdCk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyT2JqZWN0LmgKaW5kZXggNDNlNmJlYS4uZjE5OGUxMSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuaApAQCAtNTksNiArNTksNyBAQCBjbGFzcyBSZW5k
ZXJMYXllcjsKIGNsYXNzIFJlbmRlclRoZW1lOwogY2xhc3MgVHJhbnNmb3JtU3RhdGU7CiBjbGFz
cyBWaXNpYmxlUG9zaXRpb247CitjbGFzcyBXZWJLaXRBbmltYXRpb25MaXN0OwogI2lmIEVOQUJM
RShTVkcpCiBjbGFzcyBSZW5kZXJTVkdSZXNvdXJjZUNvbnRhaW5lcjsKICNlbmRpZgpAQCAtNzQ5
LDYgKzc1MCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHJlbW92ZSgpIHsgaWYgKHBhcmVudCgpKSBw
YXJlbnQoKS0+cmVtb3ZlQ2hpbGQodGhpcyk7IH0KIAogICAgIEFuaW1hdGlvbkNvbnRyb2xsZXIq
IGFuaW1hdGlvbigpIGNvbnN0OworICAgIFBhc3NSZWZQdHI8V2ViS2l0QW5pbWF0aW9uTGlzdD4g
YW5pbWF0aW9ucygpOwogCiAgICAgYm9vbCB2aXNpYmxlVG9IaXRUZXN0aW5nKCkgY29uc3QgeyBy
ZXR1cm4gc3R5bGUoKS0+dmlzaWJpbGl0eSgpID09IFZJU0lCTEUgJiYgc3R5bGUoKS0+cG9pbnRl
ckV2ZW50cygpICE9IFBFX05PTkU7IH0KIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>84828</attachid>
            <date>2011-03-04 16:37:37 -0800</date>
            <delta_ts>2011-03-09 16:00:21 -0800</delta_ts>
            <desc>Another WIP patch</desc>
            <filename>anim.patch</filename>
            <type>text/plain</type>
            <size>75446</size>
            <attacher name="Dean Jackson">dino</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UgYi9Tb3VyY2Uv
V2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCmluZGV4IGUzMzRmMTEuLjA2MmQ1YWQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKKysrIGIvU291cmNlL1dl
YkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQpAQCAtNDAsNiArNDAsNyBAQCBWUEFUSCA9IFwKICAg
ICAkKFdlYkNvcmUpL2xvYWRlci9hcHBjYWNoZSBcCiAgICAgJChXZWJDb3JlKS9ub3RpZmljYXRp
b25zIFwKICAgICAkKFdlYkNvcmUpL3BhZ2UgXAorICAgICQoV2ViQ29yZSkvcGFnZS9hbmltYXRp
b24gXAogICAgICQoV2ViQ29yZSkvcGx1Z2lucyBcCiAgICAgJChXZWJDb3JlKS9zdG9yYWdlIFwK
ICAgICAkKFdlYkNvcmUpL3htbCBcCkBAIC01MDYsNyArNTA3LDkgQEAgRE9NX0NMQVNTRVMgPSBc
CiAgICAgVHJlZVdhbGtlciBcCiAgICAgVUlFdmVudCBcCiAgICAgVmFsaWRpdHlTdGF0ZSBcCisg
ICAgV2ViS2l0QW5pbWF0aW9uIFwKICAgICBXZWJLaXRBbmltYXRpb25FdmVudCBcCisgICAgV2Vi
S2l0QW5pbWF0aW9uTGlzdCBcCiAgICAgV2ViS2l0Q1NTS2V5ZnJhbWVSdWxlIFwKICAgICBXZWJL
aXRDU1NLZXlmcmFtZXNSdWxlIFwKICAgICBXZWJLaXRDU1NNYXRyaXggXApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDQxNjM0ZjAu
LjhmZTIyYTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oKQEAgLTc2OSw2ICs3NjksMTkgQEAKIAkJMzE2RkUxMTgwRTZFMURBNzAwQkY2
MDg4IC8qIEltcGxpY2l0QW5pbWF0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAzMTZGRTEwRTBFNkUxREE3MDBCRjYwODggLyogSW1wbGljaXRBbmlt
YXRpb24uaCAqLzsgfTsKIAkJMzE2RkUxMTkwRTZFMURBNzAwQkY2MDg4IC8qIEtleWZyYW1lQW5p
bWF0aW9uLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDMxNkZFMTBGMEU2RTFEQTcwMEJGNjA4OCAvKiBLZXlmcmFtZUFuaW1hdGlvbi5jcHAgKi87IH07
CiAJCTMxNkZFMTFBMEU2RTFEQTcwMEJGNjA4OCAvKiBLZXlmcmFtZUFuaW1hdGlvbi5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzE2RkUxMTAwRTZFMURB
NzAwQkY2MDg4IC8qIEtleWZyYW1lQW5pbWF0aW9uLmggKi87IH07CisJCTMxOTQ2MTQ4MTMwMUYy
QTMwMDRCQjNGOCAvKiBXZWJLaXRBbmltYXRpb24uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzE5NDYxNDYxMzAxRjJBMzAwNEJCM0Y4IC8qIFdlYktp
dEFuaW1hdGlvbi5jcHAgKi87IH07CisJCTMxOTQ2MTQ5MTMwMUYyQTMwMDRCQjNGOCAvKiBXZWJL
aXRBbmltYXRpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDMxOTQ2MTQ3MTMwMUYyQTMwMDRCQjNGOCAvKiBXZWJLaXRBbmltYXRpb24uaCAqLzsgfTsK
KwkJMzE5NDYxNjIxMzAyMEIyMDAwNEJCM0Y4IC8qIEpTV2ViS2l0QW5pbWF0aW9uLmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMxOTQ2MTYwMTMwMjBC
MjAwMDRCQjNGOCAvKiBKU1dlYktpdEFuaW1hdGlvbi5jcHAgKi87IH07CisJCTMxOTQ2MTYzMTMw
MjBCMjAwMDRCQjNGOCAvKiBKU1dlYktpdEFuaW1hdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzE5NDYxNjExMzAyMEIyMDAwNEJCM0Y4IC8qIEpT
V2ViS2l0QW5pbWF0aW9uLmggKi87IH07CisJCTMxOTQ2MTZBMTMwMjBCNjYwMDRCQjNGOCAvKiBE
T01XZWJLaXRBbmltYXRpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDMxOTQ2MTY4MTMwMjBCNjYwMDRCQjNGOCAvKiBET01XZWJLaXRBbmltYXRpb24u
aCAqLzsgfTsKKwkJMzE5NDYxNkIxMzAyMEI2NjAwNEJCM0Y4IC8qIERPTVdlYktpdEFuaW1hdGlv
bi5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMxOTQ2
MTY5MTMwMjBCNjYwMDRCQjNGOCAvKiBET01XZWJLaXRBbmltYXRpb24ubW0gKi87IH07CisJCTMx
OTQ2MThGMTMwMjEwNjQwMDRCQjNGOCAvKiBXZWJLaXRBbmltYXRpb25MaXN0LmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMTk0NjE4RDEzMDIxMDY0MDA0
QkIzRjggLyogV2ViS2l0QW5pbWF0aW9uTGlzdC5oICovOyB9OworCQkzMTk0NjE5MDEzMDIxMDY0
MDA0QkIzRjggLyogV2ViS2l0QW5pbWF0aW9uTGlzdC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMTk0NjE4RTEzMDIxMDY0MDA0QkIzRjggLyogV2Vi
S2l0QW5pbWF0aW9uTGlzdC5jcHAgKi87IH07CisJCTMxOTQ2MUZFMTMwMjJCQjgwMDRCQjNGOCAv
KiBKU1dlYktpdEFuaW1hdGlvbkxpc3QuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gMzE5NDYxRkMxMzAyMkJCODAwNEJCM0Y4IC8qIEpTV2ViS2l0QW5p
bWF0aW9uTGlzdC5jcHAgKi87IH07CisJCTMxOTQ2MUZGMTMwMjJCQjgwMDRCQjNGOCAvKiBKU1dl
YktpdEFuaW1hdGlvbkxpc3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDMxOTQ2MUZEMTMwMjJCQjgwMDRCQjNGOCAvKiBKU1dlYktpdEFuaW1hdGlvbkxp
c3QuaCAqLzsgfTsKKwkJMzE5NDYyMDQxMzAyMkJGMTAwNEJCM0Y4IC8qIERPTVdlYktpdEFuaW1h
dGlvbkxpc3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDMxOTQ2MjAyMTMwMjJCRjEwMDRCQjNGOCAvKiBET01XZWJLaXRBbmltYXRpb25MaXN0LmggKi87
IH07CisJCTMxOTQ2MjA1MTMwMjJCRjEwMDRCQjNGOCAvKiBET01XZWJLaXRBbmltYXRpb25MaXN0
Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzE5NDYy
MDMxMzAyMkJGMTAwNEJCM0Y4IC8qIERPTVdlYktpdEFuaW1hdGlvbkxpc3QubW0gKi87IH07CisJ
CTMxOTQ2MjMyMTMwMjJGNjUwMDRCQjNGOCAvKiBKU1dlYktpdEFuaW1hdGlvbkxpc3RDdXN0b20u
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzE5NDYy
MzExMzAyMkY2NTAwNEJCM0Y4IC8qIEpTV2ViS2l0QW5pbWF0aW9uTGlzdEN1c3RvbS5jcHAgKi87
IH07CiAJCTMxQzBGRjIxMEU0Q0VCNkUwMDdENkZFNSAvKiBXZWJLaXRBbmltYXRpb25FdmVudC5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMUMwRkYx
QjBFNENFQjZFMDA3RDZGRTUgLyogV2ViS2l0QW5pbWF0aW9uRXZlbnQuY3BwICovOyB9OwogCQkz
MUMwRkYyMjBFNENFQjZFMDA3RDZGRTUgLyogV2ViS2l0QW5pbWF0aW9uRXZlbnQuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMxQzBGRjFDMEU0Q0VCNkUw
MDdENkZFNSAvKiBXZWJLaXRBbmltYXRpb25FdmVudC5oICovOyB9OwogCQkzMUMwRkYyNDBFNENF
QjZFMDA3RDZGRTUgLyogV2ViS2l0VHJhbnNpdGlvbkV2ZW50LmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMxQzBGRjFFMEU0Q0VCNkUwMDdENkZFNSAv
KiBXZWJLaXRUcmFuc2l0aW9uRXZlbnQuY3BwICovOyB9OwpAQCAtNzEzNyw2ICs3MTUwLDIxIEBA
CiAJCTMxNkZFMTBFMEU2RTFEQTcwMEJGNjA4OCAvKiBJbXBsaWNpdEFuaW1hdGlvbi5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBJbXBsaWNpdEFuaW1hdGlvbi5oOyBwYXRoID0g
YW5pbWF0aW9uL0ltcGxpY2l0QW5pbWF0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTMxNkZFMTBGMEU2RTFEQTcwMEJGNjA4OCAvKiBLZXlmcmFtZUFuaW1hdGlvbi5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBLZXlmcmFtZUFuaW1hdGlvbi5jcHA7
IHBhdGggPSBhbmltYXRpb24vS2V5ZnJhbWVBbmltYXRpb24uY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQkzMTZGRTExMDBFNkUxREE3MDBCRjYwODggLyogS2V5ZnJhbWVBbmltYXRp
b24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gS2V5ZnJhbWVBbmltYXRpb24u
aDsgcGF0aCA9IGFuaW1hdGlvbi9LZXlmcmFtZUFuaW1hdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQkzMTk0NjEzODEzMDFFRjRDMDA0QkIzRjggLyogV2ViS2l0QW5pbWF0aW9u
LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHRleHQ7IG5hbWUgPSBXZWJLaXRBbmltYXRpb24uaWRsOyBwYXRoID0g
YW5pbWF0aW9uL1dlYktpdEFuaW1hdGlvbi5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCTMxOTQ2MTQ2MTMwMUYyQTMwMDRCQjNGOCAvKiBXZWJLaXRBbmltYXRpb24uY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gV2ViS2l0QW5pbWF0aW9uLmNwcDsgcGF0
aCA9IGFuaW1hdGlvbi9XZWJLaXRBbmltYXRpb24uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQkzMTk0NjE0NzEzMDFGMkEzMDA0QkIzRjggLyogV2ViS2l0QW5pbWF0aW9uLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFdlYktpdEFuaW1hdGlvbi5oOyBwYXRoID0g
YW5pbWF0aW9uL1dlYktpdEFuaW1hdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQkzMTk0NjE2MDEzMDIwQjIwMDA0QkIzRjggLyogSlNXZWJLaXRBbmltYXRpb24uY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNXZWJLaXRBbmltYXRpb24uY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkzMTk0NjE2MTEzMDIwQjIwMDA0QkIzRjggLyog
SlNXZWJLaXRBbmltYXRpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNX
ZWJLaXRBbmltYXRpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMzE5NDYxNjgx
MzAyMEI2NjAwNEJCM0Y4IC8qIERPTVdlYktpdEFuaW1hdGlvbi5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBET01XZWJLaXRBbmltYXRpb24uaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJMzE5NDYxNjkxMzAyMEI2NjAwNEJCM0Y4IC8qIERPTVdlYktpdEFuaW1hdGlv
bi5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IERPTVdlYktpdEFu
aW1hdGlvbi5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMzE5NDYxNzgxMzAyMTAw
ODAwNEJCM0Y4IC8qIFdlYktpdEFuaW1hdGlvbkxpc3QuaWRsICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgbmFt
ZSA9IFdlYktpdEFuaW1hdGlvbkxpc3QuaWRsOyBwYXRoID0gYW5pbWF0aW9uL1dlYktpdEFuaW1h
dGlvbkxpc3QuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkzMTk0NjE4RDEzMDIx
MDY0MDA0QkIzRjggLyogV2ViS2l0QW5pbWF0aW9uTGlzdC5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IG5hbWUgPSBXZWJLaXRBbmltYXRpb25MaXN0Lmg7IHBhdGggPSBhbmltYXRpb24vV2Vi
S2l0QW5pbWF0aW9uTGlzdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkzMTk0NjE4
RTEzMDIxMDY0MDA0QkIzRjggLyogV2ViS2l0QW5pbWF0aW9uTGlzdC5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBXZWJLaXRBbmltYXRpb25MaXN0LmNwcDsgcGF0aCA9
IGFuaW1hdGlvbi9XZWJLaXRBbmltYXRpb25MaXN0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJMzE5NDYxRkMxMzAyMkJCODAwNEJCM0Y4IC8qIEpTV2ViS2l0QW5pbWF0aW9uTGlz
dC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1dlYktpdEFuaW1h
dGlvbkxpc3QuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkzMTk0NjFGRDEzMDIy
QkI4MDA0QkIzRjggLyogSlNXZWJLaXRBbmltYXRpb25MaXN0LmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IEpTV2ViS2l0QW5pbWF0aW9uTGlzdC5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQkzMTk0NjIwMjEzMDIyQkYxMDA0QkIzRjggLyogRE9NV2ViS2l0QW5pbWF0
aW9uTGlzdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBET01XZWJLaXRBbmlt
YXRpb25MaXN0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTMxOTQ2MjAzMTMwMjJC
RjEwMDRCQjNGOCAvKiBET01XZWJLaXRBbmltYXRpb25MaXN0Lm1tICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAub2JqY3BwOyBwYXRoID0gRE9NV2ViS2l0QW5pbWF0aW9uTGlzdC5tbTsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMzE5NDYyMzExMzAyMkY2NTAwNEJCM0Y4IC8qIEpTV2Vi
S2l0QW5pbWF0aW9uTGlzdEN1c3RvbS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBKU1dlYktpdEFuaW1hdGlvbkxpc3RDdXN0b20uY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQkzMUMwRkYxQjBFNENFQjZFMDA3RDZGRTUgLyogV2ViS2l0QW5pbWF0aW9u
RXZlbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViS2l0QW5p
bWF0aW9uRXZlbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkzMUMwRkYxQzBF
NENFQjZFMDA3RDZGRTUgLyogV2ViS2l0QW5pbWF0aW9uRXZlbnQuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gV2ViS2l0QW5pbWF0aW9uRXZlbnQuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJMzFDMEZGMUQwRTRDRUI2RTAwN0Q2RkU1IC8qIFdlYktpdEFuaW1hdGlv
bkV2ZW50LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBXZWJLaXRBbmltYXRpb25FdmVudC5p
ZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xMzIwNSw2ICsxMzIzMywxMiBAQAog
CQkJCTMxNkZFMTBFMEU2RTFEQTcwMEJGNjA4OCAvKiBJbXBsaWNpdEFuaW1hdGlvbi5oICovLAog
CQkJCTMxNkZFMTBGMEU2RTFEQTcwMEJGNjA4OCAvKiBLZXlmcmFtZUFuaW1hdGlvbi5jcHAgKi8s
CiAJCQkJMzE2RkUxMTAwRTZFMURBNzAwQkY2MDg4IC8qIEtleWZyYW1lQW5pbWF0aW9uLmggKi8s
CisJCQkJMzE5NDYxNDYxMzAxRjJBMzAwNEJCM0Y4IC8qIFdlYktpdEFuaW1hdGlvbi5jcHAgKi8s
CisJCQkJMzE5NDYxNDcxMzAxRjJBMzAwNEJCM0Y4IC8qIFdlYktpdEFuaW1hdGlvbi5oICovLAor
CQkJCTMxOTQ2MTM4MTMwMUVGNEMwMDRCQjNGOCAvKiBXZWJLaXRBbmltYXRpb24uaWRsICovLAor
CQkJCTMxOTQ2MThFMTMwMjEwNjQwMDRCQjNGOCAvKiBXZWJLaXRBbmltYXRpb25MaXN0LmNwcCAq
LywKKwkJCQkzMTk0NjE4RDEzMDIxMDY0MDA0QkIzRjggLyogV2ViS2l0QW5pbWF0aW9uTGlzdC5o
ICovLAorCQkJCTMxOTQ2MTc4MTMwMjEwMDgwMDRCQjNGOCAvKiBXZWJLaXRBbmltYXRpb25MaXN0
LmlkbCAqLywKIAkJCSk7CiAJCQluYW1lID0gYW5pbWF0aW9uOwogCQkJc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsKQEAgLTE0OTc1LDYgKzE1MDA5LDEwIEBACiAJCQkJODVCQTREMEEwQUE2ODg2ODAw
ODgwNTJEIC8qIERPTUhUTUxVTGlzdEVsZW1lbnQubW0gKi8sCiAJCQkJMTVDNzcwQTQxMDBENDFD
RDAwNUJBMjY3IC8qIERPTVZhbGlkaXR5U3RhdGUuaCAqLywKIAkJCQkxNUM3NzBBMzEwMEQ0MUNE
MDA1QkEyNjcgLyogRE9NVmFsaWRpdHlTdGF0ZS5tbSAqLywKKwkJCQkzMTk0NjE2ODEzMDIwQjY2
MDA0QkIzRjggLyogRE9NV2ViS2l0QW5pbWF0aW9uLmggKi8sCisJCQkJMzE5NDYxNjkxMzAyMEI2
NjAwNEJCM0Y4IC8qIERPTVdlYktpdEFuaW1hdGlvbi5tbSAqLywKKwkJCQkzMTk0NjIwMjEzMDIy
QkYxMDA0QkIzRjggLyogRE9NV2ViS2l0QW5pbWF0aW9uTGlzdC5oICovLAorCQkJCTMxOTQ2MjAz
MTMwMjJCRjEwMDRCQjNGOCAvKiBET01XZWJLaXRBbmltYXRpb25MaXN0Lm1tICovLAogCQkJKTsK
IAkJCW5hbWUgPSBIVE1MOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKQEAgLTE2MzAyLDYg
KzE2MzQwLDEwIEBACiAJCQkJMEM0NTM0MjYxMENEQkJGQTAwODY5MTU3IC8qIEpTV2ViR0xVbmlm
b3JtTG9jYXRpb24uaCAqLywKIAkJCQk3N0VGNjJGMTEyRjlEQjc0MDBDNzdCRDIgLyogSlNXZWJH
TFZlcnRleEFycmF5T2JqZWN0T0VTLmNwcCAqLywKIAkJCQk3N0VGNjJGMjEyRjlEQjc0MDBDNzdC
RDIgLyogSlNXZWJHTFZlcnRleEFycmF5T2JqZWN0T0VTLmggKi8sCisJCQkJMzE5NDYxNjAxMzAy
MEIyMDAwNEJCM0Y4IC8qIEpTV2ViS2l0QW5pbWF0aW9uLmNwcCAqLywKKwkJCQkzMTk0NjE2MTEz
MDIwQjIwMDA0QkIzRjggLyogSlNXZWJLaXRBbmltYXRpb24uaCAqLywKKwkJCQkzMTk0NjFGQzEz
MDIyQkI4MDA0QkIzRjggLyogSlNXZWJLaXRBbmltYXRpb25MaXN0LmNwcCAqLywKKwkJCQkzMTk0
NjFGRDEzMDIyQkI4MDA0QkIzRjggLyogSlNXZWJLaXRBbmltYXRpb25MaXN0LmggKi8sCiAJCQkJ
OTNGMUQ1QkUxMkQ1MzM1NjAwODMyQkVDIC8qIEpTV2ViS2l0TG9zZUNvbnRleHQuY3BwICovLAog
CQkJCTkzRjFENUJGMTJENTMzNTYwMDgzMkJFQyAvKiBKU1dlYktpdExvc2VDb250ZXh0LmggKi8s
CiAJCQkpOwpAQCAtMTgwMDEsNiArMTgwNDMsNyBAQAogCQkJCTQ5RUVDRjc2MTA1MDhEOUMwMDA5
OUZBQiAvKiBKU1VpbnQzMkFycmF5Q3VzdG9tLmNwcCAqLywKIAkJCQk0OUVFQ0Y3NTEwNTA4RDlD
MDAwOTlGQUIgLyogSlNVaW50OEFycmF5Q3VzdG9tLmNwcCAqLywKIAkJCQk0OUVFRDE0QzEwNTE5
NzFBMDAwOTlGQUIgLyogSlNXZWJHTFJlbmRlcmluZ0NvbnRleHRDdXN0b20uY3BwICovLAorCQkJ
CTMxOTQ2MjMxMTMwMjJGNjUwMDRCQjNGOCAvKiBKU1dlYktpdEFuaW1hdGlvbkxpc3RDdXN0b20u
Y3BwICovLAogCQkJCUUxQUQxNEM0MTI5NzM1NDkwMEFDQTk4OSAvKiBKU1dlYktpdENTU0tleWZy
YW1lUnVsZUN1c3RvbS5jcHAgKi8sCiAJCQkJRTFBRDE0QjQxMjk3MzRDQTAwQUNBOTg5IC8qIEpT
V2ViS2l0Q1NTS2V5ZnJhbWVzUnVsZUN1c3RvbS5jcHAgKi8sCiAJCQkJQkMyNzVCN0MxMUM1RDIz
NTAwQzkyMDZDIC8qIEpTV2ViS2l0Q1NTTWF0cml4Q3VzdG9tLmNwcCAqLywKQEAgLTIyNTE5LDYg
KzIyNTYyLDEyIEBACiAJCQkJNUE1NzRGMjkxMzFEQjk2RDAwNDcxQjg4IC8qIFF1b3Rlc0RhdGEu
aCBpbiBIZWFkZXJzICovLAogCQkJCTMzOUI1QjYzMTMxREFBMzIwMEY0OEQwMiAvKiBDb29raWVz
U3RyYXRlZ3kuaCBpbiBIZWFkZXJzICovLAogCQkJCTMzRDAyMTJEMTMxREIzN0IwMDQwOTFBOCAv
KiBDb29raWVTdG9yYWdlLmggaW4gSGVhZGVycyAqLywKKwkJCQkzMTk0NjE0OTEzMDFGMkEzMDA0
QkIzRjggLyogV2ViS2l0QW5pbWF0aW9uLmggaW4gSGVhZGVycyAqLywKKwkJCQkzMTk0NjE2MzEz
MDIwQjIwMDA0QkIzRjggLyogSlNXZWJLaXRBbmltYXRpb24uaCBpbiBIZWFkZXJzICovLAorCQkJ
CTMxOTQ2MTZBMTMwMjBCNjYwMDRCQjNGOCAvKiBET01XZWJLaXRBbmltYXRpb24uaCBpbiBIZWFk
ZXJzICovLAorCQkJCTMxOTQ2MThGMTMwMjEwNjQwMDRCQjNGOCAvKiBXZWJLaXRBbmltYXRpb25M
aXN0LmggaW4gSGVhZGVycyAqLywKKwkJCQkzMTk0NjFGRjEzMDIyQkI4MDA0QkIzRjggLyogSlNX
ZWJLaXRBbmltYXRpb25MaXN0LmggaW4gSGVhZGVycyAqLywKKwkJCQkzMTk0NjIwNDEzMDIyQkYx
MDA0QkIzRjggLyogRE9NV2ViS2l0QW5pbWF0aW9uTGlzdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkp
OwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CkBAIC0y
NTE2OCw2ICsyNTIxNywxMyBAQAogCQkJCTk3N0UyRTBFMTJGMEZDOUMwMEMxMzM3OSAvKiBYU1NG
aWx0ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNUE1NzRGMjQxMzFEQjkzOTAwNDcxQjg4IC8q
IFJlbmRlclF1b3RlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTVBNTc0RjI4MTMxREI5NkQwMDQ3
MUI4OCAvKiBRdW90ZXNEYXRhLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTMxOTQ2MTQ4MTMwMUYy
QTMwMDRCQjNGOCAvKiBXZWJLaXRBbmltYXRpb24uY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMzE5
NDYxNjIxMzAyMEIyMDAwNEJCM0Y4IC8qIEpTV2ViS2l0QW5pbWF0aW9uLmNwcCBpbiBTb3VyY2Vz
ICovLAorCQkJCTMxOTQ2MTZCMTMwMjBCNjYwMDRCQjNGOCAvKiBET01XZWJLaXRBbmltYXRpb24u
bW0gaW4gU291cmNlcyAqLywKKwkJCQkzMTk0NjE5MDEzMDIxMDY0MDA0QkIzRjggLyogV2ViS2l0
QW5pbWF0aW9uTGlzdC5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkzMTk0NjFGRTEzMDIyQkI4MDA0
QkIzRjggLyogSlNXZWJLaXRBbmltYXRpb25MaXN0LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTMx
OTQ2MjA1MTMwMjJCRjEwMDRCQjNGOCAvKiBET01XZWJLaXRBbmltYXRpb25MaXN0Lm1tIGluIFNv
dXJjZXMgKi8sCisJCQkJMzE5NDYyMzIxMzAyMkY2NTAwNEJCM0Y4IC8qIEpTV2ViS2l0QW5pbWF0
aW9uTGlzdEN1c3RvbS5jcHAgaW4gU291cmNlcyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVw
bG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTV2ViS2l0QW5pbWF0aW9uTGlzdEN1c3RvbS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dlYktpdEFuaW1hdGlvbkxpc3RDdXN0b20uY3BwCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmM4YmQ0ZDUKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dlYktpdEFuaW1hdGlvbkxpc3RDdXN0b20u
Y3BwCkBAIC0wLDAgKzEsNDcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDkgQXBwbGUgSW5j
LiBBbGwgcmlnaHQgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVY
RU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1
ZGUgIkpTV2ViS2l0QW5pbWF0aW9uTGlzdC5oIgorCisjaW5jbHVkZSAiV2ViS2l0QW5pbWF0aW9u
TGlzdC5oIgorCit1c2luZyBuYW1lc3BhY2UgSlNDOworCituYW1lc3BhY2UgV2ViQ29yZSB7Cisg
ICAgCisgICAgdm9pZCBKU1dlYktpdEFuaW1hdGlvbkxpc3Q6Om1hcmtDaGlsZHJlbihNYXJrU3Rh
Y2smIG1hcmtTdGFjaykKKyAgICB7CisgICAgICAgIEJhc2U6Om1hcmtDaGlsZHJlbihtYXJrU3Rh
Y2spOworICAgICAgICAKKyAgICAgICAgV2ViS2l0QW5pbWF0aW9uTGlzdCogbGlzdCA9IGltcGwo
KTsKKyAgICAgICAgSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhID0gKkhlYXA6OmhlYXAodGhpcykt
Pmdsb2JhbERhdGEoKTsKKyAgICAgICAgCisgICAgICAgIHVuc2lnbmVkIGxlbmd0aCA9IGxpc3Qt
Pmxlbmd0aCgpOworICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbGVuZ3RoOyArK2kp
CisgICAgICAgICAgICBtYXJrRE9NT2JqZWN0V3JhcHBlcihtYXJrU3RhY2ssIGdsb2JhbERhdGEs
IGxpc3QtPml0ZW0oaSkpOworICAgIH0KKyAgICAKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9FbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcAppbmRl
eCBhYWIwOGU4Li5iZDhjMGI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVu
dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCkBAIC01NSw2ICs1NSw3
IEBACiAjaW5jbHVkZSAiUmVuZGVyV2lkZ2V0LmgiCiAjaW5jbHVkZSAiU2V0dGluZ3MuaCIKICNp
bmNsdWRlICJUZXh0SXRlcmF0b3IuaCIKKyNpbmNsdWRlICJXZWJLaXRBbmltYXRpb25MaXN0Lmgi
CiAjaW5jbHVkZSAiWE1MTmFtZXMuaCIKICNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CiAK
QEAgLTE4NjcsNCArMTg2OCwxMiBAQCBib29sIEVsZW1lbnQ6OmlzU3BlbGxDaGVja2luZ0VuYWJs
ZWQoKSBjb25zdAogICAgIHJldHVybiB0cnVlOwogfQogCitQYXNzUmVmUHRyPFdlYktpdEFuaW1h
dGlvbkxpc3Q+IEVsZW1lbnQ6OmFuaW1hdGlvbnMoKQoreworICAgIGlmICghcmVuZGVyZXIoKSkK
KyAgICAgICAgcmV0dXJuIDA7CisgICAgCisgICAgcmV0dXJuIHJlbmRlcmVyKCktPmFuaW1hdGlv
bnMoKTsKK30KKyAgICAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9FbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5oCmlu
ZGV4IDgxODI4ZWEuLjgxNjI5MzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVt
ZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuaApAQCAtMzksNiArMzksNyBA
QCBjbGFzcyBET01TdHJpbmdNYXA7CiBjbGFzcyBET01Ub2tlbkxpc3Q7CiBjbGFzcyBFbGVtZW50
UmFyZURhdGE7CiBjbGFzcyBJbnRTaXplOworY2xhc3MgV2ViS2l0QW5pbWF0aW9uTGlzdDsKIAog
ZW51bSBTcGVsbGNoZWNrQXR0cmlidXRlU3RhdGUgewogICAgIFNwZWxsY2hlY2tBdHRyaWJ1dGVU
cnVlLApAQCAtMzQyLDYgKzM0Myw4IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgYm9vbCBpc1Nw
ZWxsQ2hlY2tpbmdFbmFibGVkKCkgY29uc3Q7CiAKKyAgICBQYXNzUmVmUHRyPFdlYktpdEFuaW1h
dGlvbkxpc3Q+IGFuaW1hdGlvbnMoKTsKKyAgICAKIHByb3RlY3RlZDoKICAgICBFbGVtZW50KGNv
bnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50KiBkb2N1bWVudCwgQ29uc3RydWN0
aW9uVHlwZSB0eXBlKQogICAgICAgICA6IENvbnRhaW5lck5vZGUoZG9jdW1lbnQsIHR5cGUpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0RPTVdpbmRvdy5jcHAKaW5kZXggMjJlYzBjYy4uMjNiMzdlMCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvRE9NV2luZG93LmNwcApAQCAtODksNiArODksOCBAQAogI2luY2x1ZGUgIlN0b3JhZ2VO
YW1lc3BhY2UuaCIKICNpbmNsdWRlICJTdHlsZU1lZGlhLmgiCiAjaW5jbHVkZSAiU3VkZGVuVGVy
bWluYXRpb24uaCIKKyNpbmNsdWRlICJXZWJLaXRBbmltYXRpb24uaCIKKyNpbmNsdWRlICJXZWJL
aXRBbmltYXRpb25MaXN0LmgiCiAjaW5jbHVkZSAiV2ViS2l0UG9pbnQuaCIKICNpbmNsdWRlICJX
aW5kb3dGZWF0dXJlcy5oIgogI2luY2x1ZGUgPGFsZ29yaXRobT4KQEAgLTEzMTEsNiArMTMxMywx
NCBAQCBQYXNzUmVmUHRyPFdlYktpdFBvaW50PiBET01XaW5kb3c6OndlYmtpdENvbnZlcnRQb2lu
dEZyb21QYWdlVG9Ob2RlKE5vZGUqIG5vZGUsCiAgICAgcmV0dXJuIFdlYktpdFBvaW50OjpjcmVh
dGUobm9kZVBvaW50LngoKSwgbm9kZVBvaW50LnkoKSk7CiB9CiAKK1Bhc3NSZWZQdHI8V2ViS2l0
QW5pbWF0aW9uTGlzdD4gRE9NV2luZG93Ojp3ZWJraXRHZXRBbmltYXRpb25zRm9yRWxlbWVudChF
bGVtZW50KiBlbGVtZW50KSBjb25zdAoreworICAgIGlmICghZWxlbWVudCkKKyAgICAgICAgcmV0
dXJuIDA7CisKKyAgICByZXR1cm4gZWxlbWVudC0+YW5pbWF0aW9ucygpOworfQorICAgIAogZG91
YmxlIERPTVdpbmRvdzo6ZGV2aWNlUGl4ZWxSYXRpbygpIGNvbnN0CiB7CiAgICAgaWYgKCFtX2Zy
YW1lKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmgKaW5kZXggYWY5ODRjOS4uOTA0ZTg5OCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL0RPTVdpbmRvdy5oCkBAIC02NCw2ICs2NCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsK
ICAgICBjbGFzcyBTZXJpYWxpemVkU2NyaXB0VmFsdWU7CiAgICAgY2xhc3MgU3RvcmFnZTsKICAg
ICBjbGFzcyBTdHlsZU1lZGlhOworICAgIGNsYXNzIFdlYktpdEFuaW1hdGlvbkxpc3Q7CiAgICAg
Y2xhc3MgV2ViS2l0UG9pbnQ7CiAKICNpZiBFTkFCTEUoUkVRVUVTVF9BTklNQVRJT05fRlJBTUUp
CkBAIC0yMTYsNiArMjE3LDggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBQYXNzUmVm
UHRyPFdlYktpdFBvaW50PiB3ZWJraXRDb252ZXJ0UG9pbnRGcm9tUGFnZVRvTm9kZShOb2RlKiwg
Y29uc3QgV2ViS2l0UG9pbnQqKSBjb25zdDsKICAgICAgICAgUGFzc1JlZlB0cjxXZWJLaXRQb2lu
dD4gd2Via2l0Q29udmVydFBvaW50RnJvbU5vZGVUb1BhZ2UoTm9kZSosIGNvbnN0IFdlYktpdFBv
aW50KikgY29uc3Q7ICAgICAgICAKIAorICAgICAgICBQYXNzUmVmUHRyPFdlYktpdEFuaW1hdGlv
bkxpc3Q+IHdlYmtpdEdldEFuaW1hdGlvbnNGb3JFbGVtZW50KEVsZW1lbnQqKSBjb25zdDsKKyAg
ICAgICAgCiAgICAgICAgIENvbnNvbGUqIGNvbnNvbGUoKSBjb25zdDsKIAogICAgICAgICB2b2lk
IHByaW50RXJyb3JNZXNzYWdlKGNvbnN0IFN0cmluZyYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGFnZS9ET01XaW5kb3cuaWRsIGIvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cu
aWRsCmluZGV4IGE5NDhhMDEuLjQ4MzdkZDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvRE9NV2luZG93LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5pZGwK
QEAgLTE2MSw2ICsxNjEsOCBAQCBtb2R1bGUgd2luZG93IHsKICAgICAgICAgV2ViS2l0UG9pbnQg
d2Via2l0Q29udmVydFBvaW50RnJvbVBhZ2VUb05vZGUoaW4gTm9kZSBub2RlLCBpbiBXZWJLaXRQ
b2ludCBwKTsKICAgICAgICAgV2ViS2l0UG9pbnQgd2Via2l0Q29udmVydFBvaW50RnJvbU5vZGVU
b1BhZ2UoaW4gTm9kZSBub2RlLCBpbiBXZWJLaXRQb2ludCBwKTsKIAorICAgICAgICBXZWJLaXRB
bmltYXRpb25MaXN0IHdlYmtpdEdldEFuaW1hdGlvbnNGb3JFbGVtZW50KGluIEVsZW1lbnQgZWxl
bWVudCk7CisKICNpZiBkZWZpbmVkKEVOQUJMRV9PRkZMSU5FX1dFQl9BUFBMSUNBVElPTlMpICYm
IEVOQUJMRV9PRkZMSU5FX1dFQl9BUFBMSUNBVElPTlMKICAgICAgICAgcmVhZG9ubHkgYXR0cmli
dXRlIFtFbmFibGVkQXRSdW50aW1lXSBET01BcHBsaWNhdGlvbkNhY2hlIGFwcGxpY2F0aW9uQ2Fj
aGU7CiAjZW5kaWYgICAgCkBAIC02MDUsNiArNjA3LDkgQEAgbW9kdWxlIHdpbmRvdyB7CiAgICAg
ICAgIGF0dHJpYnV0ZSBbQ29uZGl0aW9uYWw9VklERU8sIEVuYWJsZWRBdFJ1bnRpbWVdIE1lZGlh
RXJyb3JDb25zdHJ1Y3RvciBNZWRpYUVycm9yOwogICAgICAgICBhdHRyaWJ1dGUgW0NvbmRpdGlv
bmFsPVZJREVPLCBFbmFibGVkQXRSdW50aW1lXSBUaW1lUmFuZ2VzQ29uc3RydWN0b3IgVGltZVJh
bmdlczsKIAorICAgICAgICBhdHRyaWJ1dGUgV2ViS2l0QW5pbWF0aW9uQ29uc3RydWN0b3IgV2Vi
S2l0QW5pbWF0aW9uOworICAgICAgICBhdHRyaWJ1dGUgV2ViS2l0QW5pbWF0aW9uTGlzdENvbnN0
cnVjdG9yIFdlYktpdEFuaW1hdGlvbkxpc3Q7CisKICNpZiBkZWZpbmVkKEVOQUJMRV9YUEFUSCkg
JiYgRU5BQkxFX1hQQVRICiAgICAgICAgIGF0dHJpYnV0ZSBYUGF0aEV2YWx1YXRvckNvbnN0cnVj
dG9yIFhQYXRoRXZhbHVhdG9yOwogICAgICAgICBhdHRyaWJ1dGUgWFBhdGhSZXN1bHRDb25zdHJ1
Y3RvciBYUGF0aFJlc3VsdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0
aW9uL0FuaW1hdGlvbkJhc2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vQW5p
bWF0aW9uQmFzZS5jcHAKaW5kZXggOWE5MDZlMi4uMGEyNzdjNyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGFnZS9hbmltYXRpb24vQW5pbWF0aW9uQmFzZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9hbmltYXRpb24vQW5pbWF0aW9uQmFzZS5jcHAKQEAgLTc4OSw4ICs3ODksMTEg
QEAgc3RhdGljIFByb3BlcnR5V3JhcHBlckJhc2UqIHdyYXBwZXJGb3JQcm9wZXJ0eShpbnQgcHJv
cGVydHlJRCkKIEFuaW1hdGlvbkJhc2U6OkFuaW1hdGlvbkJhc2UoY29uc3QgQW5pbWF0aW9uKiB0
cmFuc2l0aW9uLCBSZW5kZXJPYmplY3QqIHJlbmRlcmVyLCBDb21wb3NpdGVBbmltYXRpb24qIGNv
bXBBbmltKQogICAgIDogbV9hbmltU3RhdGUoQW5pbWF0aW9uU3RhdGVOZXcpCiAgICAgLCBtX2lz
QW5pbWF0aW5nKGZhbHNlKQorICAgICwgbV9hcHBsaWVkVGltZShjdXJyZW50VGltZSgpKQogICAg
ICwgbV9zdGFydFRpbWUoMCkKICAgICAsIG1fcGF1c2VUaW1lKC0xKQorICAgICwgbV9pc1BhdXNl
ZChmYWxzZSkKKyAgICAsIG1fcGF1c2VkQnlTY3JpcHQoZmFsc2UpCiAgICAgLCBtX3JlcXVlc3Rl
ZFN0YXJ0VGltZSgwKQogICAgICwgbV9vYmplY3QocmVuZGVyZXIpCiAgICAgLCBtX2FuaW1hdGlv
bihjb25zdF9jYXN0PEFuaW1hdGlvbio+KHRyYW5zaXRpb24pKQpAQCAtOTM1LDExICs5MzgsMTQg
QEAgdm9pZCBBbmltYXRpb25CYXNlOjp1cGRhdGVTdGF0ZU1hY2hpbmUoQW5pbVN0YXRlSW5wdXQg
aW5wdXQsIGRvdWJsZSBwYXJhbSkKIHsKICAgICAvLyBJZiB3ZSBnZXQgQW5pbWF0aW9uU3RhdGVJ
bnB1dFJlc3RhcnRBbmltYXRpb24gdGhlbiB3ZSBmb3JjZSBhIG5ldyBhbmltYXRpb24sIHJlZ2Fy
ZGxlc3Mgb2Ygc3RhdGUuCiAgICAgaWYgKGlucHV0ID09IEFuaW1hdGlvblN0YXRlSW5wdXRNYWtl
TmV3KSB7CisgICAgICAgIHByaW50ZigiU1RBVEUgPC0tIEFuaW1hdGlvblN0YXRlSW5wdXRNYWtl
TmV3XG4iKTsKICAgICAgICAgaWYgKG1fYW5pbVN0YXRlID09IEFuaW1hdGlvblN0YXRlU3RhcnRX
YWl0U3R5bGVBdmFpbGFibGUpCiAgICAgICAgICAgICBtX2NvbXBBbmltLT5hbmltYXRpb25Db250
cm9sbGVyKCktPnJlbW92ZUZyb21TdHlsZUF2YWlsYWJsZVdhaXRMaXN0KHRoaXMpOwogICAgICAg
ICBtX2FuaW1TdGF0ZSA9IEFuaW1hdGlvblN0YXRlTmV3OworICAgICAgICBtX2FwcGxpZWRUaW1l
ID0gY3VycmVudFRpbWUoKTsKICAgICAgICAgbV9zdGFydFRpbWUgPSAwOwogICAgICAgICBtX3Bh
dXNlVGltZSA9IC0xOworICAgICAgICBtX2lzUGF1c2VkID0gZmFsc2U7CiAgICAgICAgIG1fcmVx
dWVzdGVkU3RhcnRUaW1lID0gMDsKICAgICAgICAgbV9uZXh0SXRlcmF0aW9uRHVyYXRpb24gPSAt
MTsKICAgICAgICAgZW5kQW5pbWF0aW9uKCk7CkBAIC05NDcsMTEgKzk1MywxNCBAQCB2b2lkIEFu
aW1hdGlvbkJhc2U6OnVwZGF0ZVN0YXRlTWFjaGluZShBbmltU3RhdGVJbnB1dCBpbnB1dCwgZG91
YmxlIHBhcmFtKQogICAgIH0KIAogICAgIGlmIChpbnB1dCA9PSBBbmltYXRpb25TdGF0ZUlucHV0
UmVzdGFydEFuaW1hdGlvbikgeworICAgICAgICBwcmludGYoIlNUQVRFIDwtLSBBbmltYXRpb25T
dGF0ZUlucHV0UmVzdGFydEFuaW1hdGlvblxuIik7CiAgICAgICAgIGlmIChtX2FuaW1TdGF0ZSA9
PSBBbmltYXRpb25TdGF0ZVN0YXJ0V2FpdFN0eWxlQXZhaWxhYmxlKQogICAgICAgICAgICAgbV9j
b21wQW5pbS0+YW5pbWF0aW9uQ29udHJvbGxlcigpLT5yZW1vdmVGcm9tU3R5bGVBdmFpbGFibGVX
YWl0TGlzdCh0aGlzKTsKICAgICAgICAgbV9hbmltU3RhdGUgPSBBbmltYXRpb25TdGF0ZU5ldzsK
KyAgICAgICAgbV9hcHBsaWVkVGltZSA9IGN1cnJlbnRUaW1lKCk7CiAgICAgICAgIG1fc3RhcnRU
aW1lID0gMDsKICAgICAgICAgbV9wYXVzZVRpbWUgPSAtMTsKKyAgICAgICAgbV9pc1BhdXNlZCA9
IGZhbHNlOwogICAgICAgICBtX3JlcXVlc3RlZFN0YXJ0VGltZSA9IDA7CiAgICAgICAgIG1fbmV4
dEl0ZXJhdGlvbkR1cmF0aW9uID0gLTE7CiAgICAgICAgIGVuZEFuaW1hdGlvbigpOwpAQCAtOTYy
LDYgKzk3MSw3IEBAIHZvaWQgQW5pbWF0aW9uQmFzZTo6dXBkYXRlU3RhdGVNYWNoaW5lKEFuaW1T
dGF0ZUlucHV0IGlucHV0LCBkb3VibGUgcGFyYW0pCiAgICAgfQogCiAgICAgaWYgKGlucHV0ID09
IEFuaW1hdGlvblN0YXRlSW5wdXRFbmRBbmltYXRpb24pIHsKKyAgICAgICAgcHJpbnRmKCJTVEFU
RSA8LS0gQW5pbWF0aW9uU3RhdGVJbnB1dEVuZEFuaW1hdGlvblxuIik7CiAgICAgICAgIGlmICht
X2FuaW1TdGF0ZSA9PSBBbmltYXRpb25TdGF0ZVN0YXJ0V2FpdFN0eWxlQXZhaWxhYmxlKQogICAg
ICAgICAgICAgbV9jb21wQW5pbS0+YW5pbWF0aW9uQ29udHJvbGxlcigpLT5yZW1vdmVGcm9tU3R5
bGVBdmFpbGFibGVXYWl0TGlzdCh0aGlzKTsKICAgICAgICAgbV9hbmltU3RhdGUgPSBBbmltYXRp
b25TdGF0ZURvbmU7CkBAIC05NzAsNiArOTgwLDcgQEAgdm9pZCBBbmltYXRpb25CYXNlOjp1cGRh
dGVTdGF0ZU1hY2hpbmUoQW5pbVN0YXRlSW5wdXQgaW5wdXQsIGRvdWJsZSBwYXJhbSkKICAgICB9
CiAKICAgICBpZiAoaW5wdXQgPT0gQW5pbWF0aW9uU3RhdGVJbnB1dFBhdXNlT3ZlcnJpZGUpIHsK
KyAgICAgICAgcHJpbnRmKCJTVEFURSBpbnB1dCBBbmltYXRpb25TdGF0ZUlucHV0UGF1c2VPdmVy
cmlkZVxuIik7CiAgICAgICAgIGlmIChtX2FuaW1TdGF0ZSA9PSBBbmltYXRpb25TdGF0ZVN0YXJ0
V2FpdFJlc3BvbnNlKSB7CiAgICAgICAgICAgICAvLyBJZiB3ZSBhcmUgaW4gQW5pbWF0aW9uU3Rh
dGVTdGFydFdhaXRSZXNwb25zZSwgdGhlIGFuaW1hdGlvbiB3aWxsIGdldCBjYW5jZWxlZCBiZWZv
cmUgCiAgICAgICAgICAgICAvLyB3ZSBnZXQgYSByZXNwb25zZSwgc28gbW92ZSB0byB0aGUgbmV4
dCBzdGF0ZS4KQEAgLTk4MCw2ICs5OTEsNyBAQCB2b2lkIEFuaW1hdGlvbkJhc2U6OnVwZGF0ZVN0
YXRlTWFjaGluZShBbmltU3RhdGVJbnB1dCBpbnB1dCwgZG91YmxlIHBhcmFtKQogICAgIH0KIAog
ICAgIGlmIChpbnB1dCA9PSBBbmltYXRpb25TdGF0ZUlucHV0UmVzdW1lT3ZlcnJpZGUpIHsKKyAg
ICAgICAgcHJpbnRmKCJTVEFURSA8LS0gQW5pbWF0aW9uU3RhdGVJbnB1dFJlc3VtZU92ZXJyaWRl
XG4iKTsKICAgICAgICAgaWYgKG1fYW5pbVN0YXRlID09IEFuaW1hdGlvblN0YXRlTG9vcGluZyB8
fCBtX2FuaW1TdGF0ZSA9PSBBbmltYXRpb25TdGF0ZUVuZGluZykgewogICAgICAgICAgICAgLy8g
U3RhcnQgdGhlIGFuaW1hdGlvbgogICAgICAgICAgICAgc3RhcnRBbmltYXRpb24oYmVnaW5Bbmlt
YXRpb25VcGRhdGVUaW1lKCkgLSBtX3N0YXJ0VGltZSk7CkBAIC05ODcsMTEgKzk5OSwxOCBAQCB2
b2lkIEFuaW1hdGlvbkJhc2U6OnVwZGF0ZVN0YXRlTWFjaGluZShBbmltU3RhdGVJbnB1dCBpbnB1
dCwgZG91YmxlIHBhcmFtKQogICAgICAgICByZXR1cm47CiAgICAgfQogCisgICAgaWYgKGlucHV0
ID09IEFuaW1hdGlvblN0YXRlSW5wdXRQbGF5U3RhdGVQYXVzZWQpIHsKKyAgICAgICAgcHJpbnRm
KCJTVEFURSA8LS0gQW5pbWF0aW9uU3RhdGVJbnB1dFBsYXlTdGF0ZVBhdXNlZFxuIik7CisgICAg
ICAgIGlmIChpc0FjY2VsZXJhdGVkKCkpCisgICAgICAgICAgICBlbmRBbmltYXRpb24oKTsKKyAg
ICB9CisKICAgICAvLyBFeGVjdXRlIHN0YXRlIG1hY2hpbmUKICAgICBzd2l0Y2ggKG1fYW5pbVN0
YXRlKSB7CiAgICAgICAgIGNhc2UgQW5pbWF0aW9uU3RhdGVOZXc6CiAgICAgICAgICAgICBBU1NF
UlQoaW5wdXQgPT0gQW5pbWF0aW9uU3RhdGVJbnB1dFN0YXJ0QW5pbWF0aW9uIHx8IGlucHV0ID09
IEFuaW1hdGlvblN0YXRlSW5wdXRQbGF5U3RhdGVSdW5uaW5nIHx8IGlucHV0ID09IEFuaW1hdGlv
blN0YXRlSW5wdXRQbGF5U3RhdGVQYXVzZWQpOwogICAgICAgICAgICAgaWYgKGlucHV0ID09IEFu
aW1hdGlvblN0YXRlSW5wdXRTdGFydEFuaW1hdGlvbiB8fCBpbnB1dCA9PSBBbmltYXRpb25TdGF0
ZUlucHV0UGxheVN0YXRlUnVubmluZykgeworICAgICAgICAgICAgICAgIHByaW50ZigiU1RBVEUg
QW5pbWF0aW9uU3RhdGVOZXcgPC0tIEFuaW1hdGlvblN0YXRlSW5wdXRTdGFydEFuaW1hdGlvblxu
Iik7CiAgICAgICAgICAgICAgICAgbV9yZXF1ZXN0ZWRTdGFydFRpbWUgPSBiZWdpbkFuaW1hdGlv
blVwZGF0ZVRpbWUoKTsKICAgICAgICAgICAgICAgICBtX2FuaW1TdGF0ZSA9IEFuaW1hdGlvblN0
YXRlU3RhcnRXYWl0VGltZXI7CiAgICAgICAgICAgICB9CkBAIC0xMDAwLDYgKzEwMTksNyBAQCB2
b2lkIEFuaW1hdGlvbkJhc2U6OnVwZGF0ZVN0YXRlTWFjaGluZShBbmltU3RhdGVJbnB1dCBpbnB1
dCwgZG91YmxlIHBhcmFtKQogICAgICAgICAgICAgQVNTRVJUKGlucHV0ID09IEFuaW1hdGlvblN0
YXRlSW5wdXRTdGFydFRpbWVyRmlyZWQgfHwgaW5wdXQgPT0gQW5pbWF0aW9uU3RhdGVJbnB1dFBs
YXlTdGF0ZVBhdXNlZCk7CiAKICAgICAgICAgICAgIGlmIChpbnB1dCA9PSBBbmltYXRpb25TdGF0
ZUlucHV0U3RhcnRUaW1lckZpcmVkKSB7CisgICAgICAgICAgICAgICAgcHJpbnRmKCJTVEFURSBB
bmltYXRpb25TdGF0ZVN0YXJ0V2FpdFRpbWVyIDwtLSBBbmltYXRpb25TdGF0ZUlucHV0U3RhcnRU
aW1lckZpcmVkXG4iKTsKICAgICAgICAgICAgICAgICBBU1NFUlQocGFyYW0gPj0gMCk7CiAgICAg
ICAgICAgICAgICAgLy8gU3RhcnQgdGltZXIgaGFzIGZpcmVkLCB0ZWxsIHRoZSBhbmltYXRpb24g
dG8gc3RhcnQgYW5kIHdhaXQgZm9yIGl0IHRvIHJlc3BvbmQgd2l0aCBzdGFydCB0aW1lCiAgICAg
ICAgICAgICAgICAgbV9hbmltU3RhdGUgPSBBbmltYXRpb25TdGF0ZVN0YXJ0V2FpdFN0eWxlQXZh
aWxhYmxlOwpAQCAtMTAwOSwxNiArMTAyOSwxOSBAQCB2b2lkIEFuaW1hdGlvbkJhc2U6OnVwZGF0
ZVN0YXRlTWFjaGluZShBbmltU3RhdGVJbnB1dCBpbnB1dCwgZG91YmxlIHBhcmFtKQogICAgICAg
ICAgICAgICAgIGlmIChtX29iamVjdCkKICAgICAgICAgICAgICAgICAgICAgbV9jb21wQW5pbS0+
YW5pbWF0aW9uQ29udHJvbGxlcigpLT5hZGROb2RlQ2hhbmdlVG9EaXNwYXRjaChtX29iamVjdC0+
bm9kZSgpKTsKICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgcHJpbnRmKCJT
VEFURSBBbmltYXRpb25TdGF0ZVN0YXJ0V2FpdFRpbWVyIDwtLSBBbmltYXRpb25TdGF0ZUlucHV0
UGxheVN0YXRlUGF1c2VkXG4iKTsKICAgICAgICAgICAgICAgICBBU1NFUlQoIXBhdXNlZCgpKTsK
ICAgICAgICAgICAgICAgICAvLyBXZSdyZSB3YWl0aW5nIGZvciB0aGUgc3RhcnQgdGltZXIgdG8g
ZmlyZSBhbmQgd2UgZ290IGEgcGF1c2UuIENhbmNlbCB0aGUgdGltZXIsIHBhdXNlIGFuZCB3YWl0
CiAgICAgICAgICAgICAgICAgbV9wYXVzZVRpbWUgPSBiZWdpbkFuaW1hdGlvblVwZGF0ZVRpbWUo
KTsKICAgICAgICAgICAgICAgICBtX2FuaW1TdGF0ZSA9IEFuaW1hdGlvblN0YXRlUGF1c2VkV2Fp
dFRpbWVyOworICAgICAgICAgICAgICAgIG1faXNQYXVzZWQgPSB0cnVlOwogICAgICAgICAgICAg
fQogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgQW5pbWF0aW9uU3RhdGVTdGFydFdh
aXRTdHlsZUF2YWlsYWJsZToKICAgICAgICAgICAgIEFTU0VSVChpbnB1dCA9PSBBbmltYXRpb25T
dGF0ZUlucHV0U3R5bGVBdmFpbGFibGUgfHwgaW5wdXQgPT0gQW5pbWF0aW9uU3RhdGVJbnB1dFBs
YXlTdGF0ZVBhdXNlZCk7CiAKICAgICAgICAgICAgIGlmIChpbnB1dCA9PSBBbmltYXRpb25TdGF0
ZUlucHV0U3R5bGVBdmFpbGFibGUpIHsKKyAgICAgICAgICAgICAgICBwcmludGYoIlNUQVRFIEFu
aW1hdGlvblN0YXRlU3RhcnRXYWl0U3R5bGVBdmFpbGFibGUgPC0tIEFuaW1hdGlvblN0YXRlSW5w
dXRTdHlsZUF2YWlsYWJsZVxuIik7CiAgICAgICAgICAgICAgICAgLy8gU3RhcnQgdGltZXIgaGFz
IGZpcmVkLCB0ZWxsIHRoZSBhbmltYXRpb24gdG8gc3RhcnQgYW5kIHdhaXQgZm9yIGl0IHRvIHJl
c3BvbmQgd2l0aCBzdGFydCB0aW1lCiAgICAgICAgICAgICAgICAgbV9hbmltU3RhdGUgPSBBbmlt
YXRpb25TdGF0ZVN0YXJ0V2FpdFJlc3BvbnNlOwogCkBAIC0xMDI2LDEyICsxMDQ5LDE0IEBAIHZv
aWQgQW5pbWF0aW9uQmFzZTo6dXBkYXRlU3RhdGVNYWNoaW5lKEFuaW1TdGF0ZUlucHV0IGlucHV0
LCBkb3VibGUgcGFyYW0pCiAKICAgICAgICAgICAgICAgICAvLyBTdGFydCB0aGUgYW5pbWF0aW9u
CiAgICAgICAgICAgICAgICAgaWYgKG92ZXJyaWRkZW4oKSkgeworICAgICAgICAgICAgICAgICAg
ICBwcmludGYoIk92ZXJyaWRkZW5cbiIpOwogICAgICAgICAgICAgICAgICAgICAvLyBXZSB3b24n
dCB0cnkgdG8gc3RhcnQgYWNjZWxlcmF0ZWQgYW5pbWF0aW9ucyBpZiB3ZSBhcmUgb3ZlcnJpZGRl
biBhbmQKICAgICAgICAgICAgICAgICAgICAgLy8ganVzdCBtb3ZlIG9uIHRvIHRoZSBuZXh0IHN0
YXRlLgogICAgICAgICAgICAgICAgICAgICBtX2FuaW1TdGF0ZSA9IEFuaW1hdGlvblN0YXRlU3Rh
cnRXYWl0UmVzcG9uc2U7CiAgICAgICAgICAgICAgICAgICAgIG1faXNBY2NlbGVyYXRlZCA9IGZh
bHNlOwogICAgICAgICAgICAgICAgICAgICB1cGRhdGVTdGF0ZU1hY2hpbmUoQW5pbWF0aW9uU3Rh
dGVJbnB1dFN0YXJ0VGltZVNldCwgYmVnaW5BbmltYXRpb25VcGRhdGVUaW1lKCkpOwogICAgICAg
ICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIHByaW50ZigiTm90IE92ZXJy
aWRkZW5cbiIpOwogICAgICAgICAgICAgICAgICAgICBkb3VibGUgdGltZU9mZnNldCA9IDA7CiAg
ICAgICAgICAgICAgICAgICAgIC8vIElmIHRoZSB2YWx1ZSBmb3IgJ2FuaW1hdGlvbi1kZWxheScg
aXMgbmVnYXRpdmUgdGhlbiB0aGUgYW5pbWF0aW9uIGFwcGVhcnMgdG8gaGF2ZSBzdGFydGVkIGlu
IHRoZSBwYXN0LgogICAgICAgICAgICAgICAgICAgICBpZiAobV9hbmltYXRpb24tPmRlbGF5KCkg
PCAwKQpAQCAtMTA0MiwxOCArMTA2NywyMyBAQCB2b2lkIEFuaW1hdGlvbkJhc2U6OnVwZGF0ZVN0
YXRlTWFjaGluZShBbmltU3RhdGVJbnB1dCBpbnB1dCwgZG91YmxlIHBhcmFtKQogICAgICAgICAg
ICAgICAgICAgICBtX2lzQWNjZWxlcmF0ZWQgPSBzdGFydGVkOwogICAgICAgICAgICAgICAgIH0K
ICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgcHJpbnRmKCJTVEFURSBBbmlt
YXRpb25TdGF0ZVN0YXJ0V2FpdFN0eWxlQXZhaWxhYmxlIDwtLSBBbmltYXRpb25TdGF0ZUlucHV0
UGxheVN0YXRlUGF1c2VkXG4iKTsKICAgICAgICAgICAgICAgICAvLyBXZSdyZSB3YWl0aW5nIGZv
ciB0aGUgc3R5bGUgdG8gYmUgYXZhaWxhYmxlIGFuZCB3ZSBnb3QgYSBwYXVzZS4gUGF1c2UgYW5k
IHdhaXQKICAgICAgICAgICAgICAgICBtX3BhdXNlVGltZSA9IGJlZ2luQW5pbWF0aW9uVXBkYXRl
VGltZSgpOwogICAgICAgICAgICAgICAgIG1fYW5pbVN0YXRlID0gQW5pbWF0aW9uU3RhdGVQYXVz
ZWRXYWl0U3R5bGVBdmFpbGFibGU7CisgICAgICAgICAgICAgICAgbV9pc1BhdXNlZCA9IHRydWU7
CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBBbmltYXRp
b25TdGF0ZVN0YXJ0V2FpdFJlc3BvbnNlOgogICAgICAgICAgICAgQVNTRVJUKGlucHV0ID09IEFu
aW1hdGlvblN0YXRlSW5wdXRTdGFydFRpbWVTZXQgfHwgaW5wdXQgPT0gQW5pbWF0aW9uU3RhdGVJ
bnB1dFBsYXlTdGF0ZVBhdXNlZCk7CiAKICAgICAgICAgICAgIGlmIChpbnB1dCA9PSBBbmltYXRp
b25TdGF0ZUlucHV0U3RhcnRUaW1lU2V0KSB7CisgICAgICAgICAgICAgICAgcHJpbnRmKCJTVEFU
RSBBbmltYXRpb25TdGF0ZVN0YXJ0V2FpdFJlc3BvbnNlIDwtLSBBbmltYXRpb25TdGF0ZUlucHV0
U3RhcnRUaW1lU2V0XG4iKTsKKwogICAgICAgICAgICAgICAgIEFTU0VSVChwYXJhbSA+PSAwKTsK
ICAgICAgICAgICAgICAgICAvLyBXZSBoYXZlIGEgc3RhcnQgdGltZSwgc2V0IGl0LCB1bmxlc3Mg
dGhlIHN0YXJ0VGltZSBpcyBhbHJlYWR5IHNldAogICAgICAgICAgICAgICAgIGlmIChtX3N0YXJ0
VGltZSA8PSAwKSB7CisgICAgICAgICAgICAgICAgICAgIHByaW50Zigic2V0dGluZyBuZXcgc3Rh
cnQgdGltZSAlbGZcbiIsIHBhcmFtKTsKICAgICAgICAgICAgICAgICAgICAgbV9zdGFydFRpbWUg
PSBwYXJhbTsKICAgICAgICAgICAgICAgICAgICAgLy8gSWYgdGhlIHZhbHVlIGZvciAnYW5pbWF0
aW9uLWRlbGF5JyBpcyBuZWdhdGl2ZSB0aGVuIHRoZSBhbmltYXRpb24gYXBwZWFycyB0byBoYXZl
IHN0YXJ0ZWQgaW4gdGhlIHBhc3QuCiAgICAgICAgICAgICAgICAgICAgIGlmIChtX2FuaW1hdGlv
bi0+ZGVsYXkoKSA8IDApCkBAIC0xMDc1LDEyICsxMTA1LDE1IEBAIHZvaWQgQW5pbWF0aW9uQmFz
ZTo6dXBkYXRlU3RhdGVNYWNoaW5lKEFuaW1TdGF0ZUlucHV0IGlucHV0LCBkb3VibGUgcGFyYW0p
CiAgICAgICAgICAgICAgICAgbV9wYXVzZVRpbWUgPSAtMTsKICAgICAgICAgICAgICAgICBwYXVz
ZUFuaW1hdGlvbihiZWdpbkFuaW1hdGlvblVwZGF0ZVRpbWUoKSAtIG1fc3RhcnRUaW1lKTsKICAg
ICAgICAgICAgICAgICBtX2FuaW1TdGF0ZSA9IEFuaW1hdGlvblN0YXRlUGF1c2VkV2FpdFJlc3Bv
bnNlOworICAgICAgICAgICAgICAgIG1faXNQYXVzZWQgPSB0cnVlOwogICAgICAgICAgICAgfQog
ICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgQW5pbWF0aW9uU3RhdGVMb29waW5nOgog
ICAgICAgICAgICAgQVNTRVJUKGlucHV0ID09IEFuaW1hdGlvblN0YXRlSW5wdXRMb29wVGltZXJG
aXJlZCB8fCBpbnB1dCA9PSBBbmltYXRpb25TdGF0ZUlucHV0UGxheVN0YXRlUGF1c2VkKTsKIAog
ICAgICAgICAgICAgaWYgKGlucHV0ID09IEFuaW1hdGlvblN0YXRlSW5wdXRMb29wVGltZXJGaXJl
ZCkgeworICAgICAgICAgICAgICAgIHByaW50ZigiU1RBVEUgQW5pbWF0aW9uU3RhdGVMb29waW5n
IDwtLSBBbmltYXRpb25TdGF0ZUlucHV0TG9vcFRpbWVyRmlyZWRcbiIpOworCiAgICAgICAgICAg
ICAgICAgQVNTRVJUKHBhcmFtID49IDApOwogICAgICAgICAgICAgICAgIC8vIExvb3AgdGltZXIg
ZmlyZWQsIGxvb3AgYWdhaW4gb3IgZW5kLgogICAgICAgICAgICAgICAgIG9uQW5pbWF0aW9uSXRl
cmF0aW9uKHBhcmFtKTsKQEAgLTEwODgsMTYgKzExMjEsMjMgQEAgdm9pZCBBbmltYXRpb25CYXNl
Ojp1cGRhdGVTdGF0ZU1hY2hpbmUoQW5pbVN0YXRlSW5wdXQgaW5wdXQsIGRvdWJsZSBwYXJhbSkK
ICAgICAgICAgICAgICAgICAvLyBEZWNpZGUgd2hldGhlciB0byBnbyBpbnRvIGxvb3Bpbmcgb3Ig
ZW5kaW5nIHN0YXRlCiAgICAgICAgICAgICAgICAgZ29JbnRvRW5kaW5nT3JMb29waW5nU3RhdGUo
KTsKICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgcHJpbnRmKCJTVEFURSBB
bmltYXRpb25TdGF0ZUxvb3BpbmcgPC0tIEFuaW1hdGlvblN0YXRlSW5wdXRQbGF5U3RhdGVQYXVz
ZWRcbiIpOwogICAgICAgICAgICAgICAgIC8vIFdlIGFyZSBwYXVzaW5nIHdoaWxlIHJ1bm5pbmcu
IENhbmNlbCB0aGUgYW5pbWF0aW9uIGFuZCB3YWl0CiAgICAgICAgICAgICAgICAgbV9wYXVzZVRp
bWUgPSBiZWdpbkFuaW1hdGlvblVwZGF0ZVRpbWUoKTsKICAgICAgICAgICAgICAgICBwYXVzZUFu
aW1hdGlvbihiZWdpbkFuaW1hdGlvblVwZGF0ZVRpbWUoKSAtIG1fc3RhcnRUaW1lKTsKICAgICAg
ICAgICAgICAgICBtX2FuaW1TdGF0ZSA9IEFuaW1hdGlvblN0YXRlUGF1c2VkUnVuOworICAgICAg
ICAgICAgICAgIG1faXNQYXVzZWQgPSB0cnVlOworICAgICAgICAgICAgICAgIC8vIFRyaWdnZXIg
YSBzdHlsZSB1cGRhdGUgYmVjYXVzZSB3ZSBtYXkgaGF2ZSBqdW1wZWQgZnJvbSBhbiBhY2NlbGVy
YXRlZCBhbmltYXRpb24KKyAgICAgICAgICAgICAgICAvLyBpbnRvIGEgc29mdHdhcmUgYW5pbWF0
aW9ucy4KKyAgICAgICAgICAgICAgICBpZiAobV9vYmplY3QpCisgICAgICAgICAgICAgICAgICAg
IG1fY29tcEFuaW0tPmFuaW1hdGlvbkNvbnRyb2xsZXIoKS0+YWRkTm9kZUNoYW5nZVRvRGlzcGF0
Y2gobV9vYmplY3QtPm5vZGUoKSk7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBicmVhazsK
ICAgICAgICAgY2FzZSBBbmltYXRpb25TdGF0ZUVuZGluZzoKICAgICAgICAgICAgIEFTU0VSVChp
bnB1dCA9PSBBbmltYXRpb25TdGF0ZUlucHV0RW5kVGltZXJGaXJlZCB8fCBpbnB1dCA9PSBBbmlt
YXRpb25TdGF0ZUlucHV0UGxheVN0YXRlUGF1c2VkKTsKIAogICAgICAgICAgICAgaWYgKGlucHV0
ID09IEFuaW1hdGlvblN0YXRlSW5wdXRFbmRUaW1lckZpcmVkKSB7CisgICAgICAgICAgICAgICAg
cHJpbnRmKCJTVEFURSBBbmltYXRpb25TdGF0ZUVuZGluZyA8LS0gQW5pbWF0aW9uU3RhdGVJbnB1
dEVuZFRpbWVyRmlyZWRcbiIpOwogCiAgICAgICAgICAgICAgICAgQVNTRVJUKHBhcmFtID49IDAp
OwogICAgICAgICAgICAgICAgIC8vIEVuZCB0aW1lciBmaXJlZCwgZmluaXNoIHVwCkBAIC0xMTE1
LDIzICsxMTU1LDM0IEBAIHZvaWQgQW5pbWF0aW9uQmFzZTo6dXBkYXRlU3RhdGVNYWNoaW5lKEFu
aW1TdGF0ZUlucHV0IGlucHV0LCBkb3VibGUgcGFyYW0pCiAgICAgICAgICAgICAgICAgICAgIG1f
Y29tcEFuaW0tPmFuaW1hdGlvbkNvbnRyb2xsZXIoKS0+YWRkTm9kZUNoYW5nZVRvRGlzcGF0Y2go
bV9vYmplY3QtPm5vZGUoKSk7CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgfSBlbHNl
IHsKKyAgICAgICAgICAgICAgICBwcmludGYoIlNUQVRFIEFuaW1hdGlvblN0YXRlRW5kaW5nIDwt
LSBBbmltYXRpb25TdGF0ZUlucHV0UGxheVN0YXRlUGF1c2VkXG4iKTsKICAgICAgICAgICAgICAg
ICAvLyBXZSBhcmUgcGF1c2luZyB3aGlsZSBydW5uaW5nLiBDYW5jZWwgdGhlIGFuaW1hdGlvbiBh
bmQgd2FpdAogICAgICAgICAgICAgICAgIG1fcGF1c2VUaW1lID0gYmVnaW5BbmltYXRpb25VcGRh
dGVUaW1lKCk7CiAgICAgICAgICAgICAgICAgcGF1c2VBbmltYXRpb24oYmVnaW5BbmltYXRpb25V
cGRhdGVUaW1lKCkgLSBtX3N0YXJ0VGltZSk7CiAgICAgICAgICAgICAgICAgbV9hbmltU3RhdGUg
PSBBbmltYXRpb25TdGF0ZVBhdXNlZFJ1bjsKKyAgICAgICAgICAgICAgICBtX2lzUGF1c2VkID0g
dHJ1ZTsKKyAgICAgICAgICAgICAgICAvLyBUcmlnZ2VyIGEgc3R5bGUgdXBkYXRlIGJlY2F1c2Ug
d2UgbWF5IGhhdmUganVtcGVkIGZyb20gYW4gYWNjZWxlcmF0ZWQgYW5pbWF0aW9uCisgICAgICAg
ICAgICAgICAgLy8gaW50byBhIHNvZnR3YXJlIGFuaW1hdGlvbnMuCisgICAgICAgICAgICAgICAg
aWYgKG1fb2JqZWN0KQorICAgICAgICAgICAgICAgICAgICBtX2NvbXBBbmltLT5hbmltYXRpb25D
b250cm9sbGVyKCktPmFkZE5vZGVDaGFuZ2VUb0Rpc3BhdGNoKG1fb2JqZWN0LT5ub2RlKCkpOwog
ICAgICAgICAgICAgfQogICAgICAgICAgICAgLy8gfHRoaXN8IG1heSBiZSBkZWxldGVkIGhlcmUK
ICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIEFuaW1hdGlvblN0YXRlUGF1c2VkV2Fp
dFRpbWVyOgorICAgICAgICAgICAgcHJpbnRmKCJTVEFURSBBbmltYXRpb25TdGF0ZVBhdXNlZFdh
aXRUaW1lciA8LS0gQW5pbWF0aW9uU3RhdGVJbnB1dFBsYXlTdGF0ZVJ1bm5pbmdcbiIpOworCiAg
ICAgICAgICAgICBBU1NFUlQoaW5wdXQgPT0gQW5pbWF0aW9uU3RhdGVJbnB1dFBsYXlTdGF0ZVJ1
bm5pbmcpOwogICAgICAgICAgICAgQVNTRVJUKHBhdXNlZCgpKTsKICAgICAgICAgICAgIC8vIFVw
ZGF0ZSB0aGUgdGltZXMKLSAgICAgICAgICAgIG1fc3RhcnRUaW1lICs9IGJlZ2luQW5pbWF0aW9u
VXBkYXRlVGltZSgpIC0gbV9wYXVzZVRpbWU7CisgICAgICAgICAgICBtX3JlcXVlc3RlZFN0YXJ0
VGltZSA9IGJlZ2luQW5pbWF0aW9uVXBkYXRlVGltZSgpIC0gKG1fcGF1c2VUaW1lIC0gbV9yZXF1
ZXN0ZWRTdGFydFRpbWUpOwogICAgICAgICAgICAgbV9wYXVzZVRpbWUgPSAtMTsKLQotICAgICAg
ICAgICAgLy8gd2Ugd2VyZSB3YWl0aW5nIGZvciB0aGUgc3RhcnQgdGltZXIgdG8gZmlyZSwgZ28g
YmFjayBhbmQgd2FpdCBhZ2FpbgotICAgICAgICAgICAgbV9hbmltU3RhdGUgPSBBbmltYXRpb25T
dGF0ZU5ldzsKLSAgICAgICAgICAgIHVwZGF0ZVN0YXRlTWFjaGluZShBbmltYXRpb25TdGF0ZUlu
cHV0U3RhcnRBbmltYXRpb24sIDApOworICAgICAgICAgICAgbV9zdGFydFRpbWUgPSAwOworICAg
ICAgICAgICAgbV9pc1BhdXNlZCA9IGZhbHNlOworICAgICAgICAgICAgLy8gSnVtcCBiYWNrIGlu
dG8gdGhlIGRlbGF5IHdhaXRpbmcgc3RhdGUuCisgICAgICAgICAgICBtX2FuaW1TdGF0ZSA9IEFu
aW1hdGlvblN0YXRlU3RhcnRXYWl0VGltZXI7CisgICAgICAgICAgICAvLyBSZXNldCB0aGUgdGlt
ZXIuCisgICAgICAgICAgICBtX2NvbXBBbmltLT5hbmltYXRpb25Db250cm9sbGVyKCktPnVwZGF0
ZUFuaW1hdGlvblRpbWVyKCk7CisgICAgICAgICAgICAKICAgICAgICAgICAgIGJyZWFrOwogICAg
ICAgICBjYXNlIEFuaW1hdGlvblN0YXRlUGF1c2VkV2FpdFJlc3BvbnNlOgogICAgICAgICBjYXNl
IEFuaW1hdGlvblN0YXRlUGF1c2VkV2FpdFN0eWxlQXZhaWxhYmxlOgpAQCAtMTE0NCwxMiArMTE5
NSwxNSBAQCB2b2lkIEFuaW1hdGlvbkJhc2U6OnVwZGF0ZVN0YXRlTWFjaGluZShBbmltU3RhdGVJ
bnB1dCBpbnB1dCwgZG91YmxlIHBhcmFtKQogICAgICAgICAgICAgQVNTRVJUKHBhdXNlZCgpKTsK
ICAgICAgICAgICAgIAogICAgICAgICAgICAgaWYgKGlucHV0ID09IEFuaW1hdGlvblN0YXRlSW5w
dXRQbGF5U3RhdGVSdW5uaW5nKSB7CisgICAgICAgICAgICAgICAgcHJpbnRmKCJTVEFURSBBbmlt
YXRpb25TdGF0ZVBhdXNlZCogPC0tIEFuaW1hdGlvblN0YXRlSW5wdXRQbGF5U3RhdGVSdW5uaW5n
XG4iKTsKKwogICAgICAgICAgICAgICAgIC8vIFVwZGF0ZSB0aGUgdGltZXMKICAgICAgICAgICAg
ICAgICBpZiAobV9hbmltU3RhdGUgPT0gQW5pbWF0aW9uU3RhdGVQYXVzZWRSdW4pCiAgICAgICAg
ICAgICAgICAgICAgIG1fc3RhcnRUaW1lICs9IGJlZ2luQW5pbWF0aW9uVXBkYXRlVGltZSgpIC0g
bV9wYXVzZVRpbWU7CiAgICAgICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgICAgICBt
X3N0YXJ0VGltZSA9IDA7CiAgICAgICAgICAgICAgICAgbV9wYXVzZVRpbWUgPSAtMTsKKyAgICAg
ICAgICAgICAgICBtX2lzUGF1c2VkID0gZmFsc2U7CiAKICAgICAgICAgICAgICAgICBpZiAobV9h
bmltU3RhdGUgPT0gQW5pbWF0aW9uU3RhdGVQYXVzZWRXYWl0U3R5bGVBdmFpbGFibGUpCiAgICAg
ICAgICAgICAgICAgICAgIG1fYW5pbVN0YXRlID0gQW5pbWF0aW9uU3RhdGVTdGFydFdhaXRTdHls
ZUF2YWlsYWJsZTsKQEAgLTExNTgsMjMgKzEyMTIsMzAgQEAgdm9pZCBBbmltYXRpb25CYXNlOjp1
cGRhdGVTdGF0ZU1hY2hpbmUoQW5pbVN0YXRlSW5wdXQgaW5wdXQsIGRvdWJsZSBwYXJhbSkKICAg
ICAgICAgICAgICAgICAgICAgLy8gRWl0aGVyIHdheSB3ZSBuZWVkIHRvIHJlc3RhcnQgdGhlIGFu
aW1hdGlvbiAocG9zc2libHkgd2l0aCBhbiBvZmZzZXQgaWYgd2UKICAgICAgICAgICAgICAgICAg
ICAgLy8gaGFkIGFscmVhZHkgYmVlbiBydW5uaW5nKSBhbmQgd2FpdCBmb3IgaXQgdG8gc3RhcnQu
CiAgICAgICAgICAgICAgICAgICAgIG1fYW5pbVN0YXRlID0gQW5pbWF0aW9uU3RhdGVTdGFydFdh
aXRSZXNwb25zZTsKLQotICAgICAgICAgICAgICAgICAgICAvLyBTdGFydCB0aGUgYW5pbWF0aW9u
Ci0gICAgICAgICAgICAgICAgICAgIGlmIChvdmVycmlkZGVuKCkpIHsKLSAgICAgICAgICAgICAg
ICAgICAgICAgIC8vIFdlIHdvbid0IHRyeSB0byBzdGFydCBhY2NlbGVyYXRlZCBhbmltYXRpb25z
IGlmIHdlIGFyZSBvdmVycmlkZGVuIGFuZAotICAgICAgICAgICAgICAgICAgICAgICAgLy8ganVz
dCBtb3ZlIG9uIHRvIHRoZSBuZXh0IHN0YXRlLgotICAgICAgICAgICAgICAgICAgICAgICAgdXBk
YXRlU3RhdGVNYWNoaW5lKEFuaW1hdGlvblN0YXRlSW5wdXRTdGFydFRpbWVTZXQsIGJlZ2luQW5p
bWF0aW9uVXBkYXRlVGltZSgpKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIG1faXNBY2NlbGVy
YXRlZCA9IHRydWU7Ci0gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAg
ICAgICAgICAgICBib29sIHN0YXJ0ZWQgPSBzdGFydEFuaW1hdGlvbihiZWdpbkFuaW1hdGlvblVw
ZGF0ZVRpbWUoKSAtIG1fc3RhcnRUaW1lKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIG1fY29t
cEFuaW0tPmFuaW1hdGlvbkNvbnRyb2xsZXIoKS0+YWRkVG9TdGFydFRpbWVSZXNwb25zZVdhaXRM
aXN0KHRoaXMsIHN0YXJ0ZWQpOwotICAgICAgICAgICAgICAgICAgICAgICAgbV9pc0FjY2VsZXJh
dGVkID0gc3RhcnRlZDsKLSAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAg
ICBnb0ludG9FbmRpbmdPckxvb3BpbmdTdGF0ZSgpOworICAgICAgICAgICAgICAgICAgICAvLyBE
aXNwYXRjaCB1cGRhdGVTdHlsZUlmTmVlZGVkIHNvIHdlIGNhbiBzdGFydCB0aGUgYW5pbWF0aW9u
CisgICAgICAgICAgICAgICAgICAgIGlmIChtX29iamVjdCkKKyAgICAgICAgICAgICAgICAgICAg
ICAgIG1fY29tcEFuaW0tPmFuaW1hdGlvbkNvbnRyb2xsZXIoKS0+YWRkTm9kZUNoYW5nZVRvRGlz
cGF0Y2gobV9vYmplY3QtPm5vZGUoKSk7CisgICAgICAgICAgICAgICAgICAgIAorCisgICAgICAg
ICAgICAgICAgICAgIC8vIEZJWE1FIC0gdGhpcyB3aWxsIGJyZWFrIHRyYW5zaXRpb25zCisvLyAg
ICAgICAgICAgICAgICAgICAgLy8gU3RhcnQgdGhlIGFuaW1hdGlvbgorLy8gICAgICAgICAgICAg
ICAgICAgIGlmIChvdmVycmlkZGVuKCkpIHsKKy8vICAgICAgICAgICAgICAgICAgICAgICAgLy8g
V2Ugd29uJ3QgdHJ5IHRvIHN0YXJ0IGFjY2VsZXJhdGVkIGFuaW1hdGlvbnMgaWYgd2UgYXJlIG92
ZXJyaWRkZW4gYW5kCisvLyAgICAgICAgICAgICAgICAgICAgICAgIC8vIGp1c3QgbW92ZSBvbiB0
byB0aGUgbmV4dCBzdGF0ZS4KKy8vICAgICAgICAgICAgICAgICAgICAgICAgdXBkYXRlU3RhdGVN
YWNoaW5lKEFuaW1hdGlvblN0YXRlSW5wdXRTdGFydFRpbWVTZXQsIGJlZ2luQW5pbWF0aW9uVXBk
YXRlVGltZSgpKTsKKy8vICAgICAgICAgICAgICAgICAgICAgICAgbV9pc0FjY2VsZXJhdGVkID0g
dHJ1ZTsKKy8vICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworLy8gICAgICAgICAgICAgICAg
ICAgICAgICBib29sIHN0YXJ0ZWQgPSBzdGFydEFuaW1hdGlvbihiZWdpbkFuaW1hdGlvblVwZGF0
ZVRpbWUoKSAtIG1fc3RhcnRUaW1lKTsKKy8vICAgICAgICAgICAgICAgICAgICAgICAgbV9jb21w
QW5pbS0+YW5pbWF0aW9uQ29udHJvbGxlcigpLT5hZGRUb1N0YXJ0VGltZVJlc3BvbnNlV2FpdExp
c3QodGhpcywgc3RhcnRlZCk7CisvLyAgICAgICAgICAgICAgICAgICAgICAgIG1faXNBY2NlbGVy
YXRlZCA9IHN0YXJ0ZWQ7CisvLyAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAg
IH0KICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIAog
ICAgICAgICAgICAgaWYgKGlucHV0ID09IEFuaW1hdGlvblN0YXRlSW5wdXRTdGFydFRpbWVTZXQp
IHsKKyAgICAgICAgICAgICAgICBwcmludGYoIlNUQVRFIEFuaW1hdGlvblN0YXRlUGF1c2VkV2Fp
dFJlc3BvbnNlIDwtLSBBbmltYXRpb25TdGF0ZUlucHV0U3RhcnRUaW1lU2V0XG4iKTsKICAgICAg
ICAgICAgICAgICBBU1NFUlQobV9hbmltU3RhdGUgPT0gQW5pbWF0aW9uU3RhdGVQYXVzZWRXYWl0
UmVzcG9uc2UpOwogICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgIC8vIFdlIGFyZSBw
YXVzZWQgYnV0IHdlIGdvdCB0aGUgY2FsbGJhY2sgdGhhdCBub3RpZmllcyB1cyB0aGF0IGFuIGFj
Y2VsZXJhdGVkIGFuaW1hdGlvbiBzdGFydGVkLgpAQCAtMTE5MiwxMSArMTI1MywzMCBAQCB2b2lk
IEFuaW1hdGlvbkJhc2U6OnVwZGF0ZVN0YXRlTWFjaGluZShBbmltU3RhdGVJbnB1dCBpbnB1dCwg
ZG91YmxlIHBhcmFtKQogICAgICAgICAgICAgbV9hbmltU3RhdGUgPSBBbmltYXRpb25TdGF0ZVBh
dXNlZFdhaXRSZXNwb25zZTsKICAgICAgICAgICAgIG92ZXJyaWRlQW5pbWF0aW9ucygpOwogICAg
ICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgQW5pbWF0aW9uU3RhdGVQYXVzZWREb25lOgor
ICAgICAgICAgICAgaWYgKGlucHV0ID09IEFuaW1hdGlvblN0YXRlSW5wdXRQbGF5U3RhdGVSdW5u
aW5nKSB7CisgICAgICAgICAgICAgICAgbV9zdGFydFRpbWUgPSBjdXJyZW50VGltZSgpIC0gKG1f
cGF1c2VUaW1lIC0gbV9zdGFydFRpbWUpOworICAgICAgICAgICAgICAgIG1fcGF1c2VUaW1lID0g
LTE7CisgICAgICAgICAgICAgICAgbV9pc1BhdXNlZCA9IGZhbHNlOworICAgICAgICAgICAgICAg
IGlmIChtX29iamVjdCkgeworICAgICAgICAgICAgICAgICAgICBpZiAobV9hbmltYXRpb24tPmZp
bGxzRm9yd2FyZHMoKSkKKyAgICAgICAgICAgICAgICAgICAgICAgIG1fYW5pbVN0YXRlID0gQW5p
bWF0aW9uU3RhdGVGaWxsaW5nRm9yd2FyZHM7CisgICAgICAgICAgICAgICAgICAgIGVsc2UKKyAg
ICAgICAgICAgICAgICAgICAgICAgIG1fYW5pbVN0YXRlID0gQW5pbWF0aW9uU3RhdGVEb25lOwor
ICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGJyZWFrOwogICAg
ICAgICBjYXNlIEFuaW1hdGlvblN0YXRlRmlsbGluZ0ZvcndhcmRzOgogICAgICAgICBjYXNlIEFu
aW1hdGlvblN0YXRlRG9uZToKLSAgICAgICAgICAgIC8vIFdlJ3JlIGRvbmUuIFN0YXkgaW4gdGhp
cyBzdGF0ZSB1bnRpbCB3ZSBhcmUgZGVsZXRlZAorICAgICAgICAgICAgaWYgKGlucHV0ID09IEFu
aW1hdGlvblN0YXRlSW5wdXRQbGF5U3RhdGVQYXVzZWQpIHsKKyAgICAgICAgICAgICAgICBtX2Fu
aW1TdGF0ZSA9IEFuaW1hdGlvblN0YXRlUGF1c2VkRG9uZTsKKyAgICAgICAgICAgICAgICBtX3Bh
dXNlVGltZSA9IGN1cnJlbnRUaW1lKCk7CisgICAgICAgICAgICAgICAgbV9pc1BhdXNlZCA9IHRy
dWU7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAvLyBXZSdyZSBkb25lLiBTdGF5IGluIHRo
aXMgc3RhdGUuCiAgICAgICAgICAgICBicmVhazsKICAgICB9CisgICAgLy9wcmludGYoIlNUQVRF
IC0tLS0tLVxuIik7CiB9CiAgICAgCiB2b2lkIEFuaW1hdGlvbkJhc2U6OmZpcmVBbmltYXRpb25F
dmVudHNJZk5lZWRlZCgpCkBAIC0xMjYzLDcgKzEzNDMsNyBAQCB2b2lkIEFuaW1hdGlvbkJhc2U6
OnVwZGF0ZVBsYXlTdGF0ZShFQW5pbVBsYXlTdGF0ZSBwbGF5U3RhdGUpCiAgICAgaWYgKHBhdXNl
ID09IHBhdXNlZCgpICYmICFpc05ldygpKQogICAgICAgICByZXR1cm47CiAgICAgCi0gICAgdXBk
YXRlU3RhdGVNYWNoaW5lKHBhdXNlID8gIEFuaW1hdGlvblN0YXRlSW5wdXRQbGF5U3RhdGVQYXVz
ZWQgOiBBbmltYXRpb25TdGF0ZUlucHV0UGxheVN0YXRlUnVubmluZywgLTEpOworICAgIHVwZGF0
ZVN0YXRlTWFjaGluZShwYXVzZSA/IEFuaW1hdGlvblN0YXRlSW5wdXRQbGF5U3RhdGVQYXVzZWQg
OiBBbmltYXRpb25TdGF0ZUlucHV0UGxheVN0YXRlUnVubmluZywgLTEpOwogfQogCiBkb3VibGUg
QW5pbWF0aW9uQmFzZTo6dGltZVRvTmV4dFNlcnZpY2UoKQpAQCAtMTI4OSw3ICsxMzY5LDcgQEAg
ZG91YmxlIEFuaW1hdGlvbkJhc2U6OnByb2dyZXNzKGRvdWJsZSBzY2FsZSwgZG91YmxlIG9mZnNl
dCwgY29uc3QgVGltaW5nRnVuY3Rpb24KICAgICBpZiAocHJlQWN0aXZlKCkpCiAgICAgICAgIHJl
dHVybiAwOwogCi0gICAgZG91YmxlIGVsYXBzZWRUaW1lID0gZ2V0RWxhcHNlZFRpbWUoKTsKKyAg
ICBkb3VibGUgZWxhcHNlZFRpbWUgPSBtYXgoMC4wLCBnZXRFbGFwc2VkVGltZSgpKTsKIAogICAg
IGRvdWJsZSBkdXIgPSBtX2FuaW1hdGlvbi0+ZHVyYXRpb24oKTsKICAgICBpZiAobV9hbmltYXRp
b24tPml0ZXJhdGlvbkNvdW50KCkgPiAwKQpAQCAtMTM1OSw2ICsxNDM5LDcgQEAgdm9pZCBBbmlt
YXRpb25CYXNlOjpnb0ludG9FbmRpbmdPckxvb3BpbmdTdGF0ZSgpCiAgICAgZG91YmxlIHQ7CiAg
ICAgYm9vbCBpc0xvb3Bpbmc7CiAgICAgZ2V0VGltZVRvTmV4dEV2ZW50KHQsIGlzTG9vcGluZyk7
CisKICAgICBtX2FuaW1TdGF0ZSA9IGlzTG9vcGluZyA/IEFuaW1hdGlvblN0YXRlTG9vcGluZyA6
IEFuaW1hdGlvblN0YXRlRW5kaW5nOwogfQogICAKQEAgLTEzODgsMTQgKzE0NjksMTEzIEBAIGRv
dWJsZSBBbmltYXRpb25CYXNlOjpiZWdpbkFuaW1hdGlvblVwZGF0ZVRpbWUoKSBjb25zdAogCiBk
b3VibGUgQW5pbWF0aW9uQmFzZTo6Z2V0RWxhcHNlZFRpbWUoKSBjb25zdAogewotICAgIGlmIChw
YXVzZWQoKSkgICAgCi0gICAgICAgIHJldHVybiBtX3BhdXNlVGltZSAtIG1fc3RhcnRUaW1lOwot
ICAgIGlmIChtX3N0YXJ0VGltZSA8PSAwKQotICAgICAgICByZXR1cm4gMDsKLSAgICBpZiAocG9z
dEFjdGl2ZSgpKQotICAgICAgICByZXR1cm4gMTsKLQorICAgIGlmIChwYXVzZWQoKSkgeworICAg
ICAgICBpZiAobV9zdGFydFRpbWUgPD0gMCkKKyAgICAgICAgICAgIHJldHVybiBtX3BhdXNlVGlt
ZSAtIG1fcmVxdWVzdGVkU3RhcnRUaW1lIC0gbV9hbmltYXRpb24tPmRlbGF5KCk7CisgICAgICAg
IGVsc2UKKyAgICAgICAgICAgIHJldHVybiBtX3BhdXNlVGltZSAtIG1fc3RhcnRUaW1lOworICAg
IH0KKyAgICBpZiAobV9zdGFydFRpbWUgPD0gMCkgeworICAgICAgICByZXR1cm4gY3VycmVudFRp
bWUoKSAtIG1fcmVxdWVzdGVkU3RhcnRUaW1lIC0gbV9hbmltYXRpb24tPmRlbGF5KCk7CisgICAg
fQogICAgIHJldHVybiBiZWdpbkFuaW1hdGlvblVwZGF0ZVRpbWUoKSAtIG1fc3RhcnRUaW1lOwog
fQorCit2b2lkIEFuaW1hdGlvbkJhc2U6OnNldEVsYXBzZWRUaW1lKGRvdWJsZSB0aW1lKQorewor
ICAgIC8vIFRoZXJlIGFyZSB0aHJlZSBjYXNlczoKKyAgICAvLyAoYSkgc2V0IHRoZSB0aW1lIHRv
IGJlZm9yZSB0aGUgYW5pbWF0aW9uIHN0YXJ0cworICAgIC8vIChiKSBzZXQgdGhlIHRpbWUgdG8g
ZHVyaW5nIHRoZSBhbmltYXRpb24KKyAgICAvLyAoYykgc2V0IHRoZSB0aW1lIHRvIGFmdGVyIHRo
ZSBhbmltYXRpb24gZW5kcworICAgIC8vIFRPRE86IGl0IHNlZW1zIHRoYXQgKGIpIGFuZCAoYykg
YXJlIG5lYXJseSBpZGVudGljYWwKKworICAgIG1fY29tcEFuaW0tPmFuaW1hdGlvbkNvbnRyb2xs
ZXIoKS0+c2V0QmVnaW5BbmltYXRpb25VcGRhdGVUaW1lKC0xKTsKKyAgICBkb3VibGUgY3VycmVu
dFRpbWUgPSBiZWdpbkFuaW1hdGlvblVwZGF0ZVRpbWUoKTsKICAgICAKKyAgICBpZiAodGltZSA8
IDApIHsKKyAgICAgICAgLy8gVGhlIGVsYXBzZWRUaW1lIGNhbiBuZXZlciBiZSBsZXNzIHRoYW4g
dGhlIGRlbGF5IGF3YXkKKyAgICAgICAgdGltZSA9IG1heCgtbV9hbmltYXRpb24tPmRlbGF5KCks
IHRpbWUpOworICAgICAgICBtX3JlcXVlc3RlZFN0YXJ0VGltZSA9IGN1cnJlbnRUaW1lIC0gbV9h
bmltYXRpb24tPmRlbGF5KCkgLSB0aW1lOworICAgICAgICBtX3N0YXJ0VGltZSA9IDA7CisgICAg
ICAgIGlmIChwYXVzZWQoKSkgeworICAgICAgICAgICAgbV9hbmltU3RhdGUgPSBBbmltYXRpb25T
dGF0ZVBhdXNlZFdhaXRUaW1lcjsKKyAgICAgICAgICAgIG1fcGF1c2VUaW1lID0gYmVnaW5Bbmlt
YXRpb25VcGRhdGVUaW1lKCk7CisgICAgICAgICAgICBtX2FwcGxpZWRUaW1lID0gbV9yZXF1ZXN0
ZWRTdGFydFRpbWU7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBtX2FuaW1TdGF0ZSA9
IEFuaW1hdGlvblN0YXRlU3RhcnRXYWl0VGltZXI7CisgICAgICAgICAgICBtX2FwcGxpZWRUaW1l
ID0gY3VycmVudFRpbWU7CisgICAgICAgIH0KKyAgICAgICAgLy8gVGVsbCB0aGUgdGltZXIgdG8g
cmVzZXQuCisgICAgICAgIG1fY29tcEFuaW0tPmFuaW1hdGlvbkNvbnRyb2xsZXIoKS0+dXBkYXRl
QW5pbWF0aW9uVGltZXIoKTsKKyAgICAgICAgLy8gVHJpZ2dlciBhIHN0eWxlIHVwZGF0ZSBzbyB3
ZSByZWRyYXcgaW4gb3VyIGRlbGF5ZWQgc3RhdGUuCisgICAgICAgIGlmIChtX29iamVjdCkgewor
ICAgICAgICAgICAgbV9jb21wQW5pbS0+YW5pbWF0aW9uQ29udHJvbGxlcigpLT5hZGROb2RlQ2hh
bmdlVG9EaXNwYXRjaChtX29iamVjdC0+bm9kZSgpKTsKKyAgICAgICAgfQorICAgIH0gZWxzZSBp
ZiAodGltZSA8IChtX2FuaW1hdGlvbi0+ZHVyYXRpb24oKSAqIG1fYW5pbWF0aW9uLT5pdGVyYXRp
b25Db3VudCgpKSkgeworICAgICAgICAvLyBBcyBsb25nIGFzIHRoZSBpbmNvbWluZyB0aW1lIGlz
IHBvc2l0aXZlLCB3ZSBjYW4gc2V0IHRoZSBzdGFydC9hcHBsaWVkCisgICAgICAgIC8vIHRpbWUg
ZGlyZWN0bHkuCisgICAgICAgIHRpbWUgPSBtYXgoLW1fYW5pbWF0aW9uLT5kZWxheSgpLCB0aW1l
KTsKKyAgICAgICAgbV9zdGFydFRpbWUgPSBjdXJyZW50VGltZSAtIHRpbWU7CisgICAgICAgIG1f
YXBwbGllZFRpbWUgPSBtX3N0YXJ0VGltZSAtIG1fYW5pbWF0aW9uLT5kZWxheSgpOworICAgICAg
ICAvLyBJZiB3ZSB3ZXJlIHdhaXRpbmcgZm9yIGRlbGF5IHRvIGV4cGlyZSwgdGhlbiB3ZSBuZWVk
IHRvIGFkdmFuY2Ugc3RhdGUuCisgICAgICAgIGlmIChtX2FuaW1TdGF0ZSA9PSBBbmltYXRpb25T
dGF0ZVN0YXJ0V2FpdFRpbWVyKSB7CisgICAgICAgICAgICB1cGRhdGVTdGF0ZU1hY2hpbmUoQW5p
bWF0aW9uU3RhdGVJbnB1dFN0YXJ0VGltZXJGaXJlZCwgMCk7CisgICAgICAgIH0gZWxzZSB7Cisg
ICAgICAgICAgICAvLyBUZWxsIHRoZSB0aW1lciB0byByZXNldC4KKyAgICAgICAgICAgIC8vIEZJ
WE1FOiBXaHkgaXMgdGhpcyBhIHByaXZhdGUgZnVuY3Rpb24/IFdoeSBpc24ndCB0aGUgbWFnaWMg
Y29uc3RhbnQgZXhwb3NlZD8KKyAgICAgICAgICAgIG1fY29tcEFuaW0tPmFuaW1hdGlvbkNvbnRy
b2xsZXIoKS0+c2V0QmVnaW5BbmltYXRpb25VcGRhdGVUaW1lKC0xKTsKKyAgICAgICAgICAgIC8v
bV9jb21wQW5pbS0+YW5pbWF0aW9uQ29udHJvbGxlcigpLT51cGRhdGVBbmltYXRpb25UaW1lcigp
OworICAgICAgICAgICAgZ29JbnRvRW5kaW5nT3JMb29waW5nU3RhdGUoKTsKKyAgICAgICAgfQor
ICAgICAgICAvLyBUcmlnZ2VyIGEgc3R5bGUgdXBkYXRlLiBBIHJ1bm5pbmcgYW5pbWF0aW9uCisg
ICAgICAgIC8vIHdpbGwgYmUgdHJpZ2dlcmVkIGluIHRoZSBub3JtYWwgYW5pbWF0aW9uIGxvb3As
IGJ1dCBwYXVzZWQgb3IgZW5kZWQgYW5pbWF0aW9ucyB3b24ndC4KKyAgICAgICAgaWYgKG1fb2Jq
ZWN0KSB7CisgICAgICAgICAgICBpZiAocGF1c2VkKCkpIHsKKyAgICAgICAgICAgICAgICBtX3Bh
dXNlVGltZSA9IGN1cnJlbnRUaW1lOyAvLyBXZSd2ZSBhbHJlYWR5IGFkanVzdGVkIG91ciBzdGFy
dCB0aW1lLgorICAgICAgICAgICAgICAgIC8vIElmIHdlIGFyZSBwYXVzZWQsIG1ha2Ugc3VyZSB3
ZSBtb3ZlIGludG8gdGhlIGNvcnJlY3QgcGF1c2VkIHN0YXRlICh3ZSBtaWdodCBiZSBjb21pbmcg
ZnJvbSBhbiBlbmRpbmcgc3RhdGUgc2V0IGFib3ZlKQorICAgICAgICAgICAgICAgIG1fYW5pbVN0
YXRlID0gQW5pbWF0aW9uU3RhdGVQYXVzZWRSdW47CisgICAgICAgICAgICB9CisgICAgICAgICAg
ICBtX2NvbXBBbmltLT5hbmltYXRpb25Db250cm9sbGVyKCktPmFkZE5vZGVDaGFuZ2VUb0Rpc3Bh
dGNoKG1fb2JqZWN0LT5ub2RlKCkpOworICAgICAgICB9CisgICAgfSBlbHNlIHsKKyAgICAgICAg
Ly8gRnVjayBpdC4gTGV0J3Mgc2V0IHRoZSBzdGFydCB0aW1lIGFuZCBzZWUgd2hhdCBoYXBwZW5z
LgorICAgICAgICBtX3N0YXJ0VGltZSA9IGN1cnJlbnRUaW1lIC0gdGltZTsKKyAgICAgICAgbV9h
cHBsaWVkVGltZSA9IG1fc3RhcnRUaW1lIC0gbV9hbmltYXRpb24tPmRlbGF5KCk7CisgICAgICAg
IGlmIChwYXVzZWQoKSAmJiBtX29iamVjdCkgeworICAgICAgICAgICAgbV9hbmltU3RhdGUgPSBB
bmltYXRpb25TdGF0ZVBhdXNlZERvbmU7CisgICAgICAgICAgICBtX3BhdXNlVGltZSA9IGN1cnJl
bnRUaW1lOyAvLyBXZSd2ZSBhbHJlYWR5IGFkanVzdGVkIG91ciBzdGFydCB0aW1lLgorICAgICAg
ICAgICAgbV9jb21wQW5pbS0+YW5pbWF0aW9uQ29udHJvbGxlcigpLT5hZGROb2RlQ2hhbmdlVG9E
aXNwYXRjaChtX29iamVjdC0+bm9kZSgpKTsKKyAgICAgICAgfQorICAgIH0KK30KKworZG91Ymxl
IEFuaW1hdGlvbkJhc2U6OmdldEFwcGxpZWRUaW1lKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9h
cHBsaWVkVGltZTsKK30KKworZG91YmxlIEFuaW1hdGlvbkJhc2U6OmdldFN0YXJ0VGltZSgpIGNv
bnN0Cit7CisgICAgcmV0dXJuIG1fc3RhcnRUaW1lOworfQorCit2b2lkIEFuaW1hdGlvbkJhc2U6
OnBsYXkoKQoreworICAgIC8vIFdlIG9ubHkgcmVjb21tZW5jZSBwbGF5YmFjayBpZiBvdXIgQ1NT
IHBsYXlzdGF0ZSBhbGxvd3MgaXQuCisgICAgaWYgKHBhdXNlZCgpICYmIG1fYW5pbWF0aW9uLT5w
bGF5U3RhdGUoKSA9PSBBbmltUGxheVN0YXRlUGxheWluZykgeworICAgICAgICBtX3BhdXNlZEJ5
U2NyaXB0ID0gZmFsc2U7CisgICAgICAgIHVwZGF0ZVBsYXlTdGF0ZShBbmltUGxheVN0YXRlUGxh
eWluZyk7CisgICAgfQorfQorCit2b2lkIEFuaW1hdGlvbkJhc2U6OnBhdXNlKCkKK3sKKyAgICBp
ZiAoIXBhdXNlZCgpKSB7CisgICAgICAgIG1fcGF1c2VkQnlTY3JpcHQgPSB0cnVlOworICAgICAg
ICB1cGRhdGVQbGF5U3RhdGUoQW5pbVBsYXlTdGF0ZVBhdXNlZCk7CisgICAgICAgIC8vIE9uY2Ug
YW4gYW5pbWF0aW9uIGhhcyBiZWVuIHBhdXNlZCwgd2Ugbm8gbG9uZ2VyIGFsbG93IGl0IHRvIGJl
IGFjY2VsZXJhdGVkLCBldmVuIGlmIGl0IHJlc3RhcnRzLgorICAgICAgICBtX2FsbG93c0FjY2Vs
ZXJhdGVkID0gZmFsc2U7CisgICAgfQorfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9BbmltYXRpb25CYXNlLmggYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9BbmltYXRpb25CYXNlLmgKaW5kZXggODc3ZDY0
OS4uNDc4MDg4MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vQW5p
bWF0aW9uQmFzZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0FuaW1hdGlv
bkJhc2UuaApAQCAtNzQsNyArNzQsOCBAQCBwdWJsaWM6CiAgICAgICAgIEFuaW1hdGlvblN0YXRl
UGF1c2VkV2FpdFN0eWxlQXZhaWxhYmxlLCAvLyBpbiBwYXVzZSBtb2RlIHdoZW4gd2FpdGluZyBm
b3Igc3R5bGUgc2V0dXAKICAgICAgICAgQW5pbWF0aW9uU3RhdGVQYXVzZWRXYWl0UmVzcG9uc2Us
ICAgLy8gYW5pbWF0aW9uIHBhdXNlZCB3aGVuIGluIFNUQVJUSU5HIHN0YXRlCiAgICAgICAgIEFu
aW1hdGlvblN0YXRlUGF1c2VkUnVuLCAgICAgICAgICAgIC8vIGFuaW1hdGlvbiBwYXVzZWQgd2hl
biBpbiBMT09QSU5HIG9yIEVORElORyBzdGF0ZQotICAgICAgICBBbmltYXRpb25TdGF0ZURvbmUs
ICAgICAgICAgICAgICAgICAvLyBlbmQgdGltZXIgZmlyZWQsIGFuaW1hdGlvbiBmaW5pc2hlZCBh
bmQgcmVtb3ZlZAorICAgICAgICBBbmltYXRpb25TdGF0ZVBhdXNlZERvbmUsICAgICAgICAgICAv
LyBhbmltYXRpb24gcGF1c2VkIHdoZW4gZG9uZQorICAgICAgICBBbmltYXRpb25TdGF0ZURvbmUs
ICAgICAgICAgICAgICAgICAvLyBlbmQgdGltZXIgZmlyZWQsIGFuaW1hdGlvbiBmaW5pc2hlZAog
ICAgICAgICBBbmltYXRpb25TdGF0ZUZpbGxpbmdGb3J3YXJkcyAgICAgICAvLyBhbmltYXRpb24g
aGFzIGVuZGVkIGFuZCBpcyByZXRhaW5pbmcgaXRzIGZpbmFsIHZhbHVlCiAgICAgfTsKIApAQCAt
MTE2LDcgKzExNyw4IEBAIHB1YmxpYzoKICAgICBib29sIHBvc3RBY3RpdmUoKSBjb25zdCB7IHJl
dHVybiBtX2FuaW1TdGF0ZSA9PSBBbmltYXRpb25TdGF0ZURvbmU7IH0KICAgICBib29sIGFjdGl2
ZSgpIGNvbnN0IHsgcmV0dXJuICFwb3N0QWN0aXZlKCkgJiYgIXByZUFjdGl2ZSgpOyB9CiAgICAg
Ym9vbCBydW5uaW5nKCkgY29uc3QgeyByZXR1cm4gIWlzTmV3KCkgJiYgIXBvc3RBY3RpdmUoKTsg
fQotICAgIGJvb2wgcGF1c2VkKCkgY29uc3QgeyByZXR1cm4gbV9wYXVzZVRpbWUgPj0gMDsgfQor
ICAgIGJvb2wgcGF1c2VkKCkgY29uc3QgeyByZXR1cm4gbV9pc1BhdXNlZDsgfQorICAgIGJvb2wg
cGF1c2VkQnlTY3JpcHQoKSBjb25zdCB7IHJldHVybiBtX3BhdXNlZEJ5U2NyaXB0OyB9CiAgICAg
Ym9vbCBpc05ldygpIGNvbnN0IHsgcmV0dXJuIG1fYW5pbVN0YXRlID09IEFuaW1hdGlvblN0YXRl
TmV3OyB9CiAgICAgYm9vbCB3YWl0aW5nRm9yU3RhcnRUaW1lKCkgY29uc3QgeyByZXR1cm4gbV9h
bmltU3RhdGUgPT0gQW5pbWF0aW9uU3RhdGVTdGFydFdhaXRSZXNwb25zZTsgfQogICAgIGJvb2wg
d2FpdGluZ0ZvclN0eWxlQXZhaWxhYmxlKCkgY29uc3QgeyByZXR1cm4gbV9hbmltU3RhdGUgPT0g
QW5pbWF0aW9uU3RhdGVTdGFydFdhaXRTdHlsZUF2YWlsYWJsZTsgfQpAQCAtMTYzLDEwICsxNjUs
MjAgQEAgcHVibGljOgogICAgIAogICAgIC8vIEZyZWV6ZSB0aGUgYW5pbWF0aW9uOyB1c2VkIGJ5
IER1bXBSZW5kZXJUcmVlLgogICAgIHZvaWQgZnJlZXplQXRUaW1lKGRvdWJsZSB0KTsKKyAgICAv
LyBQbGF5IGFuZCBwYXVzZSBBUEkKKyAgICB2b2lkIHBsYXkoKTsKKyAgICB2b2lkIHBhdXNlKCk7
CiAgICAgCiAgICAgZG91YmxlIGJlZ2luQW5pbWF0aW9uVXBkYXRlVGltZSgpIGNvbnN0OwogICAg
IAorICAgIGRvdWJsZSBnZXRBcHBsaWVkVGltZSgpIGNvbnN0OworICAgIGRvdWJsZSBnZXRTdGFy
dFRpbWUoKSBjb25zdDsKICAgICBkb3VibGUgZ2V0RWxhcHNlZFRpbWUoKSBjb25zdDsKKworICAg
IHZvaWQgYWxsb3dBY2NlbGVyYXRlZEFuaW1hdGlvbihib29sKTsKKworICAgIC8vIFNldHRpbmcg
dGhlIGVsYXBzZWQgdGltZSB3aWxsIGFkanVzdCB0aGUgc3RhcnQgdGltZSwgYXBwbGllZCB0aW1l
IGFuZCBwb3NzaWJseSBwYXVzZSB0aW1lLgorICAgIHZvaWQgc2V0RWxhcHNlZFRpbWUoZG91Ymxl
IHRpbWUpOwogICAgIAogICAgIEFuaW1hdGlvbkJhc2UqIG5leHQoKSBjb25zdCB7IHJldHVybiBt
X25leHQ7IH0KICAgICB2b2lkIHNldE5leHQoQW5pbWF0aW9uQmFzZSogYW5pbWF0aW9uKSB7IG1f
bmV4dCA9IGFuaW1hdGlvbjsgfQpAQCAtMTgzLDYgKzE5NSw4IEBAIHB1YmxpYzoKIAogICAgIHN0
YXRpYyBIYXNoU2V0PGludD4gYW5pbWF0YWJsZVNob3J0aGFuZHNBZmZlY3RpbmdQcm9wZXJ0eShp
bnQgcHJvcGVydHkpOwogICAgIAorICAgIEFuaW1hdGlvbiogYW5pbWF0aW9uKCkgeyByZXR1cm4g
bV9hbmltYXRpb24uZ2V0KCk7IH0KKyAgICAKIHByb3RlY3RlZDoKICAgICB2aXJ0dWFsIHZvaWQg
b3ZlcnJpZGVBbmltYXRpb25zKCkgeyB9CiAgICAgdmlydHVhbCB2b2lkIHJlc3VtZU92ZXJyaWRk
ZW5BbmltYXRpb25zKCkgeyB9CkBAIC0yMTksMTQgKzIzMywxOCBAQCBwcm90ZWN0ZWQ6CiAgICAg
QW5pbVN0YXRlIG1fYW5pbVN0YXRlOwogCiAgICAgYm9vbCBtX2lzQW5pbWF0aW5nOyAgICAgICAv
LyB0cmFuc2l0aW9uL2FuaW1hdGlvbiByZXF1aXJlcyBjb250aW51YWwgdGltZXIgZmlyaW5nCi0g
ICAgZG91YmxlIG1fc3RhcnRUaW1lOworICAgIGRvdWJsZSBtX2FwcGxpZWRUaW1lOyAvLyB0aGUg
dGltZSB3aGVuIHRoZSBhbmltYXRpb24gaXMgYXBwbGllZCB0byB0aGUgZWxlbWVudCAocG90ZW50
aWFsbHkgYmVmb3JlIHN0YXJ0IHRpbWUpCisgICAgZG91YmxlIG1fc3RhcnRUaW1lOyAvLyB0aGUg
dGltZSB3aGVuIHRoZSBhbmltYXRpb24gYWN0dWFsbHkgYmVnaW5zIChhZnRlciB0aGUgZGVsYXkp
CiAgICAgZG91YmxlIG1fcGF1c2VUaW1lOworICAgIGJvb2wgbV9pc1BhdXNlZDsKKyAgICBib29s
IG1fcGF1c2VkQnlTY3JpcHQ7CiAgICAgZG91YmxlIG1fcmVxdWVzdGVkU3RhcnRUaW1lOwogICAg
IFJlbmRlck9iamVjdCogbV9vYmplY3Q7CiAKICAgICBSZWZQdHI8QW5pbWF0aW9uPiBtX2FuaW1h
dGlvbjsKICAgICBDb21wb3NpdGVBbmltYXRpb24qIG1fY29tcEFuaW07CiAgICAgYm9vbCBtX2lz
QWNjZWxlcmF0ZWQ7CisgICAgYm9vbCBtX2FsbG93c0FjY2VsZXJhdGVkOwogICAgIGJvb2wgbV90
cmFuc2Zvcm1GdW5jdGlvbkxpc3RWYWxpZDsKICAgICBkb3VibGUgbV90b3RhbER1cmF0aW9uLCBt
X25leHRJdGVyYXRpb25EdXJhdGlvbjsKICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvYW5pbWF0aW9uL0FuaW1hdGlvbkNvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9hbmltYXRpb24vQW5pbWF0aW9uQ29udHJvbGxlci5jcHAKaW5kZXggZGNkZWEwMy4uZThm
ZjczNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vQW5pbWF0aW9u
Q29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vQW5pbWF0
aW9uQ29udHJvbGxlci5jcHAKQEAgLTM3LDEyICszNywxNCBAQAogI2luY2x1ZGUgIkZyYW1lLmgi
CiAjaW5jbHVkZSAiUmVuZGVyVmlldy5oIgogI2luY2x1ZGUgIldlYktpdEFuaW1hdGlvbkV2ZW50
LmgiCisjaW5jbHVkZSAiV2ViS2l0QW5pbWF0aW9uTGlzdC5oIgogI2luY2x1ZGUgIldlYktpdFRy
YW5zaXRpb25FdmVudC5oIgogI2luY2x1ZGUgPHd0Zi9DdXJyZW50VGltZS5oPgogI2luY2x1ZGUg
PHd0Zi9VbnVzZWRQYXJhbS5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKKy8vIEZJWE1FOiBX
aHkgaXNuJ3QgdGhpcyBzZXQgdG8gNjBmcHMgb3Igc29tZXRoaW5nPwogc3RhdGljIGNvbnN0IGRv
dWJsZSBjQW5pbWF0aW9uVGltZXJEZWxheSA9IDAuMDI1Owogc3RhdGljIGNvbnN0IGRvdWJsZSBj
QmVnaW5BbmltYXRpb25VcGRhdGVUaW1lTm90U2V0ID0gLTE7CiAKQEAgLTQ3OSw2ICs0ODEsMTcg
QEAgdm9pZCBBbmltYXRpb25Db250cm9sbGVyUHJpdmF0ZTo6c3RhcnRUaW1lUmVzcG9uc2UoZG91
YmxlIHRpbWUpCiAgICAgbV9sYXN0U3RhcnRUaW1lUmVzcG9uc2VXYWl0ZXIgPSAwOwogfQogCisg
ICAgCitQYXNzUmVmUHRyPFdlYktpdEFuaW1hdGlvbkxpc3Q+IEFuaW1hdGlvbkNvbnRyb2xsZXJQ
cml2YXRlOjphbmltYXRpb25zRm9yUmVuZGVyZXIoUmVuZGVyT2JqZWN0KiByZW5kZXJlcikgY29u
c3QKK3sKKyAgICBSZWZQdHI8Q29tcG9zaXRlQW5pbWF0aW9uPiBhbmltYXRpb24gPSBtX2NvbXBv
c2l0ZUFuaW1hdGlvbnMuZ2V0KHJlbmRlcmVyKTsKKworICAgIGlmICghYW5pbWF0aW9uKQorICAg
ICAgICByZXR1cm4gMDsKKworICAgIHJldHVybiBhbmltYXRpb24tPmFuaW1hdGlvbnMoKTsKK30K
KyAgICAKIEFuaW1hdGlvbkNvbnRyb2xsZXI6OkFuaW1hdGlvbkNvbnRyb2xsZXIoRnJhbWUqIGZy
YW1lKQogICAgIDogbV9kYXRhKG5ldyBBbmltYXRpb25Db250cm9sbGVyUHJpdmF0ZShmcmFtZSkp
CiB7CkBAIC02MTIsNCArNjI1LDkgQEAgYm9vbCBBbmltYXRpb25Db250cm9sbGVyOjpzdXBwb3J0
c0FjY2VsZXJhdGVkQW5pbWF0aW9uT2ZQcm9wZXJ0eShDU1NQcm9wZXJ0eUlEIHAKICNlbmRpZgog
fQogCitQYXNzUmVmUHRyPFdlYktpdEFuaW1hdGlvbkxpc3Q+IEFuaW1hdGlvbkNvbnRyb2xsZXI6
OmFuaW1hdGlvbnNGb3JSZW5kZXJlcihSZW5kZXJPYmplY3QqIHJlbmRlcmVyKSBjb25zdAorewor
ICAgIHJldHVybiBtX2RhdGEtPmFuaW1hdGlvbnNGb3JSZW5kZXJlcihyZW5kZXJlcik7Cit9Cisg
ICAgCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL2FuaW1hdGlvbi9BbmltYXRpb25Db250cm9sbGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L2FuaW1hdGlvbi9BbmltYXRpb25Db250cm9sbGVyLmgKaW5kZXggNTI3OTQ2Ny4uMmJjOTY2OCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vQW5pbWF0aW9uQ29udHJv
bGxlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0FuaW1hdGlvbkNvbnRy
b2xsZXIuaApAQCAtNDIsNiArNDIsNyBAQCBjbGFzcyBGcmFtZTsKIGNsYXNzIE5vZGU7CiBjbGFz
cyBSZW5kZXJPYmplY3Q7CiBjbGFzcyBSZW5kZXJTdHlsZTsKK2NsYXNzIFdlYktpdEFuaW1hdGlv
bkxpc3Q7CiAKIGNsYXNzIEFuaW1hdGlvbkNvbnRyb2xsZXIgewogcHVibGljOgpAQCAtNzMsNiAr
NzQsOCBAQCBwdWJsaWM6CiAgICAgCiAgICAgc3RhdGljIGJvb2wgc3VwcG9ydHNBY2NlbGVyYXRl
ZEFuaW1hdGlvbk9mUHJvcGVydHkoQ1NTUHJvcGVydHlJRCk7CiAKKyAgICBQYXNzUmVmUHRyPFdl
YktpdEFuaW1hdGlvbkxpc3Q+IGFuaW1hdGlvbnNGb3JSZW5kZXJlcihSZW5kZXJPYmplY3QqKSBj
b25zdDsKKyAgICAKIHByaXZhdGU6CiAgICAgQW5pbWF0aW9uQ29udHJvbGxlclByaXZhdGUqIG1f
ZGF0YTsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9Bbmlt
YXRpb25Db250cm9sbGVyUHJpdmF0ZS5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24v
QW5pbWF0aW9uQ29udHJvbGxlclByaXZhdGUuaAppbmRleCAxODZkZDdkLi44OGI4MmE0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9BbmltYXRpb25Db250cm9sbGVy
UHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0FuaW1hdGlvbkNv
bnRyb2xsZXJQcml2YXRlLmgKQEAgLTQ4LDYgKzQ4LDcgQEAgY2xhc3MgRnJhbWU7CiBjbGFzcyBO
b2RlOwogY2xhc3MgUmVuZGVyT2JqZWN0OwogY2xhc3MgUmVuZGVyU3R5bGU7CitjbGFzcyBXZWJL
aXRBbmltYXRpb25MaXN0OwogCiBjbGFzcyBBbmltYXRpb25Db250cm9sbGVyUHJpdmF0ZSB7CiAg
ICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoQW5pbWF0aW9uQ29udHJvbGxlclByaXZhdGUpOyBXVEZf
TUFLRV9GQVNUX0FMTE9DQVRFRDsKQEAgLTkzLDYgKzk0LDggQEAgcHVibGljOgogICAgIHZvaWQg
YWRkVG9TdGFydFRpbWVSZXNwb25zZVdhaXRMaXN0KEFuaW1hdGlvbkJhc2UqLCBib29sIHdpbGxH
ZXRSZXNwb25zZSk7CiAgICAgdm9pZCByZW1vdmVGcm9tU3RhcnRUaW1lUmVzcG9uc2VXYWl0TGlz
dChBbmltYXRpb25CYXNlKik7ICAgIAogICAgIAorICAgIFBhc3NSZWZQdHI8V2ViS2l0QW5pbWF0
aW9uTGlzdD4gYW5pbWF0aW9uc0ZvclJlbmRlcmVyKFJlbmRlck9iamVjdCopIGNvbnN0OworICAg
IAogcHJpdmF0ZToKICAgICB2b2lkIGFuaW1hdGlvblRpbWVyRmlyZWQoVGltZXI8QW5pbWF0aW9u
Q29udHJvbGxlclByaXZhdGU+Kik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
YW5pbWF0aW9uL0NvbXBvc2l0ZUFuaW1hdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2Fu
aW1hdGlvbi9Db21wb3NpdGVBbmltYXRpb24uY3BwCmluZGV4IDYwMjQ5MWUuLjMzYTQ1YzggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0NvbXBvc2l0ZUFuaW1hdGlv
bi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vQ29tcG9zaXRlQW5pbWF0
aW9uLmNwcApAQCAtMzYsNiArMzYsOCBAQAogI2luY2x1ZGUgIktleWZyYW1lQW5pbWF0aW9uLmgi
CiAjaW5jbHVkZSAiUmVuZGVyT2JqZWN0LmgiCiAjaW5jbHVkZSAiUmVuZGVyU3R5bGUuaCIKKyNp
bmNsdWRlICJXZWJLaXRBbmltYXRpb24uaCIKKyNpbmNsdWRlICJXZWJLaXRBbmltYXRpb25MaXN0
LmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtMTkyLDE0ICsxOTQsNyBAQCB2b2lkIENv
bXBvc2l0ZUFuaW1hdGlvbjo6dXBkYXRlS2V5ZnJhbWVBbmltYXRpb25zKFJlbmRlck9iamVjdCog
cmVuZGVyZXIsIFJlbmRlcgogCiAgICAgQW5pbWF0aW9uTmFtZU1hcDo6Y29uc3RfaXRlcmF0b3Ig
a2ZlbmQgPSBtX2tleWZyYW1lQW5pbWF0aW9ucy5lbmQoKTsKICAgICAKLSAgICBpZiAoY3VycmVu
dFN0eWxlICYmIGN1cnJlbnRTdHlsZS0+aGFzQW5pbWF0aW9ucygpICYmIHRhcmdldFN0eWxlLT5o
YXNBbmltYXRpb25zKCkgJiYgKihjdXJyZW50U3R5bGUtPmFuaW1hdGlvbnMoKSkgPT0gKih0YXJn
ZXRTdHlsZS0+YW5pbWF0aW9ucygpKSkgewotICAgICAgICAvLyBUaGUgY3VycmVudCBhbmQgdGFy
Z2V0IGFuaW1hdGlvbnMgYXJlIHRoZSBzYW1lIHNvIHdlIGp1c3QgbmVlZCB0byB0b3NzIGFueSAK
LSAgICAgICAgLy8gYW5pbWF0aW9uIHdoaWNoIGlzIGZpbmlzaGVkIChwb3N0QWN0aXZlKS4KLSAg
ICAgICAgZm9yIChBbmltYXRpb25OYW1lTWFwOjpjb25zdF9pdGVyYXRvciBpdCA9IG1fa2V5ZnJh
bWVBbmltYXRpb25zLmJlZ2luKCk7IGl0ICE9IGtmZW5kOyArK2l0KSB7Ci0gICAgICAgICAgICBp
ZiAoaXQtPnNlY29uZC0+cG9zdEFjdGl2ZSgpKQotICAgICAgICAgICAgICAgIGl0LT5zZWNvbmQt
PnNldEluZGV4KC0xKTsKLSAgICAgICAgfQotICAgIH0gZWxzZSB7CisgICAgaWYgKCFjdXJyZW50
U3R5bGUgfHwgIWN1cnJlbnRTdHlsZS0+aGFzQW5pbWF0aW9ucygpIHx8ICF0YXJnZXRTdHlsZS0+
aGFzQW5pbWF0aW9ucygpIHx8ICooY3VycmVudFN0eWxlLT5hbmltYXRpb25zKCkpICE9ICoodGFy
Z2V0U3R5bGUtPmFuaW1hdGlvbnMoKSkpIHsKICAgICAgICAgLy8gTWFyayBhbGwgZXhpc3Rpbmcg
YW5pbWF0aW9ucyBhcyBubyBsb25nZXIgYWN0aXZlLgogICAgICAgICBmb3IgKEFuaW1hdGlvbk5h
bWVNYXA6OmNvbnN0X2l0ZXJhdG9yIGl0ID0gbV9rZXlmcmFtZUFuaW1hdGlvbnMuYmVnaW4oKTsg
aXQgIT0ga2ZlbmQ7ICsraXQpCiAgICAgICAgICAgICBpdC0+c2Vjb25kLT5zZXRJbmRleCgtMSk7
CkBAIC0yMDcsOCArMjAyLDYgQEAgdm9pZCBDb21wb3NpdGVBbmltYXRpb246OnVwZGF0ZUtleWZy
YW1lQW5pbWF0aW9ucyhSZW5kZXJPYmplY3QqIHJlbmRlcmVyLCBSZW5kZXIKICAgICAgICAgLy8g
VG9zcyB0aGUgYW5pbWF0aW9uIG9yZGVyIG1hcC4KICAgICAgICAgbV9rZXlmcmFtZUFuaW1hdGlv
bk9yZGVyTWFwLmNsZWFyKCk7CiAKLSAgICAgICAgREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBB
dG9taWNTdHJpbmcsIG5vbmUsICgibm9uZSIpKTsKLSAgICAgICAgCiAgICAgICAgIC8vIE5vdyBt
YXJrIGFueSBzdGlsbCBhY3RpdmUgYW5pbWF0aW9ucyBhcyBhY3RpdmUgYW5kIGFkZCBhbnkgbmV3
IGFuaW1hdGlvbnMuCiAgICAgICAgIGlmICh0YXJnZXRTdHlsZS0+YW5pbWF0aW9ucygpKSB7CiAg
ICAgICAgICAgICBpbnQgbnVtQW5pbXMgPSB0YXJnZXRTdHlsZS0+YW5pbWF0aW9ucygpLT5zaXpl
KCk7CkBAIC0yMjMsMTkgKzIxNiwxNiBAQCB2b2lkIENvbXBvc2l0ZUFuaW1hdGlvbjo6dXBkYXRl
S2V5ZnJhbWVBbmltYXRpb25zKFJlbmRlck9iamVjdCogcmVuZGVyZXIsIFJlbmRlcgogICAgICAg
ICAgICAgICAgIFJlZlB0cjxLZXlmcmFtZUFuaW1hdGlvbj4ga2V5ZnJhbWVBbmltID0gbV9rZXlm
cmFtZUFuaW1hdGlvbnMuZ2V0KGFuaW1hdGlvbk5hbWUuaW1wbCgpKTsKICAgICAgICAgICAgICAg
ICAKICAgICAgICAgICAgICAgICBpZiAoa2V5ZnJhbWVBbmltKSB7Ci0gICAgICAgICAgICAgICAg
ICAgIC8vIElmIHRoaXMgYW5pbWF0aW9uIGlzIHBvc3RBY3RpdmUsIHNraXAgaXQgc28gaXQgZ2V0
cyByZW1vdmVkIGF0IHRoZSBlbmQgb2YgdGhpcyBmdW5jdGlvbi4KLSAgICAgICAgICAgICAgICAg
ICAgaWYgKGtleWZyYW1lQW5pbS0+cG9zdEFjdGl2ZSgpKQotICAgICAgICAgICAgICAgICAgICAg
ICAgY29udGludWU7Ci0gICAgICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgICAgICAgICAv
LyBUaGlzIG9uZSBpcyBzdGlsbCBhY3RpdmUuCi0KICAgICAgICAgICAgICAgICAgICAgLy8gQW5p
bWF0aW9ucyBtYXRjaCwgYnV0IHBsYXkgc3RhdGVzIG1heSBkaWZmZXIuIFVwZGF0ZSBpZiBuZWVk
ZWQuCi0gICAgICAgICAgICAgICAgICAgIGtleWZyYW1lQW5pbS0+dXBkYXRlUGxheVN0YXRlKGFu
aW0tPnBsYXlTdGF0ZSgpKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGtleWZyYW1lQW5pbS0+
cGF1c2VkKCkgJiYgIWtleWZyYW1lQW5pbS0+cGF1c2VkQnlTY3JpcHQoKSAmJiBhbmltLT5wbGF5
U3RhdGUoKSA9PSBBbmltUGxheVN0YXRlUGxheWluZykKKyAgICAgICAgICAgICAgICAgICAgICAg
IGtleWZyYW1lQW5pbS0+dXBkYXRlUGxheVN0YXRlKEFuaW1QbGF5U3RhdGVQbGF5aW5nKTsKKyAg
ICAgICAgICAgICAgICAgICAgZWxzZSBpZiAoIWtleWZyYW1lQW5pbS0+cGF1c2VkKCkgJiYgYW5p
bS0+cGxheVN0YXRlKCkgPT0gQW5pbVBsYXlTdGF0ZVBhdXNlZCkKKyAgICAgICAgICAgICAgICAg
ICAgICAgIGtleWZyYW1lQW5pbS0+dXBkYXRlUGxheVN0YXRlKEFuaW1QbGF5U3RhdGVQYXVzZWQp
OwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAg
Ly8gU2V0IHRoZSBzYXZlZCBhbmltYXRpb24gdG8gdGhpcyBuZXcgb25lLCBqdXN0IGluIGNhc2Ug
dGhlIHBsYXkgc3RhdGUgaGFzIGNoYW5nZWQuCiAgICAgICAgICAgICAgICAgICAgIGtleWZyYW1l
QW5pbS0+c2V0QW5pbWF0aW9uKGFuaW0pOwogICAgICAgICAgICAgICAgICAgICBrZXlmcmFtZUFu
aW0tPnNldEluZGV4KGkpOwotICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoKGFuaW0tPmR1cmF0
aW9uKCkgfHwgYW5pbS0+ZGVsYXkoKSkgJiYgYW5pbS0+aXRlcmF0aW9uQ291bnQoKSAmJiBhbmlt
YXRpb25OYW1lICE9IG5vbmUpIHsKKyAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKChhbmltLT5k
dXJhdGlvbigpIHx8IGFuaW0tPmRlbGF5KCkpICYmIGFuaW0tPml0ZXJhdGlvbkNvdW50KCkgJiYg
IWFuaW0tPmlzTm9uZUFuaW1hdGlvbigpKSB7CiAgICAgICAgICAgICAgICAgICAgIGtleWZyYW1l
QW5pbSA9IEtleWZyYW1lQW5pbWF0aW9uOjpjcmVhdGUoY29uc3RfY2FzdDxBbmltYXRpb24qPihh
bmltKSwgcmVuZGVyZXIsIGksIHRoaXMsIHRhcmdldFN0eWxlKTsKICAgICAgICAgICAgICAgICAg
ICAgbV9rZXlmcmFtZUFuaW1hdGlvbnMuc2V0KGtleWZyYW1lQW5pbS0+bmFtZSgpLmltcGwoKSwg
a2V5ZnJhbWVBbmltKTsKICAgICAgICAgICAgICAgICB9CkBAIC01NjAsNCArNTUwLDE5IEBAIHVu
c2lnbmVkIENvbXBvc2l0ZUFuaW1hdGlvbjo6bnVtYmVyT2ZBY3RpdmVBbmltYXRpb25zKCkgY29u
c3QKICAgICByZXR1cm4gY291bnQ7CiB9CiAKK1Bhc3NSZWZQdHI8V2ViS2l0QW5pbWF0aW9uTGlz
dD4gQ29tcG9zaXRlQW5pbWF0aW9uOjphbmltYXRpb25zKCkgY29uc3QKK3sKKyAgICBSZWZQdHI8
V2ViS2l0QW5pbWF0aW9uTGlzdD4gYW5pbWF0aW9ucyA9IFdlYktpdEFuaW1hdGlvbkxpc3Q6OmNy
ZWF0ZSgpOworICAgIGlmICghbV9rZXlmcmFtZUFuaW1hdGlvbnMuaXNFbXB0eSgpKSB7CisgICAg
ICAgIG1fa2V5ZnJhbWVBbmltYXRpb25zLmNoZWNrQ29uc2lzdGVuY3koKTsKKyAgICAgICAgQW5p
bWF0aW9uTmFtZU1hcDo6Y29uc3RfaXRlcmF0b3IgYW5pbWF0aW9uc0VuZCA9IG1fa2V5ZnJhbWVB
bmltYXRpb25zLmVuZCgpOworICAgICAgICBmb3IgKEFuaW1hdGlvbk5hbWVNYXA6OmNvbnN0X2l0
ZXJhdG9yIGl0ID0gbV9rZXlmcmFtZUFuaW1hdGlvbnMuYmVnaW4oKTsgaXQgIT0gYW5pbWF0aW9u
c0VuZDsgKytpdCkgeworICAgICAgICAgICAgS2V5ZnJhbWVBbmltYXRpb24qIGtleWZyYW1lQW5p
bWF0aW9uID0gaXQtPnNlY29uZC5nZXQoKTsKKyAgICAgICAgICAgIFJlZlB0cjxXZWJLaXRBbmlt
YXRpb24+IGFuaW0gPSBXZWJLaXRBbmltYXRpb246OmNyZWF0ZShrZXlmcmFtZUFuaW1hdGlvbik7
CisgICAgICAgICAgICBhbmltYXRpb25zLT5hcHBlbmQoYW5pbSk7CisgICAgICAgIH0KKyAgICB9
CisgICAgcmV0dXJuIGFuaW1hdGlvbnM7Cit9CisgICAgCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9Db21wb3NpdGVBbmlt
YXRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0NvbXBvc2l0ZUFuaW1hdGlv
bi5oCmluZGV4IDI0OWY0YzMuLjFiZmU1ODUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvYW5pbWF0aW9uL0NvbXBvc2l0ZUFuaW1hdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvYW5pbWF0aW9uL0NvbXBvc2l0ZUFuaW1hdGlvbi5oCkBAIC00MSw2ICs0MSw3IEBAIGNsYXNz
IEFuaW1hdGlvbkNvbnRyb2xsZXJQcml2YXRlOwogY2xhc3MgQW5pbWF0aW9uQ29udHJvbGxlcjsK
IGNsYXNzIFJlbmRlck9iamVjdDsKIGNsYXNzIFJlbmRlclN0eWxlOworY2xhc3MgV2ViS2l0QW5p
bWF0aW9uTGlzdDsKIAogLy8gQSBDb21wb3NpdGVBbmltYXRpb24gcmVwcmVzZW50cyBhIGNvbGxl
Y3Rpb24gb2YgYW5pbWF0aW9ucyB0aGF0IGFyZSBydW5uaW5nCiAvLyBvbiBhIHNpbmdsZSBSZW5k
ZXJPYmplY3QsIHN1Y2ggYXMgYSBudW1iZXIgb2YgcHJvcGVydGllcyB0cmFuc2l0aW9uaW5nIGF0
IG9uY2UuCkBAIC04MCw2ICs4MSw4IEBAIHB1YmxpYzoKICAgICBib29sIHBhdXNlVHJhbnNpdGlv
bkF0VGltZShpbnQgcHJvcGVydHksIGRvdWJsZSB0KTsKICAgICB1bnNpZ25lZCBudW1iZXJPZkFj
dGl2ZUFuaW1hdGlvbnMoKSBjb25zdDsKIAorICAgIFBhc3NSZWZQdHI8V2ViS2l0QW5pbWF0aW9u
TGlzdD4gYW5pbWF0aW9ucygpIGNvbnN0OworCiBwcml2YXRlOgogICAgIENvbXBvc2l0ZUFuaW1h
dGlvbihBbmltYXRpb25Db250cm9sbGVyUHJpdmF0ZSogYW5pbWF0aW9uQ29udHJvbGxlcikKICAg
ICAgICAgOiBtX2FuaW1hdGlvbkNvbnRyb2xsZXIoYW5pbWF0aW9uQ29udHJvbGxlcikKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0tleWZyYW1lQW5pbWF0aW9uLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0tleWZyYW1lQW5pbWF0aW9uLmNwcApp
bmRleCA1ZjE5ZmU0Li5kNzQ0ODhmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2Fu
aW1hdGlvbi9LZXlmcmFtZUFuaW1hdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9h
bmltYXRpb24vS2V5ZnJhbWVBbmltYXRpb24uY3BwCkBAIC02OCw3ICs2OCw3IEBAIEtleWZyYW1l
QW5pbWF0aW9uOjp+S2V5ZnJhbWVBbmltYXRpb24oKQogdm9pZCBLZXlmcmFtZUFuaW1hdGlvbjo6
ZmV0Y2hJbnRlcnZhbEVuZHBvaW50c0ZvclByb3BlcnR5KGludCBwcm9wZXJ0eSwgY29uc3QgUmVu
ZGVyU3R5bGUqJiBmcm9tU3R5bGUsIGNvbnN0IFJlbmRlclN0eWxlKiYgdG9TdHlsZSwgZG91Ymxl
JiBwcm9nKSBjb25zdAogewogICAgIC8vIEZpbmQgdGhlIGZpcnN0IGtleQotICAgIGRvdWJsZSBl
bGFwc2VkVGltZSA9IGdldEVsYXBzZWRUaW1lKCk7CisgICAgZG91YmxlIGVsYXBzZWRUaW1lID0g
bWF4KDAuMCwgZ2V0RWxhcHNlZFRpbWUoKSk7CiAgICAgaWYgKG1fYW5pbWF0aW9uLT5kdXJhdGlv
bigpICYmIG1fYW5pbWF0aW9uLT5pdGVyYXRpb25Db3VudCgpICE9IEFuaW1hdGlvbjo6SXRlcmF0
aW9uQ291bnRJbmZpbml0ZSkKICAgICAgICAgZWxhcHNlZFRpbWUgPSBtaW4oZWxhcHNlZFRpbWUs
IG1fYW5pbWF0aW9uLT5kdXJhdGlvbigpICogbV9hbmltYXRpb24tPml0ZXJhdGlvbkNvdW50KCkp
OwogCkBAIC0xMzMsNyArMTMzLDkgQEAgdm9pZCBLZXlmcmFtZUFuaW1hdGlvbjo6ZmV0Y2hJbnRl
cnZhbEVuZHBvaW50c0ZvclByb3BlcnR5KGludCBwcm9wZXJ0eSwgY29uc3QgUmUKICAgICB0b1N0
eWxlID0gbmV4dEtleWZyYW1lLnN0eWxlKCk7CiAgICAgCiAgICAgb2Zmc2V0ID0gcHJldktleWZy
YW1lLmtleSgpOwotICAgIHNjYWxlID0gMS4wIC8gKG5leHRLZXlmcmFtZS5rZXkoKSAtIHByZXZL
ZXlmcmFtZS5rZXkoKSk7CisgICAgZG91YmxlIHNjYWxlRGl2aXNvciA9IChuZXh0S2V5ZnJhbWUu
a2V5KCkgLSBwcmV2S2V5ZnJhbWUua2V5KCkpOworICAgIGlmIChzY2FsZURpdmlzb3IgIT0gMCkK
KyAgICAgICAgc2NhbGUgPSAxLjAgLyBzY2FsZURpdmlzb3I7CiAKICAgICBjb25zdCBUaW1pbmdG
dW5jdGlvbiogdGltaW5nRnVuY3Rpb24gPSAwOwogICAgIGlmIChmcm9tU3R5bGUtPmFuaW1hdGlv
bnMoKSAmJiBmcm9tU3R5bGUtPmFuaW1hdGlvbnMoKS0+c2l6ZSgpID4gMCkgewpAQCAtMjQ4LDcg
KzI1MCw3IEBAIGJvb2wgS2V5ZnJhbWVBbmltYXRpb246Omhhc0FuaW1hdGlvbkZvclByb3BlcnR5
KGludCBwcm9wZXJ0eSkgY29uc3QKIGJvb2wgS2V5ZnJhbWVBbmltYXRpb246OnN0YXJ0QW5pbWF0
aW9uKGRvdWJsZSB0aW1lT2Zmc2V0KQogewogI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElO
RykKLSAgICBpZiAobV9vYmplY3QgJiYgbV9vYmplY3QtPmhhc0xheWVyKCkpIHsKKyAgICBpZiAo
bV9hbGxvd3NBY2NlbGVyYXRlZCAmJiBtX29iamVjdCAmJiBtX29iamVjdC0+aGFzTGF5ZXIoKSkg
ewogICAgICAgICBSZW5kZXJMYXllciogbGF5ZXIgPSB0b1JlbmRlckJveE1vZGVsT2JqZWN0KG1f
b2JqZWN0KS0+bGF5ZXIoKTsKICAgICAgICAgaWYgKGxheWVyLT5pc0NvbXBvc2l0ZWQoKSkKICAg
ICAgICAgICAgIHJldHVybiBsYXllci0+YmFja2luZygpLT5zdGFydEFuaW1hdGlvbih0aW1lT2Zm
c2V0LCBtX2FuaW1hdGlvbi5nZXQoKSwgbV9rZXlmcmFtZXMpOwpAQCAtMjY1LDcgKzI2Nyw3IEBA
IHZvaWQgS2V5ZnJhbWVBbmltYXRpb246OnBhdXNlQW5pbWF0aW9uKGRvdWJsZSB0aW1lT2Zmc2V0
KQogICAgICAgICByZXR1cm47CiAKICNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCi0g
ICAgaWYgKG1fb2JqZWN0LT5oYXNMYXllcigpKSB7CisgICAgaWYgKGlzQWNjZWxlcmF0ZWQoKSAm
JiBtX29iamVjdC0+aGFzTGF5ZXIoKSkgewogICAgICAgICBSZW5kZXJMYXllciogbGF5ZXIgPSB0
b1JlbmRlckJveE1vZGVsT2JqZWN0KG1fb2JqZWN0KS0+bGF5ZXIoKTsKICAgICAgICAgaWYgKGxh
eWVyLT5pc0NvbXBvc2l0ZWQoKSkKICAgICAgICAgICAgIGxheWVyLT5iYWNraW5nKCktPmFuaW1h
dGlvblBhdXNlZCh0aW1lT2Zmc2V0LCBtX2tleWZyYW1lcy5hbmltYXRpb25OYW1lKCkpOwpAQCAt
Mjg0LDcgKzI4Niw3IEBAIHZvaWQgS2V5ZnJhbWVBbmltYXRpb246OmVuZEFuaW1hdGlvbigpCiAg
ICAgICAgIHJldHVybjsKIAogI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKLSAgICBp
ZiAobV9vYmplY3QtPmhhc0xheWVyKCkpIHsKKyAgICBpZiAoaXNBY2NlbGVyYXRlZCgpICYmIG1f
b2JqZWN0LT5oYXNMYXllcigpKSB7CiAgICAgICAgIFJlbmRlckxheWVyKiBsYXllciA9IHRvUmVu
ZGVyQm94TW9kZWxPYmplY3QobV9vYmplY3QpLT5sYXllcigpOwogICAgICAgICBpZiAobGF5ZXIt
PmlzQ29tcG9zaXRlZCgpKQogICAgICAgICAgICAgbGF5ZXItPmJhY2tpbmcoKS0+YW5pbWF0aW9u
RmluaXNoZWQobV9rZXlmcmFtZXMuYW5pbWF0aW9uTmFtZSgpKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL1dlYktpdEFuaW1hdGlvbi5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL2FuaW1hdGlvbi9XZWJLaXRBbmltYXRpb24uY3BwCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAuLjE2YzhkNGQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL2FuaW1hdGlvbi9XZWJLaXRBbmltYXRpb24uY3BwCkBAIC0wLDAgKzEsMTQ4IEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENP
TVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09N
UFVURVIsIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VS
RU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4gCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYktpdEFuaW1hdGlv
bi5oIgorCisjaW5jbHVkZSAiQW5pbWF0aW9uLmgiCisjaW5jbHVkZSAiQW5pbWF0aW9uQmFzZS5o
IgorI2luY2x1ZGUgIlJlbmRlclN0eWxlLmgiCisKK3VzaW5nIG5hbWVzcGFjZSBzdGQ7CisKK25h
bWVzcGFjZSBXZWJDb3JlIHsKKworV2ViS2l0QW5pbWF0aW9uOjpXZWJLaXRBbmltYXRpb24oUGFz
c1JlZlB0cjxLZXlmcmFtZUFuaW1hdGlvbj4ga2V5ZnJhbWVBbmltYXRpb24pCisgICAgOiBtX2tl
eWZyYW1lQW5pbWF0aW9uKGtleWZyYW1lQW5pbWF0aW9uKQoreworfQorCitTdHJpbmcgV2ViS2l0
QW5pbWF0aW9uOjpuYW1lKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9rZXlmcmFtZUFuaW1hdGlv
bi0+YW5pbWF0aW9uKCktPm5hbWUoKTsKK30KKworZG91YmxlIFdlYktpdEFuaW1hdGlvbjo6c3Rh
cnRUaW1lKCkgY29uc3QKK3sKKyAgICAvLyBJbiBvdXIgY2FzZSwgc3RhcnQgdGltZSBpcyB0aGUg
dGltZSB0aGUKKyAgICAvLyBhbmltYXRpb24gd2FzIGFwcGxpZWQuIFRoaXMgZG9lcyBub3QgaW5j
bHVkZQorICAgIC8vIGRlbGF5LiBUaGUgbW9tZW50IHRoaW5ncyBzdGFydCBtb3ZpbmcgaXMKKyAg
ICAvLyBhcHBsaWVkVGltZSArIGRlbGF5LgorICAgIHJldHVybiBtX2tleWZyYW1lQW5pbWF0aW9u
LT5nZXRBcHBsaWVkVGltZSgpOworfQorCitkb3VibGUgV2ViS2l0QW5pbWF0aW9uOjpkdXJhdGlv
bigpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fa2V5ZnJhbWVBbmltYXRpb24tPmR1cmF0aW9uKCk7
Cit9CisKK2RvdWJsZSBXZWJLaXRBbmltYXRpb246OmVsYXBzZWRUaW1lKCkgY29uc3QKK3sKKyAg
ICByZXR1cm4gbV9rZXlmcmFtZUFuaW1hdGlvbi0+Z2V0RWxhcHNlZFRpbWUoKTsKK30KKwordm9p
ZCBXZWJLaXRBbmltYXRpb246OnNldEVsYXBzZWRUaW1lKGRvdWJsZSB0aW1lKQoreworICAgIG1f
a2V5ZnJhbWVBbmltYXRpb24tPnNldEVsYXBzZWRUaW1lKHRpbWUpOworfQorCitkb3VibGUgV2Vi
S2l0QW5pbWF0aW9uOjpkZWxheSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fa2V5ZnJhbWVBbmlt
YXRpb24tPmFuaW1hdGlvbigpLT5kZWxheSgpOworfQorCitpbnQgV2ViS2l0QW5pbWF0aW9uOjpp
dGVyYXRpb25Db3VudCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fa2V5ZnJhbWVBbmltYXRpb24t
PmFuaW1hdGlvbigpLT5pdGVyYXRpb25Db3VudCgpOworfQorCitib29sIFdlYktpdEFuaW1hdGlv
bjo6aXRlcmF0ZXNGb3JldmVyKCkgY29uc3QKK3sKKyAgICByZXR1cm4gKG1fa2V5ZnJhbWVBbmlt
YXRpb24tPmFuaW1hdGlvbigpLT5pdGVyYXRpb25Db3VudCgpID09IEFuaW1hdGlvbjo6SXRlcmF0
aW9uQ291bnRJbmZpbml0ZSk7Cit9CisgICAgCitib29sIFdlYktpdEFuaW1hdGlvbjo6cGF1c2Vk
KCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9rZXlmcmFtZUFuaW1hdGlvbi0+cGF1c2VkKCk7Cit9
CisKK2Jvb2wgV2ViS2l0QW5pbWF0aW9uOjpkZWxheWVkKCkgY29uc3QKK3sKKyAgICByZXR1cm4g
bV9rZXlmcmFtZUFuaW1hdGlvbi0+Z2V0RWxhcHNlZFRpbWUoKSA8IDAuMDsKK30KKworYm9vbCBX
ZWJLaXRBbmltYXRpb246OmZpbGxpbmcoKSBjb25zdAoreworICAgIGRvdWJsZSBjdXJyZW50RWxh
cHNlZFRpbWUgPSBtX2tleWZyYW1lQW5pbWF0aW9uLT5nZXRFbGFwc2VkVGltZSgpOworICAgIHVu
c2lnbmVkIGludCBmaWxsTW9kZVN0YXRlID0gbV9rZXlmcmFtZUFuaW1hdGlvbi0+YW5pbWF0aW9u
KCktPmZpbGxNb2RlKCk7CisgICAgCisgICAgLy8gV2UgYXJlIGZpbGxpbmcgaWY6CisgICAgLy8g
ZmlsbE1vZGUgaXMgQm90aC9CYWNrd2FyZHMgYW5kIGN1cnJlbnRUaW1lIDwgZGVsYXkKKyAgICBp
ZiAoY3VycmVudEVsYXBzZWRUaW1lIDwgMC4wICYmIChmaWxsTW9kZVN0YXRlID09IEFuaW1hdGlv
bkZpbGxNb2RlQmFja3dhcmRzIHx8IGZpbGxNb2RlU3RhdGUgPT0gQW5pbWF0aW9uRmlsbE1vZGVC
b3RoKSkKKyAgICAgICAgcmV0dXJuIHRydWU7CisKKyAgICAvLyBPciBpZiBmaWxsTW9kZSBpcyBC
b3RoL0ZvcndhcmRzIGFuZCBpdGVyYXRpb25Db3VudCAqIGR1cmF0aW9uIDwgY3VycmVudFRpbWUK
KyAgICBpZiAoKGl0ZXJhdGlvbkNvdW50KCkgKiBkdXJhdGlvbigpKSA8IGN1cnJlbnRFbGFwc2Vk
VGltZSAmJiAoZmlsbE1vZGVTdGF0ZSA9PSBBbmltYXRpb25GaWxsTW9kZUZvcndhcmRzIHx8IGZp
bGxNb2RlU3RhdGUgPT0gQW5pbWF0aW9uRmlsbE1vZGVCb3RoKSkKKyAgICAgICAgcmV0dXJuIHRy
dWU7CisKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK1dlYktpdEFuaW1hdGlvbjo6RGlyZWN0aW9u
IFdlYktpdEFuaW1hdGlvbjo6ZGlyZWN0aW9uKCkgY29uc3QKK3sKKyAgICBpZiAobV9rZXlmcmFt
ZUFuaW1hdGlvbi0+YW5pbWF0aW9uKCktPmRpcmVjdGlvbigpID09IEFuaW1hdGlvbjo6QW5pbWF0
aW9uRGlyZWN0aW9uTm9ybWFsKQorICAgICAgICByZXR1cm4gRElSRUNUSU9OX05PUk1BTDsKKyAg
ICByZXR1cm4gRElSRUNUSU9OX0FMVEVSTkFURTsKK30KKworV2ViS2l0QW5pbWF0aW9uOjpGaWxs
TW9kZSBXZWJLaXRBbmltYXRpb246OmZpbGxNb2RlKCkgY29uc3QKK3sKKyAgICBzd2l0Y2ggKG1f
a2V5ZnJhbWVBbmltYXRpb24tPmFuaW1hdGlvbigpLT5maWxsTW9kZSgpKSB7CisgICAgICAgIGNh
c2UgQW5pbWF0aW9uRmlsbE1vZGVOb25lOgorICAgICAgICAgICAgcmV0dXJuIEZJTExfTk9ORTsK
KyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIEFuaW1hdGlvbkZpbGxNb2RlRm9yd2Fy
ZHM6CisgICAgICAgICAgICByZXR1cm4gRklMTF9GT1JXQVJEUzsKKyAgICAgICAgICAgIGJyZWFr
OworICAgICAgICBjYXNlIEFuaW1hdGlvbkZpbGxNb2RlQmFja3dhcmRzOgorICAgICAgICAgICAg
cmV0dXJuIEZJTExfQkFDS1dBUkRTOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGRlZmF1
bHQ6CisgICAgICAgICAgICByZXR1cm4gRklMTF9CT1RIOworICAgICAgICAgICAgYnJlYWs7Cisg
ICAgfQorfQorCit2b2lkIFdlYktpdEFuaW1hdGlvbjo6cGF1c2UoKQoreworICAgIG1fa2V5ZnJh
bWVBbmltYXRpb24tPnBhdXNlKCk7Cit9CisKK3ZvaWQgV2ViS2l0QW5pbWF0aW9uOjpwbGF5KCkK
K3sKKyAgICBtX2tleWZyYW1lQW5pbWF0aW9uLT5wbGF5KCk7Cit9CisgICAgCit9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9XZWJLaXRBbmltYXRpb24uaCBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL1dlYktpdEFuaW1hdGlvbi5oCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjczNGJhMTcKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9XZWJLaXRBbmltYXRpb24uaApAQCAtMCwwICsxLDg1
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
Q09NUFVURVIsIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJP
Q1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4gCisgKi8KKworI2lmbmRlZiBXZWJLaXRBbmltYXRpb25faAorI2RlZmluZSBXZWJLaXRB
bmltYXRpb25faAorCisjaW5jbHVkZSAiQW5pbWF0aW9uLmgiCisjaW5jbHVkZSAiQW5pbWF0aW9u
QmFzZS5oIgorI2luY2x1ZGUgIktleWZyYW1lQW5pbWF0aW9uLmgiCisjaW5jbHVkZSAiUmVuZGVy
U3R5bGUuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBXZWJLaXRBbmltYXRpb24g
OiBwdWJsaWMgUmVmQ291bnRlZDxXZWJLaXRBbmltYXRpb24+eworcHVibGljOgorCisgICAgc3Rh
dGljIFBhc3NSZWZQdHI8V2ViS2l0QW5pbWF0aW9uPiBjcmVhdGUoUGFzc1JlZlB0cjxLZXlmcmFt
ZUFuaW1hdGlvbj4ga2V5ZnJhbWVBbmltYXRpb24pCisgICAgeworICAgICAgICByZXR1cm4gYWRv
cHRSZWYobmV3IFdlYktpdEFuaW1hdGlvbihrZXlmcmFtZUFuaW1hdGlvbikpOworICAgIH0KKyAg
ICAKKyAgICB2aXJ0dWFsIH5XZWJLaXRBbmltYXRpb24oKSB7IH0KKyAgICAKKyAgICAvLyBET00g
QVBJCisgICAgCisgICAgU3RyaW5nIG5hbWUoKSBjb25zdDsKKworICAgIGRvdWJsZSBzdGFydFRp
bWUoKSBjb25zdDsKKyAgICBkb3VibGUgZHVyYXRpb24oKSBjb25zdDsKKworICAgIGRvdWJsZSBl
bGFwc2VkVGltZSgpIGNvbnN0OworICAgIHZvaWQgc2V0RWxhcHNlZFRpbWUoZG91YmxlKTsKKwor
ICAgIGRvdWJsZSBkZWxheSgpIGNvbnN0OworICAgIGludCBpdGVyYXRpb25Db3VudCgpIGNvbnN0
OworICAgIGJvb2wgaXRlcmF0ZXNGb3JldmVyKCkgY29uc3Q7CisgICAgCisgICAgYm9vbCBwYXVz
ZWQoKSBjb25zdDsKKyAgICBib29sIGRlbGF5ZWQoKSBjb25zdDsKKyAgICBib29sIGZpbGxpbmco
KSBjb25zdDsKKworICAgIC8vIGRpcmVjdGlvbgorICAgIGVudW0gRGlyZWN0aW9uIHsgRElSRUNU
SU9OX05PUk1BTCwgRElSRUNUSU9OX0FMVEVSTkFURSB9OworICAgIERpcmVjdGlvbiBkaXJlY3Rp
b24oKSBjb25zdDsKKworICAgIC8vIGZpbGwgbW9kZQorICAgIGVudW0gRmlsbE1vZGUgeyBGSUxM
X05PTkUsIEZJTExfQkFDS1dBUkRTLCBGSUxMX0ZPUldBUkRTLCBGSUxMX0JPVEggfTsKKyAgICBG
aWxsTW9kZSBmaWxsTW9kZSgpIGNvbnN0OworICAgIAorICAgIHZvaWQgcGxheSgpOworICAgIHZv
aWQgcGF1c2UoKTsKKworcHJvdGVjdGVkOgorICAgIFdlYktpdEFuaW1hdGlvbihQYXNzUmVmUHRy
PEtleWZyYW1lQW5pbWF0aW9uPik7CisKK3ByaXZhdGU6CisgICAgCisgICAgUmVmUHRyPEtleWZy
YW1lQW5pbWF0aW9uPiBtX2tleWZyYW1lQW5pbWF0aW9uOworfTsKKworfSAvL25hbWVzcGFjZQor
CisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL1dlYktp
dEFuaW1hdGlvbi5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9XZWJLaXRBbmlt
YXRpb24uaWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjIzZjQ5ZjcKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9XZWJLaXRBbmlt
YXRpb24uaWRsCkBAIC0wLDAgKzEsNjMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICogMy4gIE5l
aXRoZXIgdGhlIG5hbWUgb2YgQXBwbGUgQ29tcHV0ZXIsIEluYy4gKCJBcHBsZSIpIG5vciB0aGUg
bmFtZXMgb2YKKyAqICAgICBpdHMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ug
b3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkCisgKiAgICAgZnJvbSB0aGlzIHNvZnR3YXJlIHdp
dGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBB
TkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJM
RSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOwor
ICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5ECisgKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GCisgKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKK21vZHVsZSBodG1sIHsKKworICAgIGludGVyZmFj
ZSBXZWJLaXRBbmltYXRpb24geworCisgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJp
bmcgbmFtZTsKKyAgICAgICAgLy9yZWFkb25seSBhdHRyaWJ1dGUgV2ViS2l0Q1NTS2V5ZnJhbWVz
UnVsZSBrZXlmcmFtZXNSdWxlOworICAgICAgICAvL3JlYWRvbmx5IGF0dHJpYnV0ZSBFbGVtZW50
IGVsZW1lbnQ7CisgICAgICAgIAorICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgZmxvYXQgc3Rh
cnRUaW1lOworICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgZmxvYXQgZHVyYXRpb247CisgICAg
ICAgIGF0dHJpYnV0ZSBmbG9hdCBlbGFwc2VkVGltZTsKKyAgICAgICAgCisgICAgICAgIHJlYWRv
bmx5IGF0dHJpYnV0ZSBmbG9hdCBkZWxheTsKKyAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIGlu
dCBpdGVyYXRpb25Db3VudDsKKyAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIGJvb2xlYW4gaXRl
cmF0ZXNGb3JldmVyOworCisgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBib29sZWFuIHBhdXNl
ZDsKKyAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIGJvb2xlYW4gZGVsYXllZDsKKyAgICAgICAg
cmVhZG9ubHkgYXR0cmlidXRlIGJvb2xlYW4gZmlsbGluZzsKKyAgICAgICAgCisgICAgICAgIGNv
bnN0IHVuc2lnbmVkIHNob3J0IERJUkVDVElPTl9OT1JNQUwgPSAwOworICAgICAgICBjb25zdCB1
bnNpZ25lZCBzaG9ydCBESVJFQ1RJT05fQUxURVJOQVRFID0gMTsKKyAgICAgICAgcmVhZG9ubHkg
YXR0cmlidXRlIHVuc2lnbmVkIHNob3J0IGRpcmVjdGlvbjsKKyAgICAgICAgCisgICAgICAgIGNv
bnN0IHVuc2lnbmVkIHNob3J0IEZJTExfTk9ORSA9IDA7CisgICAgICAgIGNvbnN0IHVuc2lnbmVk
IHNob3J0IEZJTExfQkFDS1dBUkRTID0gMTsKKyAgICAgICAgY29uc3QgdW5zaWduZWQgc2hvcnQg
RklMTF9GT1JXQVJEUyA9IDI7CisgICAgICAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IEZJTExfQk9U
SCA9IDM7CisgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnNpZ25lZCBzaG9ydCBmaWxsTW9k
ZTsKKyAgICAgICAgCisgICAgICAgIHZvaWQgcGxheSgpOworICAgICAgICB2b2lkIHBhdXNlKCk7
CisgICAgfTsKKworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24v
V2ViS2l0QW5pbWF0aW9uTGlzdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9X
ZWJLaXRBbmltYXRpb25MaXN0LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
Li5kNWNiNzYwCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRp
b24vV2ViS2l0QW5pbWF0aW9uTGlzdC5jcHAKQEAgLTAsMCArMSw4NSBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAxMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBg
YEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9S
CisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNp
bmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXZWJLaXRBbmltYXRpb25MaXN0LmgiCisKKyNp
bmNsdWRlICJBbmltYXRpb24uaCIKKyNpbmNsdWRlICJBbmltYXRpb25CYXNlLmgiCisjaW5jbHVk
ZSAiUmVuZGVyU3R5bGUuaCIKKyNpbmNsdWRlICJXZWJLaXRBbmltYXRpb24uaCIKKworbmFtZXNw
YWNlIFdlYkNvcmUgeworICAgIAorV2ViS2l0QW5pbWF0aW9uTGlzdDo6V2ViS2l0QW5pbWF0aW9u
TGlzdCgpCit7Cit9CisKK1dlYktpdEFuaW1hdGlvbkxpc3Q6On5XZWJLaXRBbmltYXRpb25MaXN0
KCkKK3sKK30KKwordW5zaWduZWQgV2ViS2l0QW5pbWF0aW9uTGlzdDo6bGVuZ3RoKCkgY29uc3QK
K3sKKyAgICByZXR1cm4gbV9hbmltYXRpb25zLnNpemUoKTsKK30KKworV2ViS2l0QW5pbWF0aW9u
KiBXZWJLaXRBbmltYXRpb25MaXN0OjppdGVtKHVuc2lnbmVkIGluZGV4KQoreworICAgIGlmIChp
bmRleCA8IG1fYW5pbWF0aW9ucy5zaXplKCkpCisgICAgICAgIHJldHVybiBtX2FuaW1hdGlvbnNb
aW5kZXhdLmdldCgpOworICAgIHJldHVybiAwOworfQorCit2b2lkIFdlYktpdEFuaW1hdGlvbkxp
c3Q6OmRlbGV0ZUFuaW1hdGlvbih1bnNpZ25lZCBpbmRleCkKK3sKKyAgICBpZiAoaW5kZXggPj0g
bV9hbmltYXRpb25zLnNpemUoKSkgeworICAgICAgICByZXR1cm47CisgICAgfQorICAgIAorICAg
IG1fYW5pbWF0aW9ucy5yZW1vdmUoaW5kZXgpOworfQorCit2b2lkIFdlYktpdEFuaW1hdGlvbkxp
c3Q6OmFwcGVuZChSZWZQdHI8V2ViS2l0QW5pbWF0aW9uPiBhbmltYXRpb24pCit7CisgICAgbV9h
bmltYXRpb25zLmFwcGVuZChhbmltYXRpb24pOworfQorCit1bnNpZ25lZCBXZWJLaXRBbmltYXRp
b25MaXN0OjppbnNlcnRBbmltYXRpb24oUmVmUHRyPFdlYktpdEFuaW1hdGlvbj4gYW5pbWF0aW9u
LCB1bnNpZ25lZCBpbmRleCkKK3sKKyAgICBpZiAoIWFuaW1hdGlvbikgeworICAgICAgICByZXR1
cm4gMDsKKyAgICB9CisgICAgCisgICAgaWYgKGluZGV4ID4gbV9hbmltYXRpb25zLnNpemUoKSkg
eworICAgICAgICByZXR1cm4gMDsKKyAgICB9CisgICAgCisgICAgbV9hbmltYXRpb25zLmluc2Vy
dChpbmRleCwgYW5pbWF0aW9uKTsKKyAgICByZXR1cm4gaW5kZXg7Cit9CisgICAgCit9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCisKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0
aW9uL1dlYktpdEFuaW1hdGlvbkxpc3QuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9u
L1dlYktpdEFuaW1hdGlvbkxpc3QuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
Li4xOTg1MjhjCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRp
b24vV2ViS2l0QW5pbWF0aW9uTGlzdC5oCkBAIC0wLDAgKzEsNjEgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMTEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBB
UyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgor
ICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7
IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaWZu
ZGVmIFdlYktpdEFuaW1hdGlvbkxpc3RfaAorI2RlZmluZSBXZWJLaXRBbmltYXRpb25MaXN0X2gK
KworI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CisjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQu
aD4KKyNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CisjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgorCitu
YW1lc3BhY2UgV2ViQ29yZSB7CisgICAgCitjbGFzcyBXZWJLaXRBbmltYXRpb247CisKK2NsYXNz
IFdlYktpdEFuaW1hdGlvbkxpc3QgOiBwdWJsaWMgUmVmQ291bnRlZDxXZWJLaXRBbmltYXRpb25M
aXN0PiB7CitwdWJsaWM6CisgICAgc3RhdGljIFBhc3NSZWZQdHI8V2ViS2l0QW5pbWF0aW9uTGlz
dD4gY3JlYXRlKCkKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgV2ViS2l0QW5p
bWF0aW9uTGlzdCgpKTsKKyAgICB9CisgICAgfldlYktpdEFuaW1hdGlvbkxpc3QoKTsKKyAgICAK
KyAgICB1bnNpZ25lZCBsZW5ndGgoKSBjb25zdDsKKyAgICBXZWJLaXRBbmltYXRpb24qIGl0ZW0o
dW5zaWduZWQgaW5kZXgpOworICAgIAorICAgIHVuc2lnbmVkIGluc2VydEFuaW1hdGlvbihSZWZQ
dHI8V2ViS2l0QW5pbWF0aW9uPiwgdW5zaWduZWQgaW5kZXgpOworICAgIHZvaWQgZGVsZXRlQW5p
bWF0aW9uKHVuc2lnbmVkIGluZGV4KTsKKyAgICB2b2lkIGFwcGVuZChSZWZQdHI8V2ViS2l0QW5p
bWF0aW9uPik7CisgICAgCitwcml2YXRlOgorICAgIFdlYktpdEFuaW1hdGlvbkxpc3QoKTsKKyAg
ICAKKyAgICBWZWN0b3I8UmVmUHRyPFdlYktpdEFuaW1hdGlvbj4gPiBtX2FuaW1hdGlvbnM7Cit9
OworICAgIAorfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gV2ViS2l0QW5pbWF0
aW9uTGlzdF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9XZWJL
aXRBbmltYXRpb25MaXN0LmlkbCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL1dlYktp
dEFuaW1hdGlvbkxpc3QuaWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjRj
Mzc2ZTYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9X
ZWJLaXRBbmltYXRpb25MaXN0LmlkbApAQCAtMCwwICsxLDM2IEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDExIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMg
SVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKKyAq
IENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBP
UiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
CisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworbW9kdWxl
IGh0bWwgeworCisgICAgaW50ZXJmYWNlIFsKKyAgICAgICAgQ3VzdG9tTWFya0Z1bmN0aW9uLAor
ICAgICAgICBIYXNJbmRleEdldHRlcgorICAgIF0gV2ViS2l0QW5pbWF0aW9uTGlzdCB7CisgICAg
ICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnNpZ25lZCBsb25nIGxlbmd0aDsKKyAgICAgICAgV2Vi
S2l0QW5pbWF0aW9uIGl0ZW0oaW4gdW5zaWduZWQgbG9uZyBpbmRleCk7CisgICAgfTsKKworfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNwcAppbmRleCA0YmQzYWVmLi5i
YmYyMDI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNwcApAQCAt
NTcsNiArNTcsNyBAQAogI2luY2x1ZGUgIlJlbmRlclRoZW1lLmgiCiAjaW5jbHVkZSAiUmVuZGVy
Vmlldy5oIgogI2luY2x1ZGUgIlRyYW5zZm9ybVN0YXRlLmgiCisjaW5jbHVkZSAiV2ViS2l0QW5p
bWF0aW9uTGlzdC5oIgogI2luY2x1ZGUgImh0bWxlZGl0aW5nLmgiCiAjaW5jbHVkZSA8YWxnb3Jp
dGhtPgogI2luY2x1ZGUgPHN0ZGlvLmg+CkBAIC0yNTg1LDYgKzI1ODYsMTQgQEAgQW5pbWF0aW9u
Q29udHJvbGxlciogUmVuZGVyT2JqZWN0OjphbmltYXRpb24oKSBjb25zdAogICAgIHJldHVybiBm
cmFtZSgpLT5hbmltYXRpb24oKTsKIH0KIAorUGFzc1JlZlB0cjxXZWJLaXRBbmltYXRpb25MaXN0
PiBSZW5kZXJPYmplY3Q6OmFuaW1hdGlvbnMoKQoreworICAgIEFuaW1hdGlvbkNvbnRyb2xsZXIq
IGFuaW1Db250cm9sbGVyID0gYW5pbWF0aW9uKCk7CisgICAgaWYgKCFhbmltQ29udHJvbGxlcikK
KyAgICAgICAgcmV0dXJuIDA7CisgICAgcmV0dXJuIGFuaW1Db250cm9sbGVyLT5hbmltYXRpb25z
Rm9yUmVuZGVyZXIodGhpcyk7Cit9CisKIHZvaWQgUmVuZGVyT2JqZWN0OjppbWFnZUNoYW5nZWQo
Q2FjaGVkSW1hZ2UqIGltYWdlLCBjb25zdCBJbnRSZWN0KiByZWN0KQogewogICAgIGltYWdlQ2hh
bmdlZChzdGF0aWNfY2FzdDxXcmFwcGVkSW1hZ2VQdHI+KGltYWdlKSwgcmVjdCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmggYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmgKaW5kZXggOGI5ZmEzOC4uOTRmNGY2ZCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuaApAQCAtNTksNiArNTksNyBAQCBj
bGFzcyBSZW5kZXJMYXllcjsKIGNsYXNzIFJlbmRlclRoZW1lOwogY2xhc3MgVHJhbnNmb3JtU3Rh
dGU7CiBjbGFzcyBWaXNpYmxlUG9zaXRpb247CitjbGFzcyBXZWJLaXRBbmltYXRpb25MaXN0Owog
I2lmIEVOQUJMRShTVkcpCiBjbGFzcyBSZW5kZXJTVkdSZXNvdXJjZUNvbnRhaW5lcjsKICNlbmRp
ZgpAQCAtNzUwLDYgKzc1MSw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHJlbW92ZSgpIHsgaWYgKHBh
cmVudCgpKSBwYXJlbnQoKS0+cmVtb3ZlQ2hpbGQodGhpcyk7IH0KIAogICAgIEFuaW1hdGlvbkNv
bnRyb2xsZXIqIGFuaW1hdGlvbigpIGNvbnN0OworICAgIFBhc3NSZWZQdHI8V2ViS2l0QW5pbWF0
aW9uTGlzdD4gYW5pbWF0aW9ucygpOwogCiAgICAgYm9vbCB2aXNpYmxlVG9IaXRUZXN0aW5nKCkg
Y29uc3QgeyByZXR1cm4gc3R5bGUoKS0+dmlzaWJpbGl0eSgpID09IFZJU0lCTEUgJiYgc3R5bGUo
KS0+cG9pbnRlckV2ZW50cygpICE9IFBFX05PTkU7IH0KIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>85251</attachid>
            <date>2011-03-09 16:00:21 -0800</date>
            <delta_ts>2011-03-09 16:17:47 -0800</delta_ts>
            <desc>Part 1 Patch</desc>
            <filename>animation-api-step-1.diff</filename>
            <type>text/plain</type>
            <size>88094</size>
            <attacher name="Dean Jackson">dino</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAxYzM3NmMzLi45ZjMyMzEzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjQgQEAKKzIwMTEtMDMt
MDkgIERlYW4gSmFja3NvbiAgPGRpbm9AYXBwbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD01NDE1MQorICAgICAgICBJbXBsZW1lbnQgYW4gQVBJIHRvIHBsYXkvcGF1c2Uv
c2NydWIgYW5pbWF0aW9ucworICAgICAgICAKKyAgICAgICAgVGhpcyBpcyBQYXJ0IDEuIEFkZHMg
dGhlIG5ldyBXZWJLaXRBbmltYXRpb24gYW5kIFdlYktpdEFuaW1hdGlvbkxpc3QKKyAgICAgICAg
QVBJcywgZXhwb3NlZCB2aWEgRWxlbWVudC5nZXRXZWJLaXRBbmltYXRpb25zKCkuIFRoaXMgZmly
c3QgcGFzcworICAgICAgICBpcyByZWFkLW9ubHkuIE9uZSBuZXcgbGF5b3V0IHRlc3QgdGhhdCBl
eGFtaW5lcyBhbmltYXRpb24KKyAgICAgICAgcHJvcGVydGllcy4gVXBkYXRlIGV4aXN0aW5nIGxh
eW91dCB0ZXN0cyBmb3IgdGhlIG5ldyBpbnRlcmZhY2VzCisgICAgICAgIG9uIFdpbmRvdy4KKwor
ICAgICAgICAqIGFuaW1hdGlvbnMvYW5pbWF0aW9uLWFwaS0xLWV4cGVjdGVkLnR4dDogQWRkZWQu
CisgICAgICAgICogYW5pbWF0aW9ucy9hbmltYXRpb24tYXBpLTEuaHRtbDogQWRkZWQuCisgICAg
ICAgICogZmFzdC9kb20vV2luZG93L3dpbmRvdy1wcm9wZXJ0aWVzLWV4cGVjdGVkLnR4dDoKKyAg
ICAgICAgKiBmYXN0L2RvbS9XaW5kb3cvd2luZG93LXByb3BlcnR5LWRlc2NyaXB0b3JzLWV4cGVj
dGVkLnR4dDoKKyAgICAgICAgKiBmYXN0L2RvbS9wcm90b3R5cGUtaW5oZXJpdGFuY2UtMi1leHBl
Y3RlZC50eHQ6CisgICAgICAgICogZmFzdC9kb20vcHJvdG90eXBlLWluaGVyaXRhbmNlLWV4cGVj
dGVkLnR4dDoKKyAgICAgICAgKiBmYXN0L2pzL2dsb2JhbC1jb25zdHJ1Y3RvcnMtZXhwZWN0ZWQu
dHh0OgorCiAyMDExLTAzLTA5ICBZdXJ5IFNlbWlraGF0c2t5ICA8eXVyeXNAY2hyb21pdW0ub3Jn
PgogCiAgICAgICAgIFJldmlld2VkIGJ5IFBhdmVsIEZlbGRtYW4uCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9hbmltYXRpb25zL2FuaW1hdGlvbi1hcGktMS1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9hbmltYXRpb25zL2FuaW1hdGlvbi1hcGktMS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTBhY2QyNgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2FuaW1hdGlvbnMvYW5pbWF0aW9uLWFwaS0xLWV4cGVjdGVkLnR4dApAQCAtMCwwICsx
LDc0IEBACitUaGlzIHRlc3RzIHRoZSBXZWJLaXRBbmltYXRpb24gaW50ZXJmYWNlLgorCitPbiBz
dWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dl
ZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyB3aW5kb3cuV2ViS2l0QW5pbWF0aW9uIGlz
IGRlZmluZWQuCitQQVNTIHdpbmRvdy5XZWJLaXRBbmltYXRpb25MaXN0IGlzIGRlZmluZWQuCisK
K1Rlc3QgYW4gYWxtb3N0LWRlZmF1bHQgYW5pbWF0aW9uCitQQVNTIGFfYW5pbXMubGVuZ3RoIGlz
IDEKK1BBU1MgYV9hbmltXzAgaXMgZGVmaW5lZC4KKworUEFTUyBhX2FuaW1fMC5uYW1lIGlzICd0
ZXN0MScKK1BBU1MgYV9hbmltXzAuZHVyYXRpb24gaXMgMQorUEFTUyBhX2FuaW1fMC5kZWxheSBp
cyAwCitQQVNTIGFfYW5pbV8wLml0ZXJhdGlvbkNvdW50IGlzIDEKK1BBU1MgYV9hbmltXzAucGF1
c2VkIGlzIGZhbHNlCitQQVNTIGFfYW5pbV8wLmVuZGVkIGlzIGZhbHNlCitQQVNTIGFfYW5pbV8w
LmRpcmVjdGlvbiBpcyB3aW5kb3cuV2ViS2l0QW5pbWF0aW9uLkRJUkVDVElPTl9OT1JNQUwKK1BB
U1MgYV9hbmltXzAuZmlsbE1vZGUgaXMgd2luZG93LldlYktpdEFuaW1hdGlvbi5GSUxMX05PTkUK
KworVGVzdCBhIHNwZWNpZmllZCBhbmltYXRpb24KK1BBU1MgYl9hbmltcy5sZW5ndGggaXMgMQor
UEFTUyBiX2FuaW1fMCBpcyBkZWZpbmVkLgorCitQQVNTIGJfYW5pbV8wLm5hbWUgaXMgJ3Rlc3Qx
JworUEFTUyBiX2FuaW1fMC5kdXJhdGlvbiBpcyAyCitQQVNTIGJfYW5pbV8wLmRlbGF5IGlzIDMK
K1BBU1MgYl9hbmltXzAuaXRlcmF0aW9uQ291bnQgaXMgNAorUEFTUyBiX2FuaW1fMC5wYXVzZWQg
aXMgZmFsc2UKK1BBU1MgYl9hbmltXzAuZW5kZWQgaXMgZmFsc2UKK1BBU1MgYl9hbmltXzAuZGly
ZWN0aW9uIGlzIHdpbmRvdy5XZWJLaXRBbmltYXRpb24uRElSRUNUSU9OX05PUk1BTAorUEFTUyBi
X2FuaW1fMC5maWxsTW9kZSBpcyB3aW5kb3cuV2ViS2l0QW5pbWF0aW9uLkZJTExfTk9ORQorCitU
ZXN0IG5lZ2F0aXZlIGRlbGF5LCBmaWxsIG1vZGUsIGRpcmVjdGlvbiBhbmQgaW5maW5pdGUgaXRl
cmF0aW9ucworUEFTUyBjX2FuaW1zLmxlbmd0aCBpcyAxCitQQVNTIGNfYW5pbV8wIGlzIGRlZmlu
ZWQuCisKK1BBU1MgY19hbmltXzAubmFtZSBpcyAndGVzdDInCitQQVNTIGNfYW5pbV8wLmR1cmF0
aW9uIGlzIDUKK1BBU1MgY19hbmltXzAuZGVsYXkgaXMgLTEKK1BBU1MgY19hbmltXzAuaXRlcmF0
aW9uQ291bnQgaXMgTnVtYmVyLlBPU0lUSVZFX0lORklOSVRZCitQQVNTIGNfYW5pbV8wLnBhdXNl
ZCBpcyBmYWxzZQorUEFTUyBjX2FuaW1fMC5lbmRlZCBpcyBmYWxzZQorUEFTUyBjX2FuaW1fMC5k
aXJlY3Rpb24gaXMgd2luZG93LldlYktpdEFuaW1hdGlvbi5ESVJFQ1RJT05fQUxURVJOQVRFCitQ
QVNTIGNfYW5pbV8wLmZpbGxNb2RlIGlzIHdpbmRvdy5XZWJLaXRBbmltYXRpb24uRklMTF9GT1JX
QVJEUworCitUZXN0IG11bHRpcGxlIGFuaW1hdGlvbnMKK1BBU1MgZF9hbmltcy5sZW5ndGggaXMg
MgorUEFTUyBkX2FuaW1fMCBpcyBkZWZpbmVkLgorCitQQVNTIGRfYW5pbV8wLm5hbWUgaXMgJ3Rl
c3QxJworUEFTUyBkX2FuaW1fMC5kdXJhdGlvbiBpcyAxCitQQVNTIGRfYW5pbV8wLmRlbGF5IGlz
IDAKK1BBU1MgZF9hbmltXzAuaXRlcmF0aW9uQ291bnQgaXMgMTAKK1BBU1MgZF9hbmltXzAucGF1
c2VkIGlzIGZhbHNlCitQQVNTIGRfYW5pbV8wLmVuZGVkIGlzIGZhbHNlCitQQVNTIGRfYW5pbV8w
LmRpcmVjdGlvbiBpcyB3aW5kb3cuV2ViS2l0QW5pbWF0aW9uLkRJUkVDVElPTl9OT1JNQUwKK1BB
U1MgZF9hbmltXzAuZmlsbE1vZGUgaXMgd2luZG93LldlYktpdEFuaW1hdGlvbi5GSUxMX0JBQ0tX
QVJEUworUEFTUyBkX2FuaW1fMSBpcyBkZWZpbmVkLgorCitQQVNTIGRfYW5pbV8xLm5hbWUgaXMg
J3Rlc3QyJworUEFTUyBkX2FuaW1fMS5kdXJhdGlvbiBpcyAyCitQQVNTIGRfYW5pbV8xLmRlbGF5
IGlzIDEKK1BBU1MgZF9hbmltXzEuaXRlcmF0aW9uQ291bnQgaXMgTnVtYmVyLlBPU0lUSVZFX0lO
RklOSVRZCitQQVNTIGRfYW5pbV8xLnBhdXNlZCBpcyBmYWxzZQorUEFTUyBkX2FuaW1fMS5lbmRl
ZCBpcyBmYWxzZQorUEFTUyBkX2FuaW1fMS5kaXJlY3Rpb24gaXMgd2luZG93LldlYktpdEFuaW1h
dGlvbi5ESVJFQ1RJT05fQUxURVJOQVRFCitQQVNTIGRfYW5pbV8xLmZpbGxNb2RlIGlzIHdpbmRv
dy5XZWJLaXRBbmltYXRpb24uRklMTF9CT1RICisKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlz
IHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9hbmltYXRp
b25zL2FuaW1hdGlvbi1hcGktMS5odG1sIGIvTGF5b3V0VGVzdHMvYW5pbWF0aW9ucy9hbmltYXRp
b24tYXBpLTEuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42YTY1N2Rm
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvYW5pbWF0aW9ucy9hbmltYXRpb24tYXBp
LTEuaHRtbApAQCAtMCwwICsxLDE3NSBAQAorPGh0bWw+Cis8aGVhZD4KKzxsaW5rIHJlbD0ic3R5
bGVzaGVldCIgaHJlZj0iLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiPgor
PHN0eWxlIHR5cGU9InRleHQvY3NzIiBtZWRpYT0ic2NyZWVuIj4KKyAgQC13ZWJraXQta2V5ZnJh
bWVzIHRlc3QxIHsKKyAgICBmcm9tIHsgbGVmdDogMTBweDsgfQorICAgIHRvIHsgbGVmdDogMjBw
eDsgfQorICB9CisgIEAtd2Via2l0LWtleWZyYW1lcyB0ZXN0MiB7CisgICAgMCUgeyBsZWZ0OiAx
MHB4OyB9CisgICAgNTAlIHsgbGVmdDogMzBweDsgfQorICAgIDEwMCUgeyBsZWZ0OiAyMHB4OyB9
CisgIH0KKyAgI2EgeworICAgIC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6IHRlc3QxOworICAgIC13
ZWJraXQtYW5pbWF0aW9uLWR1cmF0aW9uOiAxczsKKyAgfQorICAjYiB7CisgICAgLXdlYmtpdC1h
bmltYXRpb24tbmFtZTogdGVzdDE7CisgICAgLXdlYmtpdC1hbmltYXRpb24tZHVyYXRpb246IDJz
OworICAgIC13ZWJraXQtYW5pbWF0aW9uLWRlbGF5OiAzczsKKyAgICAtd2Via2l0LWFuaW1hdGlv
bi1pdGVyYXRpb24tY291bnQ6IDQ7CisgICAgLXdlYmtpdC1hbmltYXRpb24tZGlyZWN0aW9uOiBu
b3JtYWw7CisgICAgLXdlYmtpdC1hbmltYXRpb24tZmlsbC1tb2RlOiBub25lOworICB9CisgICNj
IHsKKyAgICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiB0ZXN0MjsKKyAgICAtd2Via2l0LWFuaW1h
dGlvbi1kdXJhdGlvbjogNXM7CisgICAgLXdlYmtpdC1hbmltYXRpb24tZGVsYXk6IC0xczsKKyAg
ICAtd2Via2l0LWFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IGluZmluaXRlOworICAgIC13ZWJr
aXQtYW5pbWF0aW9uLWRpcmVjdGlvbjogYWx0ZXJuYXRlOworICAgIC13ZWJraXQtYW5pbWF0aW9u
LWZpbGwtbW9kZTogZm9yd2FyZHM7CisgIH0KKyAgI2QgeworICAgIC13ZWJraXQtYW5pbWF0aW9u
LW5hbWU6IHRlc3QxLCB0ZXN0MjsKKyAgICAtd2Via2l0LWFuaW1hdGlvbi1kdXJhdGlvbjogMXMs
IDJzOworICAgIC13ZWJraXQtYW5pbWF0aW9uLWRlbGF5OiAwcywgMXM7CisgICAgLXdlYmtpdC1h
bmltYXRpb24taXRlcmF0aW9uLWNvdW50OiAxMCwgaW5maW5pdGU7CisgICAgLXdlYmtpdC1hbmlt
YXRpb24tZGlyZWN0aW9uOiBub3JtYWwsIGFsdGVybmF0ZTsKKyAgICAtd2Via2l0LWFuaW1hdGlv
bi1maWxsLW1vZGU6IGJhY2t3YXJkcywgYm90aDsKKyAgfQorPC9zdHlsZT4KKzxzY3JpcHQgc3Jj
PSIuLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+
Cis8Ym9keT4KKzxkaXYgaWQ9ImEiPjwvZGl2PgorPGRpdiBpZD0iYiI+PC9kaXY+Cis8ZGl2IGlk
PSJjIj48L2Rpdj4KKzxkaXYgaWQ9ImQiPjwvZGl2PgorPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+
Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxzY3JpcHQ+CisKK2Rlc2NyaXB0aW9uKCJUaGlz
IHRlc3RzIHRoZSBXZWJLaXRBbmltYXRpb24gaW50ZXJmYWNlLiIpOworCitzaG91bGRCZURlZmlu
ZWQoIndpbmRvdy5XZWJLaXRBbmltYXRpb24iKTsKK3Nob3VsZEJlRGVmaW5lZCgid2luZG93Lldl
YktpdEFuaW1hdGlvbkxpc3QiKTsKKworLyogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKiogKi8KKworZGVidWcoIiIpOworZGVidWcoIlRlc3QgYW4gYWxtb3N0
LWRlZmF1bHQgYW5pbWF0aW9uIik7CisKK3ZhciBhID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
ImEiKTsKK3ZhciBhX2FuaW1zID0gYS53ZWJraXRHZXRBbmltYXRpb25zKCk7CisKK3Nob3VsZEJl
KCJhX2FuaW1zLmxlbmd0aCIsICIxIik7CisKK3ZhciBhX2FuaW1fMCA9IGFfYW5pbXNbMF07CisK
K3Nob3VsZEJlRGVmaW5lZCgiYV9hbmltXzAiKTsKK2RlYnVnKCIiKTsKKworc2hvdWxkQmUoImFf
YW5pbV8wLm5hbWUiLCAiJ3Rlc3QxJyIpOworc2hvdWxkQmUoImFfYW5pbV8wLmR1cmF0aW9uIiwg
IjEiKTsKK3Nob3VsZEJlKCJhX2FuaW1fMC5kZWxheSIsICIwIik7CitzaG91bGRCZSgiYV9hbmlt
XzAuaXRlcmF0aW9uQ291bnQiLCAiMSIpOworc2hvdWxkQmUoImFfYW5pbV8wLnBhdXNlZCIsICJm
YWxzZSIpOworc2hvdWxkQmUoImFfYW5pbV8wLmVuZGVkIiwgImZhbHNlIik7CitzaG91bGRCZSgi
YV9hbmltXzAuZGlyZWN0aW9uIiwgIndpbmRvdy5XZWJLaXRBbmltYXRpb24uRElSRUNUSU9OX05P
Uk1BTCIpOworc2hvdWxkQmUoImFfYW5pbV8wLmZpbGxNb2RlIiwgIndpbmRvdy5XZWJLaXRBbmlt
YXRpb24uRklMTF9OT05FIik7CisKKy8qICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqICovCisKK2RlYnVnKCIiKTsKK2RlYnVnKCJUZXN0IGEgc3BlY2lmaWVk
IGFuaW1hdGlvbiIpOworCit2YXIgYiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJiIik7Cit2
YXIgYl9hbmltcyA9IGIud2Via2l0R2V0QW5pbWF0aW9ucygpOworCitzaG91bGRCZSgiYl9hbmlt
cy5sZW5ndGgiLCAiMSIpOworCit2YXIgYl9hbmltXzAgPSBiX2FuaW1zWzBdOworCitzaG91bGRC
ZURlZmluZWQoImJfYW5pbV8wIik7CitkZWJ1ZygiIik7CisKK3Nob3VsZEJlKCJiX2FuaW1fMC5u
YW1lIiwgIid0ZXN0MSciKTsKK3Nob3VsZEJlKCJiX2FuaW1fMC5kdXJhdGlvbiIsICIyIik7Citz
aG91bGRCZSgiYl9hbmltXzAuZGVsYXkiLCAiMyIpOworc2hvdWxkQmUoImJfYW5pbV8wLml0ZXJh
dGlvbkNvdW50IiwgIjQiKTsKK3Nob3VsZEJlKCJiX2FuaW1fMC5wYXVzZWQiLCAiZmFsc2UiKTsK
K3Nob3VsZEJlKCJiX2FuaW1fMC5lbmRlZCIsICJmYWxzZSIpOworc2hvdWxkQmUoImJfYW5pbV8w
LmRpcmVjdGlvbiIsICJ3aW5kb3cuV2ViS2l0QW5pbWF0aW9uLkRJUkVDVElPTl9OT1JNQUwiKTsK
K3Nob3VsZEJlKCJiX2FuaW1fMC5maWxsTW9kZSIsICJ3aW5kb3cuV2ViS2l0QW5pbWF0aW9uLkZJ
TExfTk9ORSIpOworCisvKiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKiAqLworCitkZWJ1ZygiIik7CitkZWJ1ZygiVGVzdCBuZWdhdGl2ZSBkZWxheSwgZmls
bCBtb2RlLCBkaXJlY3Rpb24gYW5kIGluZmluaXRlIGl0ZXJhdGlvbnMiKTsKKwordmFyIGMgPSBk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYyIpOwordmFyIGNfYW5pbXMgPSBjLndlYmtpdEdldEFu
aW1hdGlvbnMoKTsKKworc2hvdWxkQmUoImNfYW5pbXMubGVuZ3RoIiwgIjEiKTsKKwordmFyIGNf
YW5pbV8wID0gY19hbmltc1swXTsKKworc2hvdWxkQmVEZWZpbmVkKCJjX2FuaW1fMCIpOworZGVi
dWcoIiIpOworCitzaG91bGRCZSgiY19hbmltXzAubmFtZSIsICIndGVzdDInIik7CitzaG91bGRC
ZSgiY19hbmltXzAuZHVyYXRpb24iLCAiNSIpOworc2hvdWxkQmUoImNfYW5pbV8wLmRlbGF5Iiwg
Ii0xIik7CitzaG91bGRCZSgiY19hbmltXzAuaXRlcmF0aW9uQ291bnQiLCAiTnVtYmVyLlBPU0lU
SVZFX0lORklOSVRZIik7CitzaG91bGRCZSgiY19hbmltXzAucGF1c2VkIiwgImZhbHNlIik7Citz
aG91bGRCZSgiY19hbmltXzAuZW5kZWQiLCAiZmFsc2UiKTsKK3Nob3VsZEJlKCJjX2FuaW1fMC5k
aXJlY3Rpb24iLCAid2luZG93LldlYktpdEFuaW1hdGlvbi5ESVJFQ1RJT05fQUxURVJOQVRFIik7
CitzaG91bGRCZSgiY19hbmltXzAuZmlsbE1vZGUiLCAid2luZG93LldlYktpdEFuaW1hdGlvbi5G
SUxMX0ZPUldBUkRTIik7CisKKy8qICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqICovCisKK2RlYnVnKCIiKTsKK2RlYnVnKCJUZXN0IG11bHRpcGxlIGFuaW1h
dGlvbnMiKTsKKwordmFyIGQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZCIpOwordmFyIGRf
YW5pbXMgPSBkLndlYmtpdEdldEFuaW1hdGlvbnMoKTsKKworc2hvdWxkQmUoImRfYW5pbXMubGVu
Z3RoIiwgIjIiKTsKKwordmFyIGRfYW5pbV8wID0gZF9hbmltc1swXTsKKworc2hvdWxkQmVEZWZp
bmVkKCJkX2FuaW1fMCIpOworZGVidWcoIiIpOworCitzaG91bGRCZSgiZF9hbmltXzAubmFtZSIs
ICIndGVzdDEnIik7CitzaG91bGRCZSgiZF9hbmltXzAuZHVyYXRpb24iLCAiMSIpOworc2hvdWxk
QmUoImRfYW5pbV8wLmRlbGF5IiwgIjAiKTsKK3Nob3VsZEJlKCJkX2FuaW1fMC5pdGVyYXRpb25D
b3VudCIsICIxMCIpOworc2hvdWxkQmUoImRfYW5pbV8wLnBhdXNlZCIsICJmYWxzZSIpOworc2hv
dWxkQmUoImRfYW5pbV8wLmVuZGVkIiwgImZhbHNlIik7CitzaG91bGRCZSgiZF9hbmltXzAuZGly
ZWN0aW9uIiwgIndpbmRvdy5XZWJLaXRBbmltYXRpb24uRElSRUNUSU9OX05PUk1BTCIpOworc2hv
dWxkQmUoImRfYW5pbV8wLmZpbGxNb2RlIiwgIndpbmRvdy5XZWJLaXRBbmltYXRpb24uRklMTF9C
QUNLV0FSRFMiKTsKKwordmFyIGRfYW5pbV8xID0gZF9hbmltc1sxXTsKKworc2hvdWxkQmVEZWZp
bmVkKCJkX2FuaW1fMSIpOworZGVidWcoIiIpOworCitzaG91bGRCZSgiZF9hbmltXzEubmFtZSIs
ICIndGVzdDInIik7CitzaG91bGRCZSgiZF9hbmltXzEuZHVyYXRpb24iLCAiMiIpOworc2hvdWxk
QmUoImRfYW5pbV8xLmRlbGF5IiwgIjEiKTsKK3Nob3VsZEJlKCJkX2FuaW1fMS5pdGVyYXRpb25D
b3VudCIsICJOdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFkiKTsKK3Nob3VsZEJlKCJkX2FuaW1fMS5w
YXVzZWQiLCAiZmFsc2UiKTsKK3Nob3VsZEJlKCJkX2FuaW1fMS5lbmRlZCIsICJmYWxzZSIpOwor
c2hvdWxkQmUoImRfYW5pbV8xLmRpcmVjdGlvbiIsICJ3aW5kb3cuV2ViS2l0QW5pbWF0aW9uLkRJ
UkVDVElPTl9BTFRFUk5BVEUiKTsKK3Nob3VsZEJlKCJkX2FuaW1fMS5maWxsTW9kZSIsICJ3aW5k
b3cuV2ViS2l0QW5pbWF0aW9uLkZJTExfQk9USCIpOworCitkZWJ1ZygiIik7CitzdWNjZXNzZnVs
bHlQYXJzZWQgPSB0cnVlOworCis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9mYXN0L2pzL3Jl
c291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L3dpbmRvdy1wcm9wZXJ0aWVzLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy93aW5kb3ctcHJvcGVydGll
cy1leHBlY3RlZC50eHQKaW5kZXggNjU4MzFjNi4uZDZmNzc0OCAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvZmFzdC9kb20vV2luZG93L3dpbmRvdy1wcm9wZXJ0aWVzLWV4cGVjdGVkLnR4dAorKysg
Yi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvd2luZG93LXByb3BlcnRpZXMtZXhwZWN0ZWQu
dHh0CkBAIC0xMjMsNiArMTIzLDcgQEAgd2luZG93LkF1ZGlvLnByb3RvdHlwZS5zZXRBdHRyaWJ1
dGUgW2Z1bmN0aW9uXQogd2luZG93LkF1ZGlvLnByb3RvdHlwZS5zZXRBdHRyaWJ1dGVOUyBbZnVu
Y3Rpb25dCiB3aW5kb3cuQXVkaW8ucHJvdG90eXBlLnNldEF0dHJpYnV0ZU5vZGUgW2Z1bmN0aW9u
XQogd2luZG93LkF1ZGlvLnByb3RvdHlwZS5zZXRBdHRyaWJ1dGVOb2RlTlMgW2Z1bmN0aW9uXQor
d2luZG93LkF1ZGlvLnByb3RvdHlwZS53ZWJraXRHZXRBbmltYXRpb25zIFtmdW5jdGlvbl0KIHdp
bmRvdy5BdWRpby5wcm90b3R5cGUud2Via2l0TWF0Y2hlc1NlbGVjdG9yIFtmdW5jdGlvbl0KIHdp
bmRvdy5BdWRpby5wcm90b3R5cGUud2Via2l0UmVxdWVzdEZ1bGxTY3JlZW4gW2Z1bmN0aW9uXQog
d2luZG93LkJlZm9yZUxvYWRFdmVudCBbb2JqZWN0IEJlZm9yZUxvYWRFdmVudENvbnN0cnVjdG9y
XQpAQCAtNzg0LDYgKzc4NSw3IEBAIHdpbmRvdy5FbGVtZW50LnByb3RvdHlwZS5zZXRBdHRyaWJ1
dGUgW2Z1bmN0aW9uXQogd2luZG93LkVsZW1lbnQucHJvdG90eXBlLnNldEF0dHJpYnV0ZU5TIFtm
dW5jdGlvbl0KIHdpbmRvdy5FbGVtZW50LnByb3RvdHlwZS5zZXRBdHRyaWJ1dGVOb2RlIFtmdW5j
dGlvbl0KIHdpbmRvdy5FbGVtZW50LnByb3RvdHlwZS5zZXRBdHRyaWJ1dGVOb2RlTlMgW2Z1bmN0
aW9uXQord2luZG93LkVsZW1lbnQucHJvdG90eXBlLndlYmtpdEdldEFuaW1hdGlvbnMgW2Z1bmN0
aW9uXQogd2luZG93LkVsZW1lbnQucHJvdG90eXBlLndlYmtpdE1hdGNoZXNTZWxlY3RvciBbZnVu
Y3Rpb25dCiB3aW5kb3cuRWxlbWVudC5wcm90b3R5cGUud2Via2l0UmVxdWVzdEZ1bGxTY3JlZW4g
W2Z1bmN0aW9uXQogd2luZG93LkVudGl0eSBbb2JqZWN0IEVudGl0eUNvbnN0cnVjdG9yXQpAQCAt
MTk2Myw4ICsxOTY1LDI3IEBAIHdpbmRvdy5UeXBlRXJyb3IgW2Z1bmN0aW9uXQogd2luZG93LlVJ
RXZlbnQgW29iamVjdCBVSUV2ZW50Q29uc3RydWN0b3JdCiB3aW5kb3cuVUlFdmVudC5wcm90b3R5
cGUgW3ByaW50ZWQgYWJvdmUgYXMgd2luZG93LkV2ZW50LnByb3RvdHlwZV0KIHdpbmRvdy5VUklF
cnJvciBbZnVuY3Rpb25dCit3aW5kb3cuV2ViS2l0QW5pbWF0aW9uIFtvYmplY3QgV2ViS2l0QW5p
bWF0aW9uQ29uc3RydWN0b3JdCit3aW5kb3cuV2ViS2l0QW5pbWF0aW9uLkRJUkVDVElPTl9BTFRF
Uk5BVEUgW251bWJlcl0KK3dpbmRvdy5XZWJLaXRBbmltYXRpb24uRElSRUNUSU9OX05PUk1BTCBb
bnVtYmVyXQord2luZG93LldlYktpdEFuaW1hdGlvbi5GSUxMX0JBQ0tXQVJEUyBbbnVtYmVyXQor
d2luZG93LldlYktpdEFuaW1hdGlvbi5GSUxMX0JPVEggW251bWJlcl0KK3dpbmRvdy5XZWJLaXRB
bmltYXRpb24uRklMTF9GT1JXQVJEUyBbbnVtYmVyXQord2luZG93LldlYktpdEFuaW1hdGlvbi5G
SUxMX05PTkUgW251bWJlcl0KK3dpbmRvdy5XZWJLaXRBbmltYXRpb24ucHJvdG90eXBlIFtvYmpl
Y3QgV2ViS2l0QW5pbWF0aW9uUHJvdG90eXBlXQord2luZG93LldlYktpdEFuaW1hdGlvbi5wcm90
b3R5cGUuRElSRUNUSU9OX0FMVEVSTkFURSBbbnVtYmVyXQord2luZG93LldlYktpdEFuaW1hdGlv
bi5wcm90b3R5cGUuRElSRUNUSU9OX05PUk1BTCBbbnVtYmVyXQord2luZG93LldlYktpdEFuaW1h
dGlvbi5wcm90b3R5cGUuRklMTF9CQUNLV0FSRFMgW251bWJlcl0KK3dpbmRvdy5XZWJLaXRBbmlt
YXRpb24ucHJvdG90eXBlLkZJTExfQk9USCBbbnVtYmVyXQord2luZG93LldlYktpdEFuaW1hdGlv
bi5wcm90b3R5cGUuRklMTF9GT1JXQVJEUyBbbnVtYmVyXQord2luZG93LldlYktpdEFuaW1hdGlv
bi5wcm90b3R5cGUuRklMTF9OT05FIFtudW1iZXJdCit3aW5kb3cuV2ViS2l0QW5pbWF0aW9uLnBy
b3RvdHlwZS5wYXVzZSBbZnVuY3Rpb25dCit3aW5kb3cuV2ViS2l0QW5pbWF0aW9uLnByb3RvdHlw
ZS5wbGF5IFtmdW5jdGlvbl0KIHdpbmRvdy5XZWJLaXRBbmltYXRpb25FdmVudCBbb2JqZWN0IFdl
YktpdEFuaW1hdGlvbkV2ZW50Q29uc3RydWN0b3JdCiB3aW5kb3cuV2ViS2l0QW5pbWF0aW9uRXZl
bnQucHJvdG90eXBlIFtwcmludGVkIGFib3ZlIGFzIHdpbmRvdy5FdmVudC5wcm90b3R5cGVdCit3
aW5kb3cuV2ViS2l0QW5pbWF0aW9uTGlzdCBbb2JqZWN0IFdlYktpdEFuaW1hdGlvbkxpc3RDb25z
dHJ1Y3Rvcl0KK3dpbmRvdy5XZWJLaXRBbmltYXRpb25MaXN0LnByb3RvdHlwZSBbb2JqZWN0IFdl
YktpdEFuaW1hdGlvbkxpc3RQcm90b3R5cGVdCit3aW5kb3cuV2ViS2l0QW5pbWF0aW9uTGlzdC5w
cm90b3R5cGUuaXRlbSBbZnVuY3Rpb25dCiB3aW5kb3cuV2ViS2l0Q1NTS2V5ZnJhbWVSdWxlIFtv
YmplY3QgV2ViS2l0Q1NTS2V5ZnJhbWVSdWxlQ29uc3RydWN0b3JdCiB3aW5kb3cuV2ViS2l0Q1NT
S2V5ZnJhbWVSdWxlLnByb3RvdHlwZSBbcHJpbnRlZCBhYm92ZSBhcyB3aW5kb3cuQ1NTUnVsZS5w
cm90b3R5cGVdCiB3aW5kb3cuV2ViS2l0Q1NTS2V5ZnJhbWVzUnVsZSBbb2JqZWN0IFdlYktpdENT
U0tleWZyYW1lc1J1bGVDb25zdHJ1Y3Rvcl0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qv
ZG9tL1dpbmRvdy93aW5kb3ctcHJvcGVydHktZGVzY3JpcHRvcnMtZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L3dpbmRvdy1wcm9wZXJ0eS1kZXNjcmlwdG9ycy1leHBl
Y3RlZC50eHQKaW5kZXggNjUxNDRmNi4uNmNlNzQ5OSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
ZmFzdC9kb20vV2luZG93L3dpbmRvdy1wcm9wZXJ0eS1kZXNjcmlwdG9ycy1leHBlY3RlZC50eHQK
KysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L3dpbmRvdy1wcm9wZXJ0eS1kZXNjcmlw
dG9ycy1leHBlY3RlZC50eHQKQEAgLTMxMCw3ICszMTAsOSBAQCBQQVNTIHR5cGVvZiBPYmplY3Qu
Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHdpbmRvdywgJ1RpbWVSYW5nZXMnKSBpcyAnb2JqZWN0
JwogUEFTUyB0eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih3aW5kb3csICdU
eXBlRXJyb3InKSBpcyAnb2JqZWN0JwogUEFTUyB0eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5
RGVzY3JpcHRvcih3aW5kb3csICdVSUV2ZW50JykgaXMgJ29iamVjdCcKIFBBU1MgdHlwZW9mIE9i
amVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iod2luZG93LCAnVVJJRXJyb3InKSBpcyAnb2Jq
ZWN0JworUEFTUyB0eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih3aW5kb3cs
ICdXZWJLaXRBbmltYXRpb24nKSBpcyAnb2JqZWN0JwogUEFTUyB0eXBlb2YgT2JqZWN0LmdldE93
blByb3BlcnR5RGVzY3JpcHRvcih3aW5kb3csICdXZWJLaXRBbmltYXRpb25FdmVudCcpIGlzICdv
YmplY3QnCitQQVNTIHR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHdpbmRv
dywgJ1dlYktpdEFuaW1hdGlvbkxpc3QnKSBpcyAnb2JqZWN0JwogUEFTUyB0eXBlb2YgT2JqZWN0
LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih3aW5kb3csICdXZWJLaXRDU1NLZXlmcmFtZVJ1bGUn
KSBpcyAnb2JqZWN0JwogUEFTUyB0eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRv
cih3aW5kb3csICdXZWJLaXRDU1NLZXlmcmFtZXNSdWxlJykgaXMgJ29iamVjdCcKIFBBU1MgdHlw
ZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iod2luZG93LCAnV2ViS2l0Q1NTTWF0
cml4JykgaXMgJ29iamVjdCcKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL3Byb3Rv
dHlwZS1pbmhlcml0YW5jZS0yLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL3By
b3RvdHlwZS1pbmhlcml0YW5jZS0yLWV4cGVjdGVkLnR4dAppbmRleCA0ODQ2MGYxLi40MWViMDE1
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9wcm90b3R5cGUtaW5oZXJpdGFuY2Ut
Mi1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vcHJvdG90eXBlLWluaGVy
aXRhbmNlLTItZXhwZWN0ZWQudHh0CkBAIC00MjgsNiArNDI4LDggQEAgTmV2ZXIgZm91bmQgU1ZH
Vmlld0VsZW1lbnQKIE5ldmVyIGZvdW5kIFNoYXJlZFdvcmtlcgogTmV2ZXIgZm91bmQgU3R5bGVT
aGVldAogTmV2ZXIgZm91bmQgVGV4dE1ldHJpY3MKK05ldmVyIGZvdW5kIFdlYktpdEFuaW1hdGlv
bgorTmV2ZXIgZm91bmQgV2ViS2l0QW5pbWF0aW9uTGlzdAogTmV2ZXIgZm91bmQgV2ViS2l0Q1NT
TWF0cml4CiBOZXZlciBmb3VuZCBXZWJLaXRDU1NUcmFuc2Zvcm1WYWx1ZQogTmV2ZXIgZm91bmQg
V2ViS2l0UG9pbnQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL3Byb3RvdHlwZS1p
bmhlcml0YW5jZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9wcm90b3R5cGUt
aW5oZXJpdGFuY2UtZXhwZWN0ZWQudHh0CmluZGV4IDc4YTAwYWYuLmNiYjU3NzQgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL3Byb3RvdHlwZS1pbmhlcml0YW5jZS1leHBlY3RlZC50
eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vcHJvdG90eXBlLWluaGVyaXRhbmNlLWV4cGVj
dGVkLnR4dApAQCAtNjEzLDggKzYxMywxMiBAQCBQQVNTIGlubmVyLlVJRXZlbnQuaXNJbm5lciBp
cyB0cnVlCiBQQVNTIGlubmVyLlVJRXZlbnQuY29uc3RydWN0b3IuaXNJbm5lciBpcyB0cnVlCiBQ
QVNTIGlubmVyLlVSSUVycm9yLmlzSW5uZXIgaXMgdHJ1ZQogUEFTUyBpbm5lci5VUklFcnJvci5j
b25zdHJ1Y3Rvci5pc0lubmVyIGlzIHRydWUKK1BBU1MgaW5uZXIuV2ViS2l0QW5pbWF0aW9uLmlz
SW5uZXIgaXMgdHJ1ZQorUEFTUyBpbm5lci5XZWJLaXRBbmltYXRpb24uY29uc3RydWN0b3IuaXNJ
bm5lciBpcyB0cnVlCiBQQVNTIGlubmVyLldlYktpdEFuaW1hdGlvbkV2ZW50LmlzSW5uZXIgaXMg
dHJ1ZQogUEFTUyBpbm5lci5XZWJLaXRBbmltYXRpb25FdmVudC5jb25zdHJ1Y3Rvci5pc0lubmVy
IGlzIHRydWUKK1BBU1MgaW5uZXIuV2ViS2l0QW5pbWF0aW9uTGlzdC5pc0lubmVyIGlzIHRydWUK
K1BBU1MgaW5uZXIuV2ViS2l0QW5pbWF0aW9uTGlzdC5jb25zdHJ1Y3Rvci5pc0lubmVyIGlzIHRy
dWUKIFBBU1MgaW5uZXIuV2ViS2l0Q1NTS2V5ZnJhbWVSdWxlLmlzSW5uZXIgaXMgdHJ1ZQogUEFT
UyBpbm5lci5XZWJLaXRDU1NLZXlmcmFtZVJ1bGUuY29uc3RydWN0b3IuaXNJbm5lciBpcyB0cnVl
CiBQQVNTIGlubmVyLldlYktpdENTU0tleWZyYW1lc1J1bGUuaXNJbm5lciBpcyB0cnVlCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2pzL2dsb2JhbC1jb25zdHJ1Y3RvcnMtZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9qcy9nbG9iYWwtY29uc3RydWN0b3JzLWV4cGVjdGVkLnR4
dAppbmRleCBlOGRhZmY5Li41MjdmNzRkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2pz
L2dsb2JhbC1jb25zdHJ1Y3RvcnMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2Zhc3Qv
anMvZ2xvYmFsLWNvbnN0cnVjdG9ycy1leHBlY3RlZC50eHQKQEAgLTI5MSw3ICsyOTEsOSBAQCBQ
QVNTIFRleHRFdmVudC50b1N0cmluZygpIGlzICdbb2JqZWN0IFRleHRFdmVudENvbnN0cnVjdG9y
XScKIFBBU1MgVGV4dE1ldHJpY3MudG9TdHJpbmcoKSBpcyAnW29iamVjdCBUZXh0TWV0cmljc0Nv
bnN0cnVjdG9yXScKIFBBU1MgVGltZVJhbmdlcy50b1N0cmluZygpIGlzICdbb2JqZWN0IFRpbWVS
YW5nZXNDb25zdHJ1Y3Rvcl0nCiBQQVNTIFVJRXZlbnQudG9TdHJpbmcoKSBpcyAnW29iamVjdCBV
SUV2ZW50Q29uc3RydWN0b3JdJworUEFTUyBXZWJLaXRBbmltYXRpb24udG9TdHJpbmcoKSBpcyAn
W29iamVjdCBXZWJLaXRBbmltYXRpb25Db25zdHJ1Y3Rvcl0nCiBQQVNTIFdlYktpdEFuaW1hdGlv
bkV2ZW50LnRvU3RyaW5nKCkgaXMgJ1tvYmplY3QgV2ViS2l0QW5pbWF0aW9uRXZlbnRDb25zdHJ1
Y3Rvcl0nCitQQVNTIFdlYktpdEFuaW1hdGlvbkxpc3QudG9TdHJpbmcoKSBpcyAnW29iamVjdCBX
ZWJLaXRBbmltYXRpb25MaXN0Q29uc3RydWN0b3JdJwogUEFTUyBXZWJLaXRDU1NLZXlmcmFtZVJ1
bGUudG9TdHJpbmcoKSBpcyAnW29iamVjdCBXZWJLaXRDU1NLZXlmcmFtZVJ1bGVDb25zdHJ1Y3Rv
cl0nCiBQQVNTIFdlYktpdENTU0tleWZyYW1lc1J1bGUudG9TdHJpbmcoKSBpcyAnW29iamVjdCBX
ZWJLaXRDU1NLZXlmcmFtZXNSdWxlQ29uc3RydWN0b3JdJwogUEFTUyBXZWJLaXRDU1NNYXRyaXgu
dG9TdHJpbmcoKSBpcyAnW29iamVjdCBXZWJLaXRDU1NNYXRyaXhDb25zdHJ1Y3Rvcl0nCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9BbmRyb2lkLmRlcml2ZWQuanNjYmluZGluZ3MubWsgYi9T
b3VyY2UvV2ViQ29yZS9BbmRyb2lkLmRlcml2ZWQuanNjYmluZGluZ3MubWsKaW5kZXggNmQwNjRh
ZS4uYzAwM2Q2MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQW5kcm9pZC5kZXJpdmVkLmpz
Y2JpbmRpbmdzLm1rCisrKyBiL1NvdXJjZS9XZWJDb3JlL0FuZHJvaWQuZGVyaXZlZC5qc2NiaW5k
aW5ncy5tawpAQCAtMzA3LDYgKzMwNywxNyBAQCAkKEdFTik6ICQoaW50ZXJtZWRpYXRlcykvcGFn
ZS9KUyUuaCA6ICQoTE9DQUxfUEFUSCkvcGFnZS8lLmlkbCAkKGpzX2JpbmRpbmdfc2NyaQogCSQo
dHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCiBMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAk
KEdFTikgJChHRU46JS5oPSUuY3BwKQogCisjIGFuaW1hdGlvbgorR0VOIDo9IFwKKyAgICAkKGlu
dGVybWVkaWF0ZXMpL3BhZ2UvYW5pbWF0aW9uL0pTV2ViS2l0QW5pbWF0aW9uLmggXAorICAgICQo
aW50ZXJtZWRpYXRlcykvcGFnZS9hbmltYXRpb24vSlNXZWJLaXRBbmltYXRpb25MaXN0LmgKKwor
JChHRU4pOiBQUklWQVRFX1BBVEggOj0gJChMT0NBTF9QQVRIKQorJChHRU4pOiBQUklWQVRFX0NV
U1RPTV9UT09MID0gcGVybCAtSSQoUFJJVkFURV9QQVRIKS9iaW5kaW5ncy9zY3JpcHRzICQoUFJJ
VkFURV9QQVRIKS9iaW5kaW5ncy9zY3JpcHRzL2dlbmVyYXRlLWJpbmRpbmdzLnBsIC0tZGVmaW5l
cyAiJChGRUFUVVJFX0RFRklORVMpIExBTkdVQUdFX0pBVkFTQ1JJUFQiIC0tZ2VuZXJhdG9yIEpT
IC0taW5jbHVkZSBkb20gLS1pbmNsdWRlIGh0bWwgLS1vdXRwdXRkaXIgJChkaXIgJEApICQ8Cisk
KEdFTik6ICQoaW50ZXJtZWRpYXRlcykvcGFnZS9hbmltYXRpb24vSlMlLmggOiAkKExPQ0FMX1BB
VEgpL3BhZ2UvYW5pbWF0aW9uLyUuaWRsICQoanNfYmluZGluZ19zY3JpcHRzKQorCSQodHJhbnNm
b3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikg
JChHRU46JS5oPSUuY3BwKQorCiAjIFdlIGFsc28gbmVlZCB0aGUgLmNwcCBmaWxlcywgd2hpY2gg
YXJlIGdlbmVyYXRlZCBhcyBzaWRlIGVmZmVjdHMgb2YgdGhlCiAjIGFib3ZlIHJ1bGVzLiAgU3Bl
Y2lmeWluZyB0aGlzIGV4cGxpY2l0bHkgbWFrZXMgLWoyIHdvcmsuCiAkKHBhdHN1YnN0ICUuaCwl
LmNwcCwkKEdFTikpOiAkKGludGVybWVkaWF0ZXMpL3BhZ2UvJS5jcHAgOiAkKGludGVybWVkaWF0
ZXMpL3BhZ2UvJS5oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9BbmRyb2lkLmRlcml2ZWQu
djhiaW5kaW5ncy5tayBiL1NvdXJjZS9XZWJDb3JlL0FuZHJvaWQuZGVyaXZlZC52OGJpbmRpbmdz
Lm1rCmluZGV4IDUyNGUyOWEuLmMwNjE4NTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0Fu
ZHJvaWQuZGVyaXZlZC52OGJpbmRpbmdzLm1rCisrKyBiL1NvdXJjZS9XZWJDb3JlL0FuZHJvaWQu
ZGVyaXZlZC52OGJpbmRpbmdzLm1rCkBAIC0yOTEsNiArMjkxLDIwIEBAIExPQ0FMX0dFTkVSQVRF
RF9TT1VSQ0VTICs9ICQoR0VOKQogIyBhYm92ZSBydWxlcy4gIFNwZWNpZnlpbmcgdGhpcyBleHBs
aWNpdGx5IG1ha2VzIC1qMiB3b3JrLgogJChwYXRzdWJzdCAlLmgsJS5jcHAsJChHRU4pKTogJChp
bnRlcm1lZGlhdGVzKS9iaW5kaW5ncy8lLmNwcCA6ICQoaW50ZXJtZWRpYXRlcykvYmluZGluZ3Mv
JS5oCiAKKyMgQW5pbWF0aW9uCitHRU4gOj0gXAorICAgICQoaW50ZXJtZWRpYXRlcykvYmluZGlu
Z3MvVjhXZWJLaXRBbmltYXRpb24uaCBcCisgICAgJChpbnRlcm1lZGlhdGVzKS9iaW5kaW5ncy9W
OFdlYktpdEFuaW1hdGlvbkxpc3QuaAorJChHRU4pOiBQUklWQVRFX1BBVEggOj0gJChMT0NBTF9Q
QVRIKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gU09VUkNFX1JPT1Q9JChQUklWQVRF
X1BBVEgpIHBlcmwgLUkkKFBSSVZBVEVfUEFUSCkvYmluZGluZ3Mvc2NyaXB0cyAkKFBSSVZBVEVf
UEFUSCkvYmluZGluZ3Mvc2NyaXB0cy9nZW5lcmF0ZS1iaW5kaW5ncy5wbCAtLWRlZmluZXMgIiQo
RkVBVFVSRV9ERUZJTkVTKSBMQU5HVUFHRV9KQVZBU0NSSVBUIiAtLWdlbmVyYXRvciBWOCAtLWlu
Y2x1ZGUgZG9tIC0taW5jbHVkZSBodG1sIC0tb3V0cHV0ZGlyICQoZGlyICRAKSAkPAorJChHRU4p
OiAkKGludGVybWVkaWF0ZXMpL2JpbmRpbmdzL1Y4JS5oIDogJChMT0NBTF9QQVRIKS9wYWdlL2Fu
aW1hdGlvbi8lLmlkbCAkKGpzX2JpbmRpbmdfc2NyaXB0cykKKwkkKHRyYW5zZm9ybS1nZW5lcmF0
ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMgV2UgYWxz
byBuZWVkIHRoZSAuY3BwIGZpbGVzLCB3aGljaCBhcmUgZ2VuZXJhdGVkIGFzIHNpZGUgZWZmZWN0
cyBvZiB0aGUKKyMgYWJvdmUgcnVsZXMuICBTcGVjaWZ5aW5nIHRoaXMgZXhwbGljaXRseSBtYWtl
cyAtajIgd29yay4KKyQocGF0c3Vic3QgJS5oLCUuY3BwLCQoR0VOKSk6ICQoaW50ZXJtZWRpYXRl
cykvYmluZGluZ3MvJS5jcHAgOiAkKGludGVybWVkaWF0ZXMpL2JpbmRpbmdzLyUuaAorCiBHRU4g
Oj0gXAogICAgICQoaW50ZXJtZWRpYXRlcykvYmluZGluZ3MvVjhNaW1lVHlwZS5oIFwKICAgICAk
KGludGVybWVkaWF0ZXMpL2JpbmRpbmdzL1Y4TWltZVR5cGVBcnJheS5oIFwKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL0FuZHJvaWQubWsgYi9Tb3VyY2UvV2ViQ29yZS9BbmRyb2lkLm1rCmlu
ZGV4IDk4NTk4ZmUuLmEyYzQwZWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0FuZHJvaWQu
bWsKKysrIGIvU291cmNlL1dlYkNvcmUvQW5kcm9pZC5tawpAQCAtNDYwLDYgKzQ2MCw4IEBAIExP
Q0FMX1NSQ19GSUxFUyA6PSAkKExPQ0FMX1NSQ19GSUxFUykgXAogCXBhZ2UvYW5pbWF0aW9uL0Nv
bXBvc2l0ZUFuaW1hdGlvbi5jcHAgXAogCXBhZ2UvYW5pbWF0aW9uL0ltcGxpY2l0QW5pbWF0aW9u
LmNwcCBcCiAJcGFnZS9hbmltYXRpb24vS2V5ZnJhbWVBbmltYXRpb24uY3BwIFwKKwlwYWdlL2Fu
aW1hdGlvbi9XZWJLaXRBbmltYXRpb24uY3BwIFwKKwlwYWdlL2FuaW1hdGlvbi9XZWJLaXRBbmlt
YXRpb25MaXN0LmNwcCBcCiAJXAogCXBsYXRmb3JtL0FyZW5hLmNwcCBcCiAJcGxhdGZvcm0vQ29u
dGVudFR5cGUuY3BwIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0FuZHJvaWQudjhiaW5k
aW5ncy5tayBiL1NvdXJjZS9XZWJDb3JlL0FuZHJvaWQudjhiaW5kaW5ncy5tawppbmRleCA2MmNj
Y2Y1Li43MDA4OTBiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9BbmRyb2lkLnY4YmluZGlu
Z3MubWsKKysrIGIvU291cmNlL1dlYkNvcmUvQW5kcm9pZC52OGJpbmRpbmdzLm1rCkBAIC0xNjQs
NiArMTY0LDcgQEAgTE9DQUxfU1JDX0ZJTEVTICs9IFwKIAliaW5kaW5ncy92OC9jdXN0b20vVjhT
dHlsZVNoZWV0Q3VzdG9tLmNwcCBcCiAJYmluZGluZ3MvdjgvY3VzdG9tL1Y4U3R5bGVTaGVldExp
c3RDdXN0b20uY3BwIFwKIAliaW5kaW5ncy92OC9jdXN0b20vVjhUcmVlV2Fsa2VyQ3VzdG9tLmNw
cCBcCisJYmluZGluZ3MvdjgvY3VzdG9tL1Y4V2ViS2l0QW5pbWF0aW9uQ3VzdG9tLmNwcCBcCiAJ
YmluZGluZ3MvdjgvY3VzdG9tL1Y4V2ViS2l0Q1NTTWF0cml4Q29uc3RydWN0b3IuY3BwIFwKIAli
aW5kaW5ncy92OC9jdXN0b20vVjhXZWJLaXRQb2ludENvbnN0cnVjdG9yLmNwcCBcCiAJYmluZGlu
Z3MvdjgvY3VzdG9tL1Y4V29ya2VyQ29udGV4dEN1c3RvbS5jcHAgXApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4
dAppbmRleCA0OGYyMzdhLi5lODkyYmMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DTWFr
ZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dApAQCAtOTUsNiAr
OTUsNyBAQCBTRVQoV2ViQ29yZV9JRExfSU5DTFVERVMKICAgICBpbnNwZWN0b3IKICAgICBsb2Fk
ZXIvYXBwY2FjaGUKICAgICBwYWdlCisgICAgcGFnZS9hbmltYXRpb24KICAgICBwbHVnaW5zCiAg
ICAgc3RvcmFnZQogICAgIHN2ZwpAQCAtMzQ2LDYgKzM0Nyw5IEBAIFNFVChXZWJDb3JlX0lETF9G
SUxFUwogICAgIHBhZ2UvV2ViS2l0UG9pbnQuaWRsCiAgICAgcGFnZS9Xb3JrZXJOYXZpZ2F0b3Iu
aWRsCiAKKyAgICBwYWdlL2FuaW1hdGlvbi9XZWJLaXRBbmltYXRpb24uaWRsCisgICAgcGFnZS9h
bmltYXRpb24vV2ViS2l0QW5pbWF0aW9uTGlzdC5pZGwKKwogICAgIHBsdWdpbnMvRE9NTWltZVR5
cGUuaWRsCiAgICAgcGx1Z2lucy9ET01NaW1lVHlwZUFycmF5LmlkbAogICAgIHBsdWdpbnMvRE9N
UGx1Z2luLmlkbApAQCAtNTc0LDYgKzU3OCw4IEBAIFNFVChXZWJDb3JlX1NPVVJDRVMKICAgICBi
aW5kaW5ncy9qcy9KU1VpbnQxNkFycmF5Q3VzdG9tLmNwcCAKICAgICBiaW5kaW5ncy9qcy9KU1Vp
bnQzMkFycmF5Q3VzdG9tLmNwcAogICAgIGJpbmRpbmdzL2pzL0pTVWludDhBcnJheUN1c3RvbS5j
cHAKKyAgICBiaW5kaW5ncy9qcy9KU1dlYktpdEFuaW1hdGlvbkN1c3RvbS5jcHAKKyAgICBiaW5k
aW5ncy9qcy9KU1dlYktpdEFuaW1hdGlvbkxpc3RDdXN0b20uY3BwCiAgICAgYmluZGluZ3MvanMv
SlNXZWJLaXRDU1NLZXlmcmFtZVJ1bGVDdXN0b20uY3BwCiAgICAgYmluZGluZ3MvanMvSlNXZWJL
aXRDU1NLZXlmcmFtZXNSdWxlQ3VzdG9tLmNwcAogICAgIGJpbmRpbmdzL2pzL0pTV2ViS2l0Q1NT
TWF0cml4Q3VzdG9tLmNwcApAQCAtMTE4MSw2ICsxMTg3LDggQEAgU0VUKFdlYkNvcmVfU09VUkNF
UwogICAgIHBhZ2UvYW5pbWF0aW9uL0NvbXBvc2l0ZUFuaW1hdGlvbi5jcHAKICAgICBwYWdlL2Fu
aW1hdGlvbi9JbXBsaWNpdEFuaW1hdGlvbi5jcHAKICAgICBwYWdlL2FuaW1hdGlvbi9LZXlmcmFt
ZUFuaW1hdGlvbi5jcHAKKyAgICBwYWdlL2FuaW1hdGlvbi9XZWJLaXRBbmltYXRpb24uY3BwCisg
ICAgcGFnZS9hbmltYXRpb24vV2ViS2l0QW5pbWF0aW9uTGlzdC5jcHAKIAogICAgIHBsYXRmb3Jt
L0FyZW5hLmNwcAogICAgIHBsYXRmb3JtL0NvbnRleHRNZW51LmNwcApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDQ0
MzgwN2UuLmM1M2Y1OTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysg
Yi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw5OCBAQAorMjAxMS0wMy0wOSAg
RGVhbiBKYWNrc29uICA8ZGlub0BhcHBsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTU0MTUxCisgICAgICAgIEltcGxlbWVudCBhbiBBUEkgdG8gcGxheS9wYXVzZS9zY3J1
YiBhbmltYXRpb25zCisKKyAgICAgICAgVGhpcyBpcyBQYXJ0IDEuIEFkZHMgdGhlIG5ldyBXZWJL
aXRBbmltYXRpb24gYW5kIFdlYktpdEFuaW1hdGlvbkxpc3QKKyAgICAgICAgQVBJcywgZXhwb3Nl
ZCB2aWEgRWxlbWVudC5nZXRXZWJLaXRBbmltYXRpb25zKCkuIFRoaXMgZmlyc3QgcGFzcworICAg
ICAgICBpcyBhIHJlYWQtb25seSBBUEkgLSBhIHN1YnNlcXVlbnQgY29tbWl0IHdpbGwgYWRkIHRo
ZSBhYmlsaXR5CisgICAgICAgIHRvIHNjcnViIGFuaW1hdGlvbnMuCisKKyAgICAgICAgVGVzdDog
YW5pbWF0aW9ucy9hbmltYXRpb24tYXBpLTEuaHRtbAorCisgICAgICAgICogQW5kcm9pZC5kZXJp
dmVkLmpzY2JpbmRpbmdzLm1rOgorICAgICAgICAqIEFuZHJvaWQuZGVyaXZlZC52OGJpbmRpbmdz
Lm1rOgorICAgICAgICAqIEFuZHJvaWQubWs6CisgICAgICAgICogQW5kcm9pZC52OGJpbmRpbmdz
Lm1rOgorICAgICAgICAqIENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIENvZGVHZW5lcmF0b3Jz
LnByaToKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy5jcHA6CisgICAgICAgICogRGVyaXZlZFNv
dXJjZXMubWFrZToKKyAgICAgICAgKiBHTlVtYWtlZmlsZS5hbToKKyAgICAgICAgKiBXZWJDb3Jl
Lmd5cGk6CisgICAgICAgICogV2ViQ29yZS5wcm86CisgICAgICAgICogV2ViQ29yZS52Y3Byb2ov
V2ViQ29yZS52Y3Byb2o6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qOgorICAgICAgICAtIEFsbCBidWlsZCBzZXR0aW5ncyB1cGRhdGVkIGZvciBuZXcgZmlsZXMK
KyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU1dlYktpdEFuaW1hdGlvbkN1c3RvbS5jcHA6IEFkZGVk
LgorICAgICAgICAoV2ViQ29yZTo6SlNXZWJLaXRBbmltYXRpb246Oml0ZXJhdGlvbkNvdW50KToK
KyAgICAgICAgLSBDdXN0b20gcHJvcGVydHkgZ2V0dGVyIHNvIHRoYXQgd2UgY2FuIHJldHVybiBJ
TkZJTklUWQorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTV2ViS2l0QW5pbWF0aW9uTGlzdEN1c3Rv
bS5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6SlNXZWJLaXRBbmltYXRpb25MaXN0Ojpt
YXJrQ2hpbGRyZW4pOgorICAgICAgICAtIE1ha2Ugc3VyZSBXZWJLaXRBbmltYXRpb25zIGFyZSBt
YXJrZWQKKyAgICAgICAgKiBiaW5kaW5ncy92OC9jdXN0b20vVjhXZWJLaXRBbmltYXRpb25DdXN0
b20uY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlY4V2Via2l0QW5pbWF0aW9uOjppdGVy
YXRpb25Db3VudEFjY2Vzc29yR2V0dGVyKToKKyAgICAgICAgLSBDdXN0b20gcHJvcGVydHkgZ2V0
dGVyIHNvIHRoYXQgd2UgY2FuIHJldHVybiBJTkZJTklUWQorICAgICAgICAqIGRvbS9FbGVtZW50
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVsZW1lbnQ6OndlYmtpdEdldEFuaW1hdGlvbnMpOgor
ICAgICAgICAqIGRvbS9FbGVtZW50Lmg6CisgICAgICAgICogZG9tL0VsZW1lbnQuaWRsOgorICAg
ICAgICAtIE5ldyBBUEkgZW50cnkgcG9pbnQKKyAgICAgICAgKiBwYWdlL0RPTVdpbmRvdy5pZGw6
CisgICAgICAgIC0gQ29uc3RydWN0b3IgZGVmaW5pdGlvbnMgZm9yIFdlYktpdEFuaW1hdGlvbiBh
bmQgV2ViS2l0QW5pbWF0aW9uTGlzdAorICAgICAgICAqIHBhZ2UvYW5pbWF0aW9uL0FuaW1hdGlv
bkJhc2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QW5pbWF0aW9uQmFzZTo6fkFuaW1hdGlvbkJh
c2UpOgorICAgICAgICAtIFNpbmNlIEFuaW1hdGlvbkJhc2UgY2FuIG5vdyBsaXZlIGxvbmdlciAo
aWYgYSBXZWJLaXRBbmltYXRpb24gaXMKKyAgICAgICAgaGVsZCBpbiBKYXZhc2NyaXB0KSB3ZSBu
ZWVkIHRvIGd1YXJkIGZvciB0aGUgcmVuZGVyZXIgaGF2aW5nIGRpc2FwcGVhcmVkLgorICAgICAg
ICAoV2ViQ29yZTo6QW5pbWF0aW9uQmFzZTo6c2V0RWxhcHNlZFRpbWUpOgorICAgICAgICAoV2Vi
Q29yZTo6QW5pbWF0aW9uQmFzZTo6cGxheSk6CisgICAgICAgIChXZWJDb3JlOjpBbmltYXRpb25C
YXNlOjpwYXVzZSk6CisgICAgICAgIC0gU3R1YiBpbXBsZW1lbnRhdGlvbnMgYXQgcHJlc2VudAor
ICAgICAgICAqIHBhZ2UvYW5pbWF0aW9uL0FuaW1hdGlvbkJhc2UuaDoKKyAgICAgICAgKFdlYkNv
cmU6OkFuaW1hdGlvbkJhc2U6OmFuaW1hdGlvbik6CisgICAgICAgIC0gRXhwb3NlIHRoZSBBbmlt
YXRpb24gcHJvcGVydGllcworICAgICAgICAqIHBhZ2UvYW5pbWF0aW9uL0FuaW1hdGlvbkNvbnRy
b2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QW5pbWF0aW9uQ29udHJvbGxlclByaXZhdGU6
OmFuaW1hdGlvbnNGb3JSZW5kZXJlcik6CisgICAgICAgIChXZWJDb3JlOjpBbmltYXRpb25Db250
cm9sbGVyOjphbmltYXRpb25zRm9yUmVuZGVyZXIpOgorICAgICAgICAtIEJ1aWxkcyB0aGUgbGlz
dCBvZiBXZWJLaXRBbmltYXRpb25zCisgICAgICAgICogcGFnZS9hbmltYXRpb24vQW5pbWF0aW9u
Q29udHJvbGxlci5oOgorICAgICAgICAqIHBhZ2UvYW5pbWF0aW9uL0FuaW1hdGlvbkNvbnRyb2xs
ZXJQcml2YXRlLmg6CisgICAgICAgICogcGFnZS9hbmltYXRpb24vQ29tcG9zaXRlQW5pbWF0aW9u
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNvbXBvc2l0ZUFuaW1hdGlvbjo6dXBkYXRlS2V5ZnJh
bWVBbmltYXRpb25zKToKKyAgICAgICAgLSBNYWtlIHN1cmUgd2UgY2xlYXIgdGhlIHJlbmRlcmVy
IGlmIHdlIGFyZSByZW1vdmluZyB0aGUgYW5pbWF0aW9uCisgICAgICAgIChXZWJDb3JlOjpDb21w
b3NpdGVBbmltYXRpb246OmFuaW1hdGlvbnMpOgorICAgICAgICAqIHBhZ2UvYW5pbWF0aW9uL0Nv
bXBvc2l0ZUFuaW1hdGlvbi5oOgorICAgICAgICAqIHBhZ2UvYW5pbWF0aW9uL1dlYktpdEFuaW1h
dGlvbi5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6V2ViS2l0QW5pbWF0aW9uOjpXZWJL
aXRBbmltYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6V2ViS2l0QW5pbWF0aW9uOjpuYW1lKToK
KyAgICAgICAgKFdlYkNvcmU6OldlYktpdEFuaW1hdGlvbjo6ZHVyYXRpb24pOgorICAgICAgICAo
V2ViQ29yZTo6V2ViS2l0QW5pbWF0aW9uOjplbGFwc2VkVGltZSk6CisgICAgICAgIChXZWJDb3Jl
OjpXZWJLaXRBbmltYXRpb246OnNldEVsYXBzZWRUaW1lKToKKyAgICAgICAgKFdlYkNvcmU6Oldl
YktpdEFuaW1hdGlvbjo6ZGVsYXkpOgorICAgICAgICAoV2ViQ29yZTo6V2ViS2l0QW5pbWF0aW9u
OjppdGVyYXRpb25Db3VudCk6CisgICAgICAgIChXZWJDb3JlOjpXZWJLaXRBbmltYXRpb246OnBh
dXNlZCk6CisgICAgICAgIChXZWJDb3JlOjpXZWJLaXRBbmltYXRpb246OmVuZGVkKToKKyAgICAg
ICAgKFdlYkNvcmU6OldlYktpdEFuaW1hdGlvbjo6ZGlyZWN0aW9uKToKKyAgICAgICAgKFdlYkNv
cmU6OldlYktpdEFuaW1hdGlvbjo6ZmlsbE1vZGUpOgorICAgICAgICAoV2ViQ29yZTo6V2ViS2l0
QW5pbWF0aW9uOjpwYXVzZSk6CisgICAgICAgIChXZWJDb3JlOjpXZWJLaXRBbmltYXRpb246OnBs
YXkpOgorICAgICAgICAtIFRoZSBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgbmV3IEFQSS4gQWxsIHRo
ZSByZWFkLW9ubHkgcGFydHMgYXJlCisgICAgICAgIGRvbmUsIGJ1dCBlbGFwc2VkVGltZSwgcGxh
eSgpIGFuZCBwYXVzZSgpIGFyZSBzdHVicy4KKyAgICAgICAgKiBwYWdlL2FuaW1hdGlvbi9XZWJL
aXRBbmltYXRpb24uaDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpXZWJLaXRBbmltYXRpb246
OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpXZWJLaXRBbmltYXRpb246On5XZWJLaXRBbmlt
YXRpb24pOgorICAgICAgICAqIHBhZ2UvYW5pbWF0aW9uL1dlYktpdEFuaW1hdGlvbi5pZGw6IEFk
ZGVkLgorICAgICAgICAqIHBhZ2UvYW5pbWF0aW9uL1dlYktpdEFuaW1hdGlvbkxpc3QuY3BwOiBB
ZGRlZC4KKyAgICAgICAgKiBwYWdlL2FuaW1hdGlvbi9XZWJLaXRBbmltYXRpb25MaXN0Lmg6IEFk
ZGVkLgorICAgICAgICAqIHBhZ2UvYW5pbWF0aW9uL1dlYktpdEFuaW1hdGlvbkxpc3QuaWRsOiBB
ZGRlZC4KKyAgICAgICAgLSBDb3BpZXMgTm9kZUxpc3QgaW1wbGVtZW50YXRpb24KKyAgICAgICAg
KiByZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlck9i
amVjdDo6YW5pbWF0aW9ucyk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlck9iamVjdC5oOgor
ICAgICAgICAtIE5ldyBhY2Nlc3NvciB0byBjcmVhdGUgYSBsaXN0IG9mIEFuaW1hdGlvbnMgZ2l2
ZW4gYSByZW5kZXJlci4KKwogMjAxMS0wMy0wOSAgQW5kcmV5IEtvc3lha292ICA8Y2FzZXFAY2hy
b21pdW0ub3JnPgogCiAgICAgICAgIFVucmV2aWV3ZWQuIEZpeGVkIGEgY3Jhc2ggaW4gSW5zcGVj
dG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRSZWNlaXZlUmVzcG9uc2UoKSB3aGVuIGxvYWRlciBpcyBu
dWxsIChicm9rZW4gaW4gcjgwNjM5KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ29kZUdl
bmVyYXRvcnMucHJpIGIvU291cmNlL1dlYkNvcmUvQ29kZUdlbmVyYXRvcnMucHJpCmluZGV4IDNl
NDU5YTYuLjFiNGIwNDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NvZGVHZW5lcmF0b3Jz
LnByaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9Db2RlR2VuZXJhdG9ycy5wcmkKQEAgLTMzNiw2ICsz
MzYsOCBAQCBJRExfQklORElOR1MgKz0gXAogICAgIHBhZ2UvU3BlZWNoSW5wdXRSZXN1bHRMaXN0
LmlkbCBcCiAgICAgcGFnZS9XZWJLaXRQb2ludC5pZGwgXAogICAgIHBhZ2UvV29ya2VyTmF2aWdh
dG9yLmlkbCBcCisgICAgcGFnZS9hbmltYXRpb24vV2ViS2l0QW5pbWF0aW9uLmlkbCBcCisgICAg
cGFnZS9hbmltYXRpb24vV2ViS2l0QW5pbWF0aW9uTGlzdC5pZGwgXAogICAgIHBsdWdpbnMvRE9N
UGx1Z2luLmlkbCBcCiAgICAgcGx1Z2lucy9ET01NaW1lVHlwZS5pZGwgXAogICAgIHBsdWdpbnMv
RE9NUGx1Z2luQXJyYXkuaWRsIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRT
b3VyY2VzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLmNwcAppbmRleCA5YWIz
N2VjLi4yNDAyMmY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMuY3BwCkBAIC00MzUsNyArNDM1
LDkgQEAKICNpbmNsdWRlICJKU1VpbnQ4QXJyYXkuY3BwIgogI2luY2x1ZGUgIkpTVUlFdmVudC5j
cHAiCiAjaW5jbHVkZSAiSlNWYWxpZGl0eVN0YXRlLmNwcCIKKyNpbmNsdWRlICJKU1dlYktpdEFu
aW1hdGlvbi5jcHAiCiAjaW5jbHVkZSAiSlNXZWJLaXRBbmltYXRpb25FdmVudC5jcHAiCisjaW5j
bHVkZSAiSlNXZWJLaXRBbmltYXRpb25MaXN0LmNwcCIKICNpbmNsdWRlICJKU1dlYktpdENTU0tl
eWZyYW1lUnVsZS5jcHAiCiAjaW5jbHVkZSAiSlNXZWJLaXRDU1NLZXlmcmFtZXNSdWxlLmNwcCIK
ICNpbmNsdWRlICJKU1dlYktpdENTU1RyYW5zZm9ybVZhbHVlLmNwcCIKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVk
U291cmNlcy5tYWtlCmluZGV4IDkxNTgwMTEuLjlmMWU0MWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKKysrIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNv
dXJjZXMubWFrZQpAQCAtNDAsNiArNDAsNyBAQCBWUEFUSCA9IFwKICAgICAkKFdlYkNvcmUpL2xv
YWRlci9hcHBjYWNoZSBcCiAgICAgJChXZWJDb3JlKS9ub3RpZmljYXRpb25zIFwKICAgICAkKFdl
YkNvcmUpL3BhZ2UgXAorICAgICQoV2ViQ29yZSkvcGFnZS9hbmltYXRpb24gXAogICAgICQoV2Vi
Q29yZSkvcGx1Z2lucyBcCiAgICAgJChXZWJDb3JlKS9zdG9yYWdlIFwKICAgICAkKFdlYkNvcmUp
L3htbCBcCkBAIC01MTIsNyArNTEzLDkgQEAgRE9NX0NMQVNTRVMgPSBcCiAgICAgVHJlZVdhbGtl
ciBcCiAgICAgVUlFdmVudCBcCiAgICAgVmFsaWRpdHlTdGF0ZSBcCisgICAgV2ViS2l0QW5pbWF0
aW9uIFwKICAgICBXZWJLaXRBbmltYXRpb25FdmVudCBcCisgICAgV2ViS2l0QW5pbWF0aW9uTGlz
dCBcCiAgICAgV2ViS2l0Q1NTS2V5ZnJhbWVSdWxlIFwKICAgICBXZWJLaXRDU1NLZXlmcmFtZXNS
dWxlIFwKICAgICBXZWJLaXRDU1NNYXRyaXggXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
R05VbWFrZWZpbGUuYW0gYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQppbmRleCAyZWI3
MjA2Li41ODE3ZmNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQor
KysgYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQpAQCAtNTk4LDcgKzU5OCwxMSBAQCB3
ZWJjb3JlX2J1aWx0X3NvdXJjZXMgKz0gXAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNXZWJH
TFVuaWZvcm1Mb2NhdGlvbi5oIFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTV2ViR0xWZXJ0
ZXhBcnJheU9iamVjdE9FUy5jcHAgXAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNXZWJHTFZl
cnRleEFycmF5T2JqZWN0T0VTLmggXAorCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNXZWJLaXRB
bmltYXRpb24uY3BwIFwKKwlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTV2ViS2l0QW5pbWF0aW9u
LmggXAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNXZWJLaXRBbmltYXRpb25FdmVudC5jcHAg
XAorCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNXZWJLaXRBbmltYXRpb25MaXN0LmggXAorCURl
cml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNXZWJLaXRBbmltYXRpb25MaXN0LmNwcCBcCiAJRGVyaXZl
ZFNvdXJjZXMvV2ViQ29yZS9KU1dlYktpdEFuaW1hdGlvbkV2ZW50LmggXAogCURlcml2ZWRTb3Vy
Y2VzL1dlYkNvcmUvSlNXZWJLaXRDU1NLZXlmcmFtZVJ1bGUuY3BwIFwKIAlEZXJpdmVkU291cmNl
cy9XZWJDb3JlL0pTV2ViS2l0Q1NTS2V5ZnJhbWVSdWxlLmggXApAQCAtODcwLDYgKzg3NCw4IEBA
IHdlYmNvcmVfc291cmNlcyArPSBcCiAJU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNVaW50
MTZBcnJheUN1c3RvbS5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTVWludDMy
QXJyYXlDdXN0b20uY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1VpbnQ4QXJy
YXlDdXN0b20uY3BwIFwKKwlTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dlYktpdEFuaW1h
dGlvbkN1c3RvbS5jcHAgXAorCVNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTV2ViS2l0QW5p
bWF0aW9uTGlzdEN1c3RvbS5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTV2Vi
S2l0Q1NTS2V5ZnJhbWVSdWxlQ3VzdG9tLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvSlNXZWJLaXRDU1NLZXlmcmFtZXNSdWxlQ3VzdG9tLmNwcCBcCiAJU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvSlNXZWJHTFJlbmRlcmluZ0NvbnRleHRDdXN0b20uY3BwIFwKQEAgLTIxODUs
NiArMjE5MSwxMCBAQCB3ZWJjb3JlX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9XZWJDb3JlL3BhZ2Uv
YW5pbWF0aW9uL0ltcGxpY2l0QW5pbWF0aW9uLmggXAogCVNvdXJjZS9XZWJDb3JlL3BhZ2UvYW5p
bWF0aW9uL0tleWZyYW1lQW5pbWF0aW9uLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvcGFnZS9hbmlt
YXRpb24vS2V5ZnJhbWVBbmltYXRpb24uaCBcCisJU291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRp
b24vV2ViS2l0QW5pbWF0aW9uLmggXAorCVNvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL1dl
YktpdEFuaW1hdGlvbi5jcHAgXAorCVNvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL1dlYktp
dEFuaW1hdGlvbkxpc3QuaCBcCisJU291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vV2ViS2l0
QW5pbWF0aW9uTGlzdC5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL3BhZ2UvQmFySW5mby5jcHAgXAog
CVNvdXJjZS9XZWJDb3JlL3BhZ2UvQmFySW5mby5oIFwKIAlTb3VyY2UvV2ViQ29yZS9wYWdlL0No
cm9tZS5jcHAgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpIGIvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCmluZGV4IDg3NWQ5NWUuLjkyZDdjYTYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLmd5cGkKQEAgLTI3Nyw2ICsyNzcsOCBAQAogICAgICAgICAgICAgJ3BhZ2UvU3BlZWNoSW5w
dXRSZXN1bHQuaWRsJywKICAgICAgICAgICAgICdwYWdlL1NwZWVjaElucHV0UmVzdWx0TGlzdC5p
ZGwnLAogICAgICAgICAgICAgJ3BhZ2UvV2ViS2l0UG9pbnQuaWRsJywKKyAgICAgICAgICAgICdw
YWdlL2FuaW1hdGlvbi9XZWJLaXRBbmltYXRpb24uaWRsJywKKyAgICAgICAgICAgICdwYWdlL2Fu
aW1hdGlvbi9XZWJLaXRBbmltYXRpb25MaXN0LmlkbCcsCiAgICAgICAgICAgICAncGFnZS9Xb3Jr
ZXJOYXZpZ2F0b3IuaWRsJywKICAgICAgICAgICAgICdwbHVnaW5zL0RPTU1pbWVUeXBlLmlkbCcs
CiAgICAgICAgICAgICAncGx1Z2lucy9ET01NaW1lVHlwZUFycmF5LmlkbCcsCkBAIC03ODcsNiAr
Nzg5LDggQEAKICAgICAgICAgICAgICdiaW5kaW5ncy9qcy9KU1VpbnQzMkFycmF5Q3VzdG9tLmNw
cCcsCiAgICAgICAgICAgICAnYmluZGluZ3MvanMvSlNVaW50OEFycmF5Q3VzdG9tLmNwcCcsCiAg
ICAgICAgICAgICAnYmluZGluZ3MvanMvSlNXZWJHTFJlbmRlcmluZ0NvbnRleHRDdXN0b20uY3Bw
JywKKyAgICAgICAgICAgICdiaW5kaW5ncy9qcy9KU1dlYktpdEFuaW1hdGlvbkN1c3RvbS5jcHAn
LAorICAgICAgICAgICAgJ2JpbmRpbmdzL2pzL0pTV2ViS2l0QW5pbWF0aW9uTGlzdEN1c3RvbS5j
cHAnLAogICAgICAgICAgICAgJ2JpbmRpbmdzL2pzL0pTV2ViS2l0Q1NTS2V5ZnJhbWVSdWxlQ3Vz
dG9tLmNwcCcsCiAgICAgICAgICAgICAnYmluZGluZ3MvanMvSlNXZWJLaXRDU1NLZXlmcmFtZXNS
dWxlQ3VzdG9tLmNwcCcsCiAgICAgICAgICAgICAnYmluZGluZ3MvanMvSlNXZWJLaXRDU1NNYXRy
aXhDdXN0b20uY3BwJywKQEAgLTExMTgsNiArMTEyMiw3IEBACiAgICAgICAgICAgICAnYmluZGlu
Z3MvdjgvY3VzdG9tL1Y4VWludDMyQXJyYXlDdXN0b20uY3BwJywKICAgICAgICAgICAgICdiaW5k
aW5ncy92OC9jdXN0b20vVjhVaW50OEFycmF5Q3VzdG9tLmNwcCcsCiAgICAgICAgICAgICAnYmlu
ZGluZ3MvdjgvY3VzdG9tL1Y4V2ViR0xSZW5kZXJpbmdDb250ZXh0Q3VzdG9tLmNwcCcsCisgICAg
ICAgICAgICAnYmluZGluZ3MvdjgvY3VzdG9tL1Y4V2ViS2l0QW5pbWF0aW9uQ3VzdG9tLmNwcCcs
CiAgICAgICAgICAgICAnYmluZGluZ3MvdjgvY3VzdG9tL1Y4V2ViS2l0Q1NTTWF0cml4Q29uc3Ry
dWN0b3IuY3BwJywKICAgICAgICAgICAgICdiaW5kaW5ncy92OC9jdXN0b20vVjhXZWJLaXRQb2lu
dENvbnN0cnVjdG9yLmNwcCcsCiAgICAgICAgICAgICAnYmluZGluZ3MvdjgvY3VzdG9tL1Y4V2Vi
U29ja2V0Q3VzdG9tLmNwcCcsCkBAIC0yNTI2LDYgKzI1MzEsMTAgQEAKICAgICAgICAgICAgICdw
YWdlL2FuaW1hdGlvbi9JbXBsaWNpdEFuaW1hdGlvbi5oJywKICAgICAgICAgICAgICdwYWdlL2Fu
aW1hdGlvbi9LZXlmcmFtZUFuaW1hdGlvbi5jcHAnLAogICAgICAgICAgICAgJ3BhZ2UvYW5pbWF0
aW9uL0tleWZyYW1lQW5pbWF0aW9uLmgnLAorICAgICAgICAgICAgJ3BhZ2UvYW5pbWF0aW9uL1dl
YktpdEFuaW1hdGlvbi5jcHAnLAorICAgICAgICAgICAgJ3BhZ2UvYW5pbWF0aW9uL1dlYktpdEFu
aW1hdGlvbi5oJywKKyAgICAgICAgICAgICdwYWdlL2FuaW1hdGlvbi9XZWJLaXRBbmltYXRpb25M
aXN0LmNwcCcsCisgICAgICAgICAgICAncGFnZS9hbmltYXRpb24vV2ViS2l0QW5pbWF0aW9uTGlz
dC5oJywKICAgICAgICAgICAgICdwYWdlL2Nocm9taXVtL0Nocm9tZUNsaWVudENocm9taXVtLmgn
LAogICAgICAgICAgICAgJ3BhZ2UvY2hyb21pdW0vRHJhZ0NvbnRyb2xsZXJDaHJvbWl1bS5jcHAn
LAogICAgICAgICAgICAgJ3BhZ2UvY2hyb21pdW0vRXZlbnRIYW5kbGVyQ2hyb21pdW0uY3BwJywK
QEAgLTY4NTYsOSArNjg2NSwxMyBAQAogICAgICAgICAgICAgJzwoUFJPRFVDVF9ESVIpL0Rlcml2
ZWRTb3VyY2VzL1dlYkNvcmUvRE9NV2ViR0xWZXJ0ZXhBcnJheU9iamVjdE9FUy5oJywKICAgICAg
ICAgICAgICc8KFBST0RVQ1RfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0RPTVdlYkdMVmVy
dGV4QXJyYXlPYmplY3RPRVMubW0nLAogICAgICAgICAgICAgJzwoUFJPRFVDVF9ESVIpL0Rlcml2
ZWRTb3VyY2VzL1dlYkNvcmUvRE9NV2ViR0xWZXJ0ZXhBcnJheU9iamVjdE9FU0ludGVybmFsLmgn
LAorICAgICAgICAgICAgJzwoUFJPRFVDVF9ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvRE9N
V2ViS2l0QW5pbWF0aW9uLmgnLAorICAgICAgICAgICAgJzwoUFJPRFVDVF9ESVIpL0Rlcml2ZWRT
b3VyY2VzL1dlYkNvcmUvRE9NV2ViS2l0QW5pbWF0aW9uLm1tJywKICAgICAgICAgICAgICc8KFBS
T0RVQ1RfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0RPTVdlYktpdEFuaW1hdGlvbkV2ZW50
LmgnLAogICAgICAgICAgICAgJzwoUFJPRFVDVF9ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUv
RE9NV2ViS2l0QW5pbWF0aW9uRXZlbnQubW0nLAogICAgICAgICAgICAgJzwoUFJPRFVDVF9ESVIp
L0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvRE9NV2ViS2l0QW5pbWF0aW9uRXZlbnRJbnRlcm5hbC5o
JywKKyAgICAgICAgICAgICc8KFBST0RVQ1RfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0RP
TVdlYktpdEFuaW1hdGlvbkxpc3QuaCcsCisgICAgICAgICAgICAnPChQUk9EVUNUX0RJUikvRGVy
aXZlZFNvdXJjZXMvV2ViQ29yZS9ET01XZWJLaXRBbmltYXRpb25MaXN0Lm1tJywKICAgICAgICAg
ICAgICc8KFBST0RVQ1RfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0RPTVdlYktpdENTU0tl
eWZyYW1lUnVsZS5oJywKICAgICAgICAgICAgICc8KFBST0RVQ1RfRElSKS9EZXJpdmVkU291cmNl
cy9XZWJDb3JlL0RPTVdlYktpdENTU0tleWZyYW1lUnVsZS5tbScsCiAgICAgICAgICAgICAnPChQ
Uk9EVUNUX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9ET01XZWJLaXRDU1NLZXlmcmFtZVJ1
bGVJbnRlcm5hbC5oJywKQEAgLTc5MDUsOCArNzkxOCwxMiBAQAogICAgICAgICAgICAgJzwoUFJP
RFVDVF9ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNXZWJHTFVuaWZvcm1Mb2NhdGlvbi5o
JywKICAgICAgICAgICAgICc8KFBST0RVQ1RfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pT
V2ViR0xWZXJ0ZXhBcnJheU9iamVjdE9FUy5jcHAnLAogICAgICAgICAgICAgJzwoUFJPRFVDVF9E
SVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNXZWJHTFZlcnRleEFycmF5T2JqZWN0T0VTLmgn
LAorICAgICAgICAgICAgJzwoUFJPRFVDVF9ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNX
ZWJLaXRBbmltYXRpb24uY3BwJywKKyAgICAgICAgICAgICc8KFBST0RVQ1RfRElSKS9EZXJpdmVk
U291cmNlcy9XZWJDb3JlL0pTV2ViS2l0QW5pbWF0aW9uLmgnLAogICAgICAgICAgICAgJzwoUFJP
RFVDVF9ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNXZWJLaXRBbmltYXRpb25FdmVudC5j
cHAnLAogICAgICAgICAgICAgJzwoUFJPRFVDVF9ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUv
SlNXZWJLaXRBbmltYXRpb25FdmVudC5oJywKKyAgICAgICAgICAgICc8KFBST0RVQ1RfRElSKS9E
ZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTV2ViS2l0QW5pbWF0aW9uTGlzdC5jcHAnLAorICAgICAg
ICAgICAgJzwoUFJPRFVDVF9ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNXZWJLaXRBbmlt
YXRpb25MaXN0LmgnLAogICAgICAgICAgICAgJzwoUFJPRFVDVF9ESVIpL0Rlcml2ZWRTb3VyY2Vz
L1dlYkNvcmUvSlNXZWJLaXRDU1NLZXlmcmFtZVJ1bGUuY3BwJywKICAgICAgICAgICAgICc8KFBS
T0RVQ1RfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTV2ViS2l0Q1NTS2V5ZnJhbWVSdWxl
LmgnLAogICAgICAgICAgICAgJzwoUFJPRFVDVF9ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUv
SlNXZWJLaXRDU1NLZXlmcmFtZXNSdWxlLmNwcCcsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnBybyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUucHJvCmluZGV4IDA4ZjA2MzYu
LjgwNjUyZTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUucHJvCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUucHJvCkBAIC0yMDMsNiArMjAzLDcgQEAgdjggewogICAgICAg
ICBiaW5kaW5ncy92OC9jdXN0b20vVjhTdG9yYWdlQ3VzdG9tLmNwcCBcCiAgICAgICAgIGJpbmRp
bmdzL3Y4L2N1c3RvbS9WOFN0eWxlU2hlZXRDdXN0b20uY3BwIFwKICAgICAgICAgYmluZGluZ3Mv
djgvY3VzdG9tL1Y4U3R5bGVTaGVldExpc3RDdXN0b20uY3BwIFwKKyAgICAgICAgYmluZGluZ3Mv
djgvY3VzdG9tL1Y4V2ViS2l0QW5pbWF0aW9uQ3VzdG9tLmNwcCBcCiAgICAgICAgIGJpbmRpbmdz
L3Y4L2N1c3RvbS9WOFdlYktpdENTU01hdHJpeENvbnN0cnVjdG9yLmNwcCBcCiAgICAgICAgIGJp
bmRpbmdzL3Y4L2N1c3RvbS9WOFdlYktpdFBvaW50Q29uc3RydWN0b3IuY3BwIFwKICAgICAgICAg
YmluZGluZ3MvdjgvY3VzdG9tL1Y4V29ya2VyQ29udGV4dEN1c3RvbS5jcHAgXApAQCAtMzMyLDYg
KzMzMyw4IEBAIHY4IHsKICAgICAgICAgYmluZGluZ3MvanMvSlNVaW50MTZBcnJheUN1c3RvbS5j
cHAgXAogICAgICAgICBiaW5kaW5ncy9qcy9KU1VpbnQzMkFycmF5Q3VzdG9tLmNwcCBcCiAgICAg
ICAgIGJpbmRpbmdzL2pzL0pTVWludDhBcnJheUN1c3RvbS5jcHAgXAorICAgICAgICBiaW5kaW5n
cy9qcy9KU1dlYktpdEFuaW1hdGlvbkN1c3RvbS5jcHAgXAorICAgICAgICBiaW5kaW5ncy9qcy9K
U1dlYktpdEFuaW1hdGlvbkxpc3RDdXN0b20uY3BwIFwKICAgICAgICAgYmluZGluZ3MvanMvSlNX
ZWJLaXRDU1NLZXlmcmFtZVJ1bGVDdXN0b20uY3BwIFwKICAgICAgICAgYmluZGluZ3MvanMvSlNX
ZWJLaXRDU1NLZXlmcmFtZXNSdWxlQ3VzdG9tLmNwcCBcCiAgICAgICAgIGJpbmRpbmdzL2pzL0pT
V2ViS2l0Q1NTTWF0cml4Q3VzdG9tLmNwcCBcCkBAIC04NzAsNiArODczLDggQEAgU09VUkNFUyAr
PSBcCiAgICAgcGFnZS9hbmltYXRpb24vQ29tcG9zaXRlQW5pbWF0aW9uLmNwcCBcCiAgICAgcGFn
ZS9hbmltYXRpb24vSW1wbGljaXRBbmltYXRpb24uY3BwIFwKICAgICBwYWdlL2FuaW1hdGlvbi9L
ZXlmcmFtZUFuaW1hdGlvbi5jcHAgXAorICAgIHBhZ2UvYW5pbWF0aW9uL1dlYktpdEFuaW1hdGlv
bi5jcHAgXAorICAgIHBhZ2UvYW5pbWF0aW9uL1dlYktpdEFuaW1hdGlvbkxpc3QuY3BwIFwKICAg
ICBwYWdlL0JhckluZm8uY3BwIFwKICAgICBwYWdlL0Nocm9tZS5jcHAgXAogICAgIHBhZ2UvQ29u
c29sZS5jcHAgXApAQCAtMTc5MCw2ICsxNzk1LDggQEAgSEVBREVSUyArPSBcCiAgICAgcGFnZS9h
bmltYXRpb24vQ29tcG9zaXRlQW5pbWF0aW9uLmggXAogICAgIHBhZ2UvYW5pbWF0aW9uL0ltcGxp
Y2l0QW5pbWF0aW9uLmggXAogICAgIHBhZ2UvYW5pbWF0aW9uL0tleWZyYW1lQW5pbWF0aW9uLmgg
XAorICAgIHBhZ2UvYW5pbWF0aW9uL1dlYktpdEFuaW1hdGlvbi5oIFwKKyAgICBwYWdlL2FuaW1h
dGlvbi9XZWJLaXRBbmltYXRpb25MaXN0LmggXAogICAgIHBhZ2UvQmFySW5mby5oIFwKICAgICBw
YWdlL0Nocm9tZS5oIFwKICAgICBwYWdlL0NvbnNvbGUuaCBcCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCmluZGV4IGQ5YmM3NzEuLjg1OTExNTQgMTAwNzU1
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCisrKyBi
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCkBAIC0yMTY4Niw2
ICsyMTY4Niw2MiBAQAogCQkJCT4KIAkJCTwvRmlsZT4KIAkJCTxGaWxlCisJCQkJUmVsYXRpdmVQ
YXRoPSIkKENvbmZpZ3VyYXRpb25CdWlsZERpcilcb2JqXCQoUHJvamVjdE5hbWUpXERlcml2ZWRT
b3VyY2VzXEpTV2ViS2l0QW5pbWF0aW9uLmNwcCIKKwkJCQk+CisJCQkJPEZpbGVDb25maWd1cmF0
aW9uCisJCQkJCU5hbWU9IkRlYnVnfFdpbjMyIgorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1
ZSIKKwkJCQkJPgorCQkJCQk8VG9vbAorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJ
CQkJLz4KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJCTxGaWxlQ29uZmlndXJhdGlvbgor
CQkJCQlOYW1lPSJSZWxlYXNlfFdpbjMyIgorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIK
KwkJCQkJPgorCQkJCQk8VG9vbAorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJ
Lz4KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJ
CQlOYW1lPSJEZWJ1Z19DYWlyb19DRkxpdGV8V2luMzIiCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxk
PSJ0cnVlIgorCQkJCQk+CisJCQkJCTxUb29sCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29s
IgorCQkJCQkvPgorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJPEZpbGVDb25maWd1cmF0
aW9uCisJCQkJCU5hbWU9IlJlbGVhc2VfQ2Fpcm9fQ0ZMaXRlfFdpbjMyIgorCQkJCQlFeGNsdWRl
ZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJPgorCQkJCQk8VG9vbAorCQkJCQkJTmFtZT0iVkNDTENv
bXBpbGVyVG9vbCIKKwkJCQkJLz4KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJCTxGaWxl
Q29uZmlndXJhdGlvbgorCQkJCQlOYW1lPSJEZWJ1Z19BbGx8V2luMzIiCisJCQkJCUV4Y2x1ZGVk
RnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQk+CisJCQkJCTxUb29sCisJCQkJCQlOYW1lPSJWQ0NMQ29t
cGlsZXJUb29sIgorCQkJCQkvPgorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJPEZpbGVD
b25maWd1cmF0aW9uCisJCQkJCU5hbWU9IlJlbGVhc2VfTFRDR3xXaW4zMiIKKwkJCQkJRXhjbHVk
ZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCT4KKwkJCQkJPFRvb2wKKwkJCQkJCU5hbWU9IlZDQ0xD
b21waWxlclRvb2wiCisJCQkJCS8+CisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCTwvRmls
ZT4KKwkJCTxGaWxlCisJCQkJUmVsYXRpdmVQYXRoPSIkKENvbmZpZ3VyYXRpb25CdWlsZERpcilc
b2JqXCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2VzXEpTV2ViS2l0QW5pbWF0aW9uLmgiCisJ
CQkJPgorCQkJPC9GaWxlPgorCQkJPEZpbGUKIAkJCQlSZWxhdGl2ZVBhdGg9IiQoQ29uZmlndXJh
dGlvbkJ1aWxkRGlyKVxvYmpcJChQcm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNcSlNXZWJLaXRB
bmltYXRpb25FdmVudC5jcHAiCiAJCQkJPgogCQkJCTxGaWxlQ29uZmlndXJhdGlvbgpAQCAtMjE3
NDIsNiArMjE3OTgsNjIgQEAKIAkJCQk+CiAJCQk8L0ZpbGU+CiAJCQk8RmlsZQorCQkJCVJlbGF0
aXZlUGF0aD0iJChDb25maWd1cmF0aW9uQnVpbGREaXIpXG9ialwkKFByb2plY3ROYW1lKVxEZXJp
dmVkU291cmNlc1xKU1dlYktpdEFuaW1hdGlvbkxpc3QuY3BwIgorCQkJCT4KKwkJCQk8RmlsZUNv
bmZpZ3VyYXRpb24KKwkJCQkJTmFtZT0iRGVidWd8V2luMzIiCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1
aWxkPSJ0cnVlIgorCQkJCQk+CisJCQkJCTxUb29sCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJU
b29sIgorCQkJCQkvPgorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJPEZpbGVDb25maWd1
cmF0aW9uCisJCQkJCU5hbWU9IlJlbGVhc2V8V2luMzIiCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxk
PSJ0cnVlIgorCQkJCQk+CisJCQkJCTxUb29sCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29s
IgorCQkJCQkvPgorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJPEZpbGVDb25maWd1cmF0
aW9uCisJCQkJCU5hbWU9IkRlYnVnX0NhaXJvX0NGTGl0ZXxXaW4zMiIKKwkJCQkJRXhjbHVkZWRG
cm9tQnVpbGQ9InRydWUiCisJCQkJCT4KKwkJCQkJPFRvb2wKKwkJCQkJCU5hbWU9IlZDQ0xDb21w
aWxlclRvb2wiCisJCQkJCS8+CisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCQk8RmlsZUNv
bmZpZ3VyYXRpb24KKwkJCQkJTmFtZT0iUmVsZWFzZV9DYWlyb19DRkxpdGV8V2luMzIiCisJCQkJ
CUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQk+CisJCQkJCTxUb29sCisJCQkJCQlOYW1l
PSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkvPgorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJ
CQkJPEZpbGVDb25maWd1cmF0aW9uCisJCQkJCU5hbWU9IkRlYnVnX0FsbHxXaW4zMiIKKwkJCQkJ
RXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCT4KKwkJCQkJPFRvb2wKKwkJCQkJCU5hbWU9
IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCS8+CisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJ
CQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJTmFtZT0iUmVsZWFzZV9MVENHfFdpbjMyIgorCQkJ
CQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJPgorCQkJCQk8VG9vbAorCQkJCQkJTmFt
ZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJLz4KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgor
CQkJPC9GaWxlPgorCQkJPEZpbGUKKwkJCQlSZWxhdGl2ZVBhdGg9IiQoQ29uZmlndXJhdGlvbkJ1
aWxkRGlyKVxvYmpcJChQcm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNcSlNXZWJLaXRBbmltYXRp
b25MaXN0LmgiCisJCQkJPgorCQkJPC9GaWxlPgorCQkJPEZpbGUKIAkJCQlSZWxhdGl2ZVBhdGg9
IiQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxvYmpcJChQcm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJj
ZXNcSlNXZWJLaXRDU1NLZXlmcmFtZVJ1bGUuY3BwIgogCQkJCT4KIAkJCQk8RmlsZUNvbmZpZ3Vy
YXRpb24KQEAgLTI0NzM0LDYgKzI0ODQ2LDIyIEBACiAJCQkJPgogCQkJPC9GaWxlPgogCQkJPEZp
bGUKKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHBhZ2VcYW5pbWF0aW9uXFdlYktpdEFuaW1hdGlvbi5j
cHAiCisJCQkJPgorCQkJPC9GaWxlPgorCQkJPEZpbGUKKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHBh
Z2VcYW5pbWF0aW9uXFdlYktpdEFuaW1hdGlvbi5oIgorCQkJCT4KKwkJCTwvRmlsZT4KKwkJCTxG
aWxlCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxwYWdlXGFuaW1hdGlvblxXZWJLaXRBbmltYXRpb25M
aXN0LmNwcCIKKwkJCQk+CisJCQk8L0ZpbGU+CisJCQk8RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0i
Li5ccGFnZVxhbmltYXRpb25cV2ViS2l0QW5pbWF0aW9uTGlzdC5oIgorCQkJCT4KKwkJCTwvRmls
ZT4KKwkJCTxGaWxlCiAJCQkJUmVsYXRpdmVQYXRoPSIuLlxwYWdlXExvY2F0aW9uLmNwcCIKIAkJ
CQk+CiAJCQk8L0ZpbGU+CkBAIC02MjEzMyw2ICs2MjI2MSwxMTAgQEAKIAkJCQkJPC9GaWxlQ29u
ZmlndXJhdGlvbj4KIAkJCQk8L0ZpbGU+CiAJCQkJPEZpbGUKKwkJCQkJUmVsYXRpdmVQYXRoPSIu
LlxiaW5kaW5nc1xqc1xKU1dlYktpdEFuaW1hdGlvbkN1c3RvbS5jcHAiCisJCQkJCT4KKwkJCQkJ
PEZpbGVDb25maWd1cmF0aW9uCisJCQkJCQlOYW1lPSJEZWJ1Z3xXaW4zMiIKKwkJCQkJCUV4Y2x1
ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQkJPgorCQkJCQkJPFRvb2wKKwkJCQkJCQlOYW1lPSJW
Q0NMQ29tcGlsZXJUb29sIgorCQkJCQkJLz4KKwkJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJ
CQkJPEZpbGVDb25maWd1cmF0aW9uCisJCQkJCQlOYW1lPSJSZWxlYXNlfFdpbjMyIgorCQkJCQkJ
RXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCQk+CisJCQkJCQk8VG9vbAorCQkJCQkJCU5h
bWU9IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCQkvPgorCQkJCQk8L0ZpbGVDb25maWd1cmF0aW9u
PgorCQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJCU5hbWU9IkRlYnVnX0NhaXJvX0NGTGl0
ZXxXaW4zMiIKKwkJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQkJPgorCQkJCQkJ
PFRvb2wKKwkJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkJLz4KKwkJCQkJPC9G
aWxlQ29uZmlndXJhdGlvbj4KKwkJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJCQkJCQlOYW1lPSJS
ZWxlYXNlX0NhaXJvX0NGTGl0ZXxXaW4zMiIKKwkJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVl
IgorCQkJCQkJPgorCQkJCQkJPFRvb2wKKwkJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgor
CQkJCQkJLz4KKwkJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCQkJPEZpbGVDb25maWd1cmF0
aW9uCisJCQkJCQlOYW1lPSJEZWJ1Z19BbGx8V2luMzIiCisJCQkJCQlFeGNsdWRlZEZyb21CdWls
ZD0idHJ1ZSIKKwkJCQkJCT4KKwkJCQkJCTxUb29sCisJCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVy
VG9vbCIKKwkJCQkJCS8+CisJCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJCTxGaWxlQ29u
ZmlndXJhdGlvbgorCQkJCQkJTmFtZT0iUmVsZWFzZV9MVENHfFdpbjMyIgorCQkJCQkJRXhjbHVk
ZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCQk+CisJCQkJCQk8VG9vbAorCQkJCQkJCU5hbWU9IlZD
Q0xDb21waWxlclRvb2wiCisJCQkJCQkvPgorCQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJ
CTwvRmlsZT4KKwkJCQk8RmlsZQorCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGJpbmRpbmdzXGpzXEpT
V2ViS2l0QW5pbWF0aW9uTGlzdEN1c3RvbS5jcHAiCisJCQkJCT4KKwkJCQkJPEZpbGVDb25maWd1
cmF0aW9uCisJCQkJCQlOYW1lPSJEZWJ1Z3xXaW4zMiIKKwkJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxk
PSJ0cnVlIgorCQkJCQkJPgorCQkJCQkJPFRvb2wKKwkJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJU
b29sIgorCQkJCQkJLz4KKwkJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCQkJPEZpbGVDb25m
aWd1cmF0aW9uCisJCQkJCQlOYW1lPSJSZWxlYXNlfFdpbjMyIgorCQkJCQkJRXhjbHVkZWRGcm9t
QnVpbGQ9InRydWUiCisJCQkJCQk+CisJCQkJCQk8VG9vbAorCQkJCQkJCU5hbWU9IlZDQ0xDb21w
aWxlclRvb2wiCisJCQkJCQkvPgorCQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJCQk8Rmls
ZUNvbmZpZ3VyYXRpb24KKwkJCQkJCU5hbWU9IkRlYnVnX0NhaXJvX0NGTGl0ZXxXaW4zMiIKKwkJ
CQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQkJPgorCQkJCQkJPFRvb2wKKwkJCQkJ
CQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkJLz4KKwkJCQkJPC9GaWxlQ29uZmlndXJh
dGlvbj4KKwkJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJCQkJCQlOYW1lPSJSZWxlYXNlX0NhaXJv
X0NGTGl0ZXxXaW4zMiIKKwkJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQkJPgor
CQkJCQkJPFRvb2wKKwkJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkJLz4KKwkJ
CQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJCQkJCQlO
YW1lPSJEZWJ1Z19BbGx8V2luMzIiCisJCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJ
CQkJCT4KKwkJCQkJCTxUb29sCisJCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJ
CS8+CisJCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJCTxGaWxlQ29uZmlndXJhdGlvbgor
CQkJCQkJTmFtZT0iUmVsZWFzZV9MVENHfFdpbjMyIgorCQkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9
InRydWUiCisJCQkJCQk+CisJCQkJCQk8VG9vbAorCQkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRv
b2wiCisJCQkJCQkvPgorCQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJCTwvRmlsZT4KKwkJ
CQk8RmlsZQogCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGJpbmRpbmdzXGpzXEpTV2ViS2l0Q1NTS2V5
ZnJhbWVSdWxlQ3VzdG9tLmNwcCIKIAkJCQkJPgogCQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
aiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRl
eCA4ODVkZDcwLi45MjBlOTZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC03NjksNiArNzY5LDIwIEBACiAJCTMxNkZFMTE4MEU2
RTFEQTcwMEJGNjA4OCAvKiBJbXBsaWNpdEFuaW1hdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzE2RkUxMEUwRTZFMURBNzAwQkY2MDg4IC8qIElt
cGxpY2l0QW5pbWF0aW9uLmggKi87IH07CiAJCTMxNkZFMTE5MEU2RTFEQTcwMEJGNjA4OCAvKiBL
ZXlmcmFtZUFuaW1hdGlvbi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAzMTZGRTEwRjBFNkUxREE3MDBCRjYwODggLyogS2V5ZnJhbWVBbmltYXRpb24u
Y3BwICovOyB9OwogCQkzMTZGRTExQTBFNkUxREE3MDBCRjYwODggLyogS2V5ZnJhbWVBbmltYXRp
b24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMxNkZF
MTEwMEU2RTFEQTcwMEJGNjA4OCAvKiBLZXlmcmFtZUFuaW1hdGlvbi5oICovOyB9OworCQkzMTk0
NjE0ODEzMDFGMkEzMDA0QkIzRjggLyogV2ViS2l0QW5pbWF0aW9uLmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMxOTQ2MTQ2MTMwMUYyQTMwMDRCQjNG
OCAvKiBXZWJLaXRBbmltYXRpb24uY3BwICovOyB9OworCQkzMTk0NjE0OTEzMDFGMkEzMDA0QkIz
RjggLyogV2ViS2l0QW5pbWF0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSAzMTk0NjE0NzEzMDFGMkEzMDA0QkIzRjggLyogV2ViS2l0QW5pbWF0aW9u
LmggKi87IH07CisJCTMxOTQ2MTYyMTMwMjBCMjAwMDRCQjNGOCAvKiBKU1dlYktpdEFuaW1hdGlv
bi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMTk0
NjE2MDEzMDIwQjIwMDA0QkIzRjggLyogSlNXZWJLaXRBbmltYXRpb24uY3BwICovOyB9OworCQkz
MTk0NjE2MzEzMDIwQjIwMDA0QkIzRjggLyogSlNXZWJLaXRBbmltYXRpb24uaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMxOTQ2MTYxMTMwMjBCMjAwMDRC
QjNGOCAvKiBKU1dlYktpdEFuaW1hdGlvbi5oICovOyB9OworCQkzMTk0NjE2QTEzMDIwQjY2MDA0
QkIzRjggLyogRE9NV2ViS2l0QW5pbWF0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAzMTk0NjE2ODEzMDIwQjY2MDA0QkIzRjggLyogRE9NV2ViS2l0
QW5pbWF0aW9uLmggKi87IH07CisJCTMxOTQ2MTZCMTMwMjBCNjYwMDRCQjNGOCAvKiBET01XZWJL
aXRBbmltYXRpb24ubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAzMTk0NjE2OTEzMDIwQjY2MDA0QkIzRjggLyogRE9NV2ViS2l0QW5pbWF0aW9uLm1tICov
OyB9OworCQkzMTk0NjE4RjEzMDIxMDY0MDA0QkIzRjggLyogV2ViS2l0QW5pbWF0aW9uTGlzdC5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzE5NDYxOEQx
MzAyMTA2NDAwNEJCM0Y4IC8qIFdlYktpdEFuaW1hdGlvbkxpc3QuaCAqLzsgfTsKKwkJMzE5NDYx
OTAxMzAyMTA2NDAwNEJCM0Y4IC8qIFdlYktpdEFuaW1hdGlvbkxpc3QuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzE5NDYxOEUxMzAyMTA2NDAwNEJC
M0Y4IC8qIFdlYktpdEFuaW1hdGlvbkxpc3QuY3BwICovOyB9OworCQkzMTk0NjFGRTEzMDIyQkI4
MDA0QkIzRjggLyogSlNXZWJLaXRBbmltYXRpb25MaXN0LmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMxOTQ2MUZDMTMwMjJCQjgwMDRCQjNGOCAvKiBK
U1dlYktpdEFuaW1hdGlvbkxpc3QuY3BwICovOyB9OworCQkzMTk0NjFGRjEzMDIyQkI4MDA0QkIz
RjggLyogSlNXZWJLaXRBbmltYXRpb25MaXN0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAzMTk0NjFGRDEzMDIyQkI4MDA0QkIzRjggLyogSlNXZWJLaXRB
bmltYXRpb25MaXN0LmggKi87IH07CisJCTMxOTQ2MjA0MTMwMjJCRjEwMDRCQjNGOCAvKiBET01X
ZWJLaXRBbmltYXRpb25MaXN0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAzMTk0NjIwMjEzMDIyQkYxMDA0QkIzRjggLyogRE9NV2ViS2l0QW5pbWF0aW9u
TGlzdC5oICovOyB9OworCQkzMTk0NjIwNTEzMDIyQkYxMDA0QkIzRjggLyogRE9NV2ViS2l0QW5p
bWF0aW9uTGlzdC5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDMxOTQ2MjAzMTMwMjJCRjEwMDRCQjNGOCAvKiBET01XZWJLaXRBbmltYXRpb25MaXN0Lm1t
ICovOyB9OworCQkzMTk0NjIzMjEzMDIyRjY1MDA0QkIzRjggLyogSlNXZWJLaXRBbmltYXRpb25M
aXN0Q3VzdG9tLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDMxOTQ2MjMxMTMwMjJGNjUwMDRCQjNGOCAvKiBKU1dlYktpdEFuaW1hdGlvbkxpc3RDdXN0
b20uY3BwICovOyB9OworCQkzMTlFNjg4NzEzMjdDOTExMDA0QUM5MUEgLyogSlNXZWJLaXRBbmlt
YXRpb25DdXN0b20uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMzE5RTY4ODYxMzI3QzkxMTAwNEFDOTFBIC8qIEpTV2ViS2l0QW5pbWF0aW9uQ3VzdG9t
LmNwcCAqLzsgfTsKIAkJMzFDMEZGMjEwRTRDRUI2RTAwN0Q2RkU1IC8qIFdlYktpdEFuaW1hdGlv
bkV2ZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDMxQzBGRjFCMEU0Q0VCNkUwMDdENkZFNSAvKiBXZWJLaXRBbmltYXRpb25FdmVudC5jcHAgKi87
IH07CiAJCTMxQzBGRjIyMEU0Q0VCNkUwMDdENkZFNSAvKiBXZWJLaXRBbmltYXRpb25FdmVudC5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzFDMEZGMUMw
RTRDRUI2RTAwN0Q2RkU1IC8qIFdlYktpdEFuaW1hdGlvbkV2ZW50LmggKi87IH07CiAJCTMxQzBG
RjI0MEU0Q0VCNkUwMDdENkZFNSAvKiBXZWJLaXRUcmFuc2l0aW9uRXZlbnQuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzFDMEZGMUUwRTRDRUI2RTAw
N0Q2RkU1IC8qIFdlYktpdFRyYW5zaXRpb25FdmVudC5jcHAgKi87IH07CkBAIC03MTUxLDYgKzcx
NjUsMjIgQEAKIAkJMzE2RkUxMEUwRTZFMURBNzAwQkY2MDg4IC8qIEltcGxpY2l0QW5pbWF0aW9u
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IEltcGxpY2l0QW5pbWF0aW9uLmg7
IHBhdGggPSBhbmltYXRpb24vSW1wbGljaXRBbmltYXRpb24uaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJMzE2RkUxMEYwRTZFMURBNzAwQkY2MDg4IC8qIEtleWZyYW1lQW5pbWF0aW9u
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IEtleWZyYW1lQW5pbWF0
aW9uLmNwcDsgcGF0aCA9IGFuaW1hdGlvbi9LZXlmcmFtZUFuaW1hdGlvbi5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTMxNkZFMTEwMEU2RTFEQTcwMEJGNjA4OCAvKiBLZXlmcmFt
ZUFuaW1hdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBLZXlmcmFtZUFu
aW1hdGlvbi5oOyBwYXRoID0gYW5pbWF0aW9uL0tleWZyYW1lQW5pbWF0aW9uLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTMxOTQ2MTM4MTMwMUVGNEMwMDRCQjNGOCAvKiBXZWJLaXRB
bmltYXRpb24uaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgbmFtZSA9IFdlYktpdEFuaW1hdGlvbi5pZGw7
IHBhdGggPSBhbmltYXRpb24vV2ViS2l0QW5pbWF0aW9uLmlkbDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJMzE5NDYxNDYxMzAxRjJBMzAwNEJCM0Y4IC8qIFdlYktpdEFuaW1hdGlvbi5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBXZWJLaXRBbmltYXRpb24u
Y3BwOyBwYXRoID0gYW5pbWF0aW9uL1dlYktpdEFuaW1hdGlvbi5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCTMxOTQ2MTQ3MTMwMUYyQTMwMDRCQjNGOCAvKiBXZWJLaXRBbmltYXRp
b24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gV2ViS2l0QW5pbWF0aW9uLmg7
IHBhdGggPSBhbmltYXRpb24vV2ViS2l0QW5pbWF0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCTMxOTQ2MTYwMTMwMjBCMjAwMDRCQjNGOCAvKiBKU1dlYktpdEFuaW1hdGlvbi5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1dlYktpdEFuaW1hdGlv
bi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTMxOTQ2MTYxMTMwMjBCMjAwMDRC
QjNGOCAvKiBKU1dlYktpdEFuaW1hdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBKU1dlYktpdEFuaW1hdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkz
MTk0NjE2ODEzMDIwQjY2MDA0QkIzRjggLyogRE9NV2ViS2l0QW5pbWF0aW9uLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERPTVdlYktpdEFuaW1hdGlvbi5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQkzMTk0NjE2OTEzMDIwQjY2MDA0QkIzRjggLyogRE9NV2ViS2l0
QW5pbWF0aW9uLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gRE9N
V2ViS2l0QW5pbWF0aW9uLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkzMTk0NjE3
ODEzMDIxMDA4MDA0QkIzRjggLyogV2ViS2l0QW5pbWF0aW9uTGlzdC5pZGwgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0
ZXh0OyBuYW1lID0gV2ViS2l0QW5pbWF0aW9uTGlzdC5pZGw7IHBhdGggPSBhbmltYXRpb24vV2Vi
S2l0QW5pbWF0aW9uTGlzdC5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTMxOTQ2
MThEMTMwMjEwNjQwMDRCQjNGOCAvKiBXZWJLaXRBbmltYXRpb25MaXN0LmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFdlYktpdEFuaW1hdGlvbkxpc3QuaDsgcGF0aCA9IGFuaW1h
dGlvbi9XZWJLaXRBbmltYXRpb25MaXN0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CTMxOTQ2MThFMTMwMjEwNjQwMDRCQjNGOCAvKiBXZWJLaXRBbmltYXRpb25MaXN0LmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IFdlYktpdEFuaW1hdGlvbkxpc3QuY3Bw
OyBwYXRoID0gYW5pbWF0aW9uL1dlYktpdEFuaW1hdGlvbkxpc3QuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQkzMTk0NjFGQzEzMDIyQkI4MDA0QkIzRjggLyogSlNXZWJLaXRBbmlt
YXRpb25MaXN0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTV2Vi
S2l0QW5pbWF0aW9uTGlzdC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTMxOTQ2
MUZEMTMwMjJCQjgwMDRCQjNGOCAvKiBKU1dlYktpdEFuaW1hdGlvbkxpc3QuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNXZWJLaXRBbmltYXRpb25MaXN0Lmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTMxOTQ2MjAyMTMwMjJCRjEwMDRCQjNGOCAvKiBET01XZWJL
aXRBbmltYXRpb25MaXN0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERPTVdl
YktpdEFuaW1hdGlvbkxpc3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMzE5NDYy
MDMxMzAyMkJGMTAwNEJCM0Y4IC8qIERPTVdlYktpdEFuaW1hdGlvbkxpc3QubW0gKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBET01XZWJLaXRBbmltYXRpb25MaXN0Lm1t
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkzMTk0NjIzMTEzMDIyRjY1MDA0QkIzRjgg
LyogSlNXZWJLaXRBbmltYXRpb25MaXN0Q3VzdG9tLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IEpTV2ViS2l0QW5pbWF0aW9uTGlzdEN1c3RvbS5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTMxOUU2ODg2MTMyN0M5MTEwMDRBQzkxQSAvKiBKU1dlYktp
dEFuaW1hdGlvbkN1c3RvbS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBKU1dlYktpdEFuaW1hdGlvbkN1c3RvbS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTMxQzBGRjFCMEU0Q0VCNkUwMDdENkZFNSAvKiBXZWJLaXRBbmltYXRpb25FdmVudC5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJLaXRBbmltYXRpb25FdmVu
dC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTMxQzBGRjFDMEU0Q0VCNkUwMDdE
NkZFNSAvKiBXZWJLaXRBbmltYXRpb25FdmVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBXZWJLaXRBbmltYXRpb25FdmVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQkzMUMwRkYxRDBFNENFQjZFMDA3RDZGRTUgLyogV2ViS2l0QW5pbWF0aW9uRXZlbnQuaWRs
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFdlYktpdEFuaW1hdGlvbkV2ZW50LmlkbDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTEzMjQwLDYgKzEzMjcwLDEyIEBACiAJCQkJMzE2RkUx
MEUwRTZFMURBNzAwQkY2MDg4IC8qIEltcGxpY2l0QW5pbWF0aW9uLmggKi8sCiAJCQkJMzE2RkUx
MEYwRTZFMURBNzAwQkY2MDg4IC8qIEtleWZyYW1lQW5pbWF0aW9uLmNwcCAqLywKIAkJCQkzMTZG
RTExMDBFNkUxREE3MDBCRjYwODggLyogS2V5ZnJhbWVBbmltYXRpb24uaCAqLywKKwkJCQkzMTk0
NjE0NjEzMDFGMkEzMDA0QkIzRjggLyogV2ViS2l0QW5pbWF0aW9uLmNwcCAqLywKKwkJCQkzMTk0
NjE0NzEzMDFGMkEzMDA0QkIzRjggLyogV2ViS2l0QW5pbWF0aW9uLmggKi8sCisJCQkJMzE5NDYx
MzgxMzAxRUY0QzAwNEJCM0Y4IC8qIFdlYktpdEFuaW1hdGlvbi5pZGwgKi8sCisJCQkJMzE5NDYx
OEUxMzAyMTA2NDAwNEJCM0Y4IC8qIFdlYktpdEFuaW1hdGlvbkxpc3QuY3BwICovLAorCQkJCTMx
OTQ2MThEMTMwMjEwNjQwMDRCQjNGOCAvKiBXZWJLaXRBbmltYXRpb25MaXN0LmggKi8sCisJCQkJ
MzE5NDYxNzgxMzAyMTAwODAwNEJCM0Y4IC8qIFdlYktpdEFuaW1hdGlvbkxpc3QuaWRsICovLAog
CQkJKTsKIAkJCW5hbWUgPSBhbmltYXRpb247CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwpA
QCAtMTUwMTQsNiArMTUwNTAsMTAgQEAKIAkJCQk4NUJBNEQwQTBBQTY4ODY4MDA4ODA1MkQgLyog
RE9NSFRNTFVMaXN0RWxlbWVudC5tbSAqLywKIAkJCQkxNUM3NzBBNDEwMEQ0MUNEMDA1QkEyNjcg
LyogRE9NVmFsaWRpdHlTdGF0ZS5oICovLAogCQkJCTE1Qzc3MEEzMTAwRDQxQ0QwMDVCQTI2NyAv
KiBET01WYWxpZGl0eVN0YXRlLm1tICovLAorCQkJCTMxOTQ2MTY4MTMwMjBCNjYwMDRCQjNGOCAv
KiBET01XZWJLaXRBbmltYXRpb24uaCAqLywKKwkJCQkzMTk0NjE2OTEzMDIwQjY2MDA0QkIzRjgg
LyogRE9NV2ViS2l0QW5pbWF0aW9uLm1tICovLAorCQkJCTMxOTQ2MjAyMTMwMjJCRjEwMDRCQjNG
OCAvKiBET01XZWJLaXRBbmltYXRpb25MaXN0LmggKi8sCisJCQkJMzE5NDYyMDMxMzAyMkJGMTAw
NEJCM0Y4IC8qIERPTVdlYktpdEFuaW1hdGlvbkxpc3QubW0gKi8sCiAJCQkpOwogCQkJbmFtZSA9
IEhUTUw7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwpAQCAtMTYzNDEsNiArMTYzODEsMTAg
QEAKIAkJCQkwQzQ1MzQyNjEwQ0RCQkZBMDA4NjkxNTcgLyogSlNXZWJHTFVuaWZvcm1Mb2NhdGlv
bi5oICovLAogCQkJCTc3RUY2MkYxMTJGOURCNzQwMEM3N0JEMiAvKiBKU1dlYkdMVmVydGV4QXJy
YXlPYmplY3RPRVMuY3BwICovLAogCQkJCTc3RUY2MkYyMTJGOURCNzQwMEM3N0JEMiAvKiBKU1dl
YkdMVmVydGV4QXJyYXlPYmplY3RPRVMuaCAqLywKKwkJCQkzMTk0NjE2MDEzMDIwQjIwMDA0QkIz
RjggLyogSlNXZWJLaXRBbmltYXRpb24uY3BwICovLAorCQkJCTMxOTQ2MTYxMTMwMjBCMjAwMDRC
QjNGOCAvKiBKU1dlYktpdEFuaW1hdGlvbi5oICovLAorCQkJCTMxOTQ2MUZDMTMwMjJCQjgwMDRC
QjNGOCAvKiBKU1dlYktpdEFuaW1hdGlvbkxpc3QuY3BwICovLAorCQkJCTMxOTQ2MUZEMTMwMjJC
QjgwMDRCQjNGOCAvKiBKU1dlYktpdEFuaW1hdGlvbkxpc3QuaCAqLywKIAkJCQk5M0YxRDVCRTEy
RDUzMzU2MDA4MzJCRUMgLyogSlNXZWJLaXRMb3NlQ29udGV4dC5jcHAgKi8sCiAJCQkJOTNGMUQ1
QkYxMkQ1MzM1NjAwODMyQkVDIC8qIEpTV2ViS2l0TG9zZUNvbnRleHQuaCAqLywKIAkJCSk7CkBA
IC0xODA0MSw2ICsxODA4NSw4IEBACiAJCQkJNDlFRUNGNzYxMDUwOEQ5QzAwMDk5RkFCIC8qIEpT
VWludDMyQXJyYXlDdXN0b20uY3BwICovLAogCQkJCTQ5RUVDRjc1MTA1MDhEOUMwMDA5OUZBQiAv
KiBKU1VpbnQ4QXJyYXlDdXN0b20uY3BwICovLAogCQkJCTQ5RUVEMTRDMTA1MTk3MUEwMDA5OUZB
QiAvKiBKU1dlYkdMUmVuZGVyaW5nQ29udGV4dEN1c3RvbS5jcHAgKi8sCisJCQkJMzE5RTY4ODYx
MzI3QzkxMTAwNEFDOTFBIC8qIEpTV2ViS2l0QW5pbWF0aW9uQ3VzdG9tLmNwcCAqLywKKwkJCQkz
MTk0NjIzMTEzMDIyRjY1MDA0QkIzRjggLyogSlNXZWJLaXRBbmltYXRpb25MaXN0Q3VzdG9tLmNw
cCAqLywKIAkJCQlFMUFEMTRDNDEyOTczNTQ5MDBBQ0E5ODkgLyogSlNXZWJLaXRDU1NLZXlmcmFt
ZVJ1bGVDdXN0b20uY3BwICovLAogCQkJCUUxQUQxNEI0MTI5NzM0Q0EwMEFDQTk4OSAvKiBKU1dl
YktpdENTU0tleWZyYW1lc1J1bGVDdXN0b20uY3BwICovLAogCQkJCUJDMjc1QjdDMTFDNUQyMzUw
MEM5MjA2QyAvKiBKU1dlYktpdENTU01hdHJpeEN1c3RvbS5jcHAgKi8sCkBAIC0yMjU3Nyw2ICsy
MjYyMywxMiBAQAogCQkJCTU5OEQ3N0RGMTMyNTQxRkEwMDc2MUIyMiAvKiBKYXZhQXJyYXlKU0Mu
aCBpbiBIZWFkZXJzICovLAogCQkJCTU5OEQ3N0UzMTMyNTQyMEUwMDc2MUIyMiAvKiBKYXZhRmll
bGRKU0MuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDRDNGOTgzMTMyNkM5MzcwMDA5OEE2MCAvKiBU
ZXh0T3JpZW50YXRpb24uaCBpbiBIZWFkZXJzICovLAorCQkJCTMxOTQ2MTQ5MTMwMUYyQTMwMDRC
QjNGOCAvKiBXZWJLaXRBbmltYXRpb24uaCBpbiBIZWFkZXJzICovLAorCQkJCTMxOTQ2MTYzMTMw
MjBCMjAwMDRCQjNGOCAvKiBKU1dlYktpdEFuaW1hdGlvbi5oIGluIEhlYWRlcnMgKi8sCisJCQkJ
MzE5NDYxNkExMzAyMEI2NjAwNEJCM0Y4IC8qIERPTVdlYktpdEFuaW1hdGlvbi5oIGluIEhlYWRl
cnMgKi8sCisJCQkJMzE5NDYxOEYxMzAyMTA2NDAwNEJCM0Y4IC8qIFdlYktpdEFuaW1hdGlvbkxp
c3QuaCBpbiBIZWFkZXJzICovLAorCQkJCTMxOTQ2MUZGMTMwMjJCQjgwMDRCQjNGOCAvKiBKU1dl
YktpdEFuaW1hdGlvbkxpc3QuaCBpbiBIZWFkZXJzICovLAorCQkJCTMxOTQ2MjA0MTMwMjJCRjEw
MDRCQjNGOCAvKiBET01XZWJLaXRBbmltYXRpb25MaXN0LmggaW4gSGVhZGVycyAqLywKIAkJCSk7
CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKQEAgLTI1
MjMyLDYgKzI1Mjg0LDE0IEBACiAJCQkJODE1RTYxNjcxMzI1ODdBQTAwQjYyMkIwIC8qIERhdGFU
cmFuc2Zlckl0ZW0uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJODEwMkM1ODgxMzI1QkIxMTAwRERF
NjdBIC8qIFN0cmluZ0NhbGxiYWNrLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTVENEY1MURGMTMy
NzI1NDgwMDE2RjU0MSAvKiBIVE1MQ29udmVydGVyLm1tIGluIFNvdXJjZXMgKi8sCisJCQkJMzE5
NDYxNDgxMzAxRjJBMzAwNEJCM0Y4IC8qIFdlYktpdEFuaW1hdGlvbi5jcHAgaW4gU291cmNlcyAq
LywKKwkJCQkzMTk0NjE2MjEzMDIwQjIwMDA0QkIzRjggLyogSlNXZWJLaXRBbmltYXRpb24uY3Bw
IGluIFNvdXJjZXMgKi8sCisJCQkJMzE5NDYxNkIxMzAyMEI2NjAwNEJCM0Y4IC8qIERPTVdlYktp
dEFuaW1hdGlvbi5tbSBpbiBTb3VyY2VzICovLAorCQkJCTMxOTQ2MTkwMTMwMjEwNjQwMDRCQjNG
OCAvKiBXZWJLaXRBbmltYXRpb25MaXN0LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTMxOTQ2MUZF
MTMwMjJCQjgwMDRCQjNGOCAvKiBKU1dlYktpdEFuaW1hdGlvbkxpc3QuY3BwIGluIFNvdXJjZXMg
Ki8sCisJCQkJMzE5NDYyMDUxMzAyMkJGMTAwNEJCM0Y4IC8qIERPTVdlYktpdEFuaW1hdGlvbkxp
c3QubW0gaW4gU291cmNlcyAqLywKKwkJCQkzMTk0NjIzMjEzMDIyRjY1MDA0QkIzRjggLyogSlNX
ZWJLaXRBbmltYXRpb25MaXN0Q3VzdG9tLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTMxOUU2ODg3
MTMyN0M5MTEwMDRBQzkxQSAvKiBKU1dlYktpdEFuaW1hdGlvbkN1c3RvbS5jcHAgaW4gU291cmNl
cyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsK
IAkJfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTV2ViS2l0QW5p
bWF0aW9uQ3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTV2ViS2l0QW5p
bWF0aW9uQ3VzdG9tLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44Mzdk
NTM1Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNXZWJL
aXRBbmltYXRpb25DdXN0b20uY3BwCkBAIC0wLDAgKzEsNDQgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTEgQXBwbGUgSW5jLiBBbGwgcmlnaHQgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBgYEFTIElT
JycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCisgKiBD
T05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1Ig
QlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQor
ICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUg
ImNvbmZpZy5oIgorI2luY2x1ZGUgIkpTV2ViS2l0QW5pbWF0aW9uLmgiCisKKyNpbmNsdWRlICJX
ZWJLaXRBbmltYXRpb24uaCIKKwordXNpbmcgbmFtZXNwYWNlIEpTQzsKKworbmFtZXNwYWNlIFdl
YkNvcmUgeworCitKU1ZhbHVlIEpTV2ViS2l0QW5pbWF0aW9uOjppdGVyYXRpb25Db3VudChFeGVj
U3RhdGUqKSBjb25zdAoreworICAgIFdlYktpdEFuaW1hdGlvbiogaW1wID0gaW1wbCgpOworICAg
IGludCBjb3VudCA9IGltcC0+aXRlcmF0aW9uQ291bnQoKTsKKyAgICBpZiAoY291bnQgPT0gQW5p
bWF0aW9uOjpJdGVyYXRpb25Db3VudEluZmluaXRlKQorICAgICAgICByZXR1cm4ganNOdW1iZXIo
SU5GSU5JVFkpOworICAgIHJldHVybiBqc051bWJlcihjb3VudCk7Cit9CisKK30KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTV2ViS2l0QW5pbWF0aW9uTGlzdEN1c3Rv
bS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dlYktpdEFuaW1hdGlvbkxpc3RD
dXN0b20uY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmVhZjc3Y2YKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dlYktpdEFuaW1h
dGlvbkxpc3RDdXN0b20uY3BwCkBAIC0wLDAgKzEsNDcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTEgQXBwbGUgSW5jLiBBbGwgcmlnaHQgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBgYEFTIElTJycg
QU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCisgKiBDT05U
UklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVT
SU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICog
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNv
bmZpZy5oIgorI2luY2x1ZGUgIkpTV2ViS2l0QW5pbWF0aW9uTGlzdC5oIgorCisjaW5jbHVkZSAi
V2ViS2l0QW5pbWF0aW9uTGlzdC5oIgorCit1c2luZyBuYW1lc3BhY2UgSlNDOworCituYW1lc3Bh
Y2UgV2ViQ29yZSB7CisKK3ZvaWQgSlNXZWJLaXRBbmltYXRpb25MaXN0OjptYXJrQ2hpbGRyZW4o
TWFya1N0YWNrJiBtYXJrU3RhY2spCit7CisgICAgQmFzZTo6bWFya0NoaWxkcmVuKG1hcmtTdGFj
ayk7CisKKyAgICBXZWJLaXRBbmltYXRpb25MaXN0KiBsaXN0ID0gaW1wbCgpOworICAgIEpTR2xv
YmFsRGF0YSYgZ2xvYmFsRGF0YSA9ICpIZWFwOjpoZWFwKHRoaXMpLT5nbG9iYWxEYXRhKCk7CisK
KyAgICB1bnNpZ25lZCBsZW5ndGggPSBsaXN0LT5sZW5ndGgoKTsKKyAgICBmb3IgKHVuc2lnbmVk
IGkgPSAwOyBpIDwgbGVuZ3RoOyArK2kpCisgICAgICAgIG1hcmtET01PYmplY3RXcmFwcGVyKG1h
cmtTdGFjaywgZ2xvYmFsRGF0YSwgbGlzdC0+aXRlbShpKSk7Cit9CisKK30KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOFdlYktpdEFuaW1hdGlvbkN1c3Rv
bS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhXZWJLaXRBbmltYXRp
b25DdXN0b20uY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjA5M2NjMWEK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhX
ZWJLaXRBbmltYXRpb25DdXN0b20uY3BwCkBAIC0wLDAgKzEsNTAgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMTEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogICogUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIGBg
QVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVCBPV05FUiBPUgor
ICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7
IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNs
dWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJWOFdlYmtpdEFuaW1hdGlvbi5oIgorCisjaW5jbHVk
ZSAiV2Via2l0QW5pbWF0aW9uLmgiCisjaW5jbHVkZSAiVjhCaW5kaW5nLmgiCisjaW5jbHVkZSAi
VjhCaW5kaW5nTWFjcm9zLmgiCisjaW5jbHVkZSAiVjhQcm94eS5oIgorCisjaW5jbHVkZSA8djgu
aD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCit2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gVjhXZWJr
aXRBbmltYXRpb246Oml0ZXJhdGlvbkNvdW50QWNjZXNzb3JHZXR0ZXIodjg6OkxvY2FsPHY4OjpT
dHJpbmc+IG5hbWUsIGNvbnN0IHY4OjpBY2Nlc3NvckluZm8mIGluZm8pCit7CisgICAgSU5DX1NU
QVRTKCJET00uV2Via2l0QW5pbWF0aW9uLml0ZXJhdGlvbkNvdW50Ll9nZXQiKTsKKyAgICB2ODo6
SGFuZGxlPHY4OjpPYmplY3Q+IGhvbGRlciA9IGluZm8uSG9sZGVyKCk7CisgICAgV2Via2l0QW5p
bWF0aW9uKiBpbXAgPSBWOFdlYmtpdEFuaW1hdGlvbjo6dG9OYXRpdmUoaG9sZGVyKTsKKyAgICBp
bnQgY291bnQgPSBpbXAtPml0ZXJhdGlvbkNvdW50KCk7CisgICAgaWYgKGNvdW50ID09IEFuaW1h
dGlvbjo6SXRlcmF0aW9uQ291bnRJbmZpbml0ZSkKKyAgICAgICAgcmV0dXJuIHY4OjpOdW1iZXI6
Ok5ldyhJTkZJTklUWSk7CisgICAgcmV0dXJuIHY4OjpOdW1iZXI6Ok5ldyhjb3VudCk7Cit9CisK
K30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9t
L0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCmluZGV4IGI5Y2Iz
YWQuLjhmNTA4YTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKQEAgLTU1LDYgKzU1LDcgQEAKICNp
bmNsdWRlICJSZW5kZXJXaWRnZXQuaCIKICNpbmNsdWRlICJTZXR0aW5ncy5oIgogI2luY2x1ZGUg
IlRleHRJdGVyYXRvci5oIgorI2luY2x1ZGUgIldlYktpdEFuaW1hdGlvbkxpc3QuaCIKICNpbmNs
dWRlICJYTUxOYW1lcy5oIgogI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KIApAQCAtMTg3
NSw0ICsxODc2LDEyIEBAIGJvb2wgRWxlbWVudDo6aXNTcGVsbENoZWNraW5nRW5hYmxlZCgpIGNv
bnN0CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKK1Bhc3NSZWZQdHI8V2ViS2l0QW5pbWF0aW9uTGlz
dD4gRWxlbWVudDo6d2Via2l0R2V0QW5pbWF0aW9ucygpCit7CisgICAgaWYgKCFyZW5kZXJlcigp
KQorICAgICAgICByZXR1cm4gMDsKKworICAgIHJldHVybiByZW5kZXJlcigpLT5hbmltYXRpb25z
KCk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9FbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5oCmluZGV4IDVj
NTRjZTQuLmFiMjBhMDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmgK
KysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuaApAQCAtMzksNiArMzksNyBAQCBjbGFz
cyBET01TdHJpbmdNYXA7CiBjbGFzcyBET01Ub2tlbkxpc3Q7CiBjbGFzcyBFbGVtZW50UmFyZURh
dGE7CiBjbGFzcyBJbnRTaXplOworY2xhc3MgV2ViS2l0QW5pbWF0aW9uTGlzdDsKIAogZW51bSBT
cGVsbGNoZWNrQXR0cmlidXRlU3RhdGUgewogICAgIFNwZWxsY2hlY2tBdHRyaWJ1dGVUcnVlLApA
QCAtMzQ0LDYgKzM0NSw4IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgYm9vbCBpc1NwZWxsQ2hl
Y2tpbmdFbmFibGVkKCkgY29uc3Q7CiAKKyAgICBQYXNzUmVmUHRyPFdlYktpdEFuaW1hdGlvbkxp
c3Q+IHdlYmtpdEdldEFuaW1hdGlvbnMoKTsKKwogcHJvdGVjdGVkOgogICAgIEVsZW1lbnQoY29u
c3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQqIGRvY3VtZW50LCBDb25zdHJ1Y3Rp
b25UeXBlIHR5cGUpCiAgICAgICAgIDogQ29udGFpbmVyTm9kZShkb2N1bWVudCwgdHlwZSkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmlkbCBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9FbGVtZW50LmlkbAppbmRleCA2NTJhNzViLi5mYzI4NjQyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRWxlbWVudC5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1l
bnQuaWRsCkBAIC05Niw2ICs5Niw4IEBAIG1vZHVsZSBjb3JlIHsKICAgICAgICAgdm9pZCBzY3Jv
bGxCeUxpbmVzKGluIGxvbmcgbGluZXMpOwogICAgICAgICB2b2lkIHNjcm9sbEJ5UGFnZXMoaW4g
bG9uZyBwYWdlcyk7CiAKKyAgICAgICAgV2ViS2l0QW5pbWF0aW9uTGlzdCB3ZWJraXRHZXRBbmlt
YXRpb25zKCk7CisKICAgICAgICAgLy8gSFRNTCA1CiAgICAgICAgIE5vZGVMaXN0IGdldEVsZW1l
bnRzQnlDbGFzc05hbWUoaW4gRE9NU3RyaW5nIG5hbWUpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRv
dy5pZGwKaW5kZXggMGYxNDJhNi4uZDNhZDI0NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGFnZS9ET01XaW5kb3cuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93Lmlk
bApAQCAtNjA1LDYgKzYwNSw5IEBAIG1vZHVsZSB3aW5kb3cgewogICAgICAgICBhdHRyaWJ1dGUg
W0NvbmRpdGlvbmFsPVZJREVPLCBFbmFibGVkQXRSdW50aW1lXSBNZWRpYUVycm9yQ29uc3RydWN0
b3IgTWVkaWFFcnJvcjsKICAgICAgICAgYXR0cmlidXRlIFtDb25kaXRpb25hbD1WSURFTywgRW5h
YmxlZEF0UnVudGltZV0gVGltZVJhbmdlc0NvbnN0cnVjdG9yIFRpbWVSYW5nZXM7CiAKKyAgICAg
ICAgYXR0cmlidXRlIFdlYktpdEFuaW1hdGlvbkNvbnN0cnVjdG9yIFdlYktpdEFuaW1hdGlvbjsK
KyAgICAgICAgYXR0cmlidXRlIFdlYktpdEFuaW1hdGlvbkxpc3RDb25zdHJ1Y3RvciBXZWJLaXRB
bmltYXRpb25MaXN0OworCiAjaWYgZGVmaW5lZChFTkFCTEVfWFBBVEgpICYmIEVOQUJMRV9YUEFU
SAogICAgICAgICBhdHRyaWJ1dGUgWFBhdGhFdmFsdWF0b3JDb25zdHJ1Y3RvciBYUGF0aEV2YWx1
YXRvcjsKICAgICAgICAgYXR0cmlidXRlIFhQYXRoUmVzdWx0Q29uc3RydWN0b3IgWFBhdGhSZXN1
bHQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9BbmltYXRpb25C
YXNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0FuaW1hdGlvbkJhc2UuY3Bw
CmluZGV4IDlhOTA2ZTIuLjA0YzRiM2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
YW5pbWF0aW9uL0FuaW1hdGlvbkJhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5p
bWF0aW9uL0FuaW1hdGlvbkJhc2UuY3BwCkBAIC04MDgsOCArODA4LDExIEBAIEFuaW1hdGlvbkJh
c2U6OkFuaW1hdGlvbkJhc2UoY29uc3QgQW5pbWF0aW9uKiB0cmFuc2l0aW9uLCBSZW5kZXJPYmpl
Y3QqIHJlbmRlcmVyCiAKIEFuaW1hdGlvbkJhc2U6On5BbmltYXRpb25CYXNlKCkKIHsKLSAgICBt
X2NvbXBBbmltLT5hbmltYXRpb25Db250cm9sbGVyKCktPnJlbW92ZUZyb21TdHlsZUF2YWlsYWJs
ZVdhaXRMaXN0KHRoaXMpOwotICAgIG1fY29tcEFuaW0tPmFuaW1hdGlvbkNvbnRyb2xsZXIoKS0+
cmVtb3ZlRnJvbVN0YXJ0VGltZVJlc3BvbnNlV2FpdExpc3QodGhpcyk7CisgICAgLy8gUmVtb3Zl
IG91cnNlbHZlcyBmcm9tIHRoZSB3YWl0IGxpc3RzIGlmIHdlIHN0aWxsIGhhdmUgYSByZW5kZXJl
ci4KKyAgICBpZiAobV9vYmplY3QpIHsKKyAgICAgICAgbV9jb21wQW5pbS0+YW5pbWF0aW9uQ29u
dHJvbGxlcigpLT5yZW1vdmVGcm9tU3R5bGVBdmFpbGFibGVXYWl0TGlzdCh0aGlzKTsKKyAgICAg
ICAgbV9jb21wQW5pbS0+YW5pbWF0aW9uQ29udHJvbGxlcigpLT5yZW1vdmVGcm9tU3RhcnRUaW1l
UmVzcG9uc2VXYWl0TGlzdCh0aGlzKTsKKyAgICB9CiB9CiAKIGJvb2wgQW5pbWF0aW9uQmFzZTo6
cHJvcGVydGllc0VxdWFsKGludCBwcm9wLCBjb25zdCBSZW5kZXJTdHlsZSogYSwgY29uc3QgUmVu
ZGVyU3R5bGUqIGIpCkBAIC0xMzk3LDUgKzE0MDAsMjEgQEAgZG91YmxlIEFuaW1hdGlvbkJhc2U6
OmdldEVsYXBzZWRUaW1lKCkgY29uc3QKIAogICAgIHJldHVybiBiZWdpbkFuaW1hdGlvblVwZGF0
ZVRpbWUoKSAtIG1fc3RhcnRUaW1lOwogfQotICAgIAorCit2b2lkIEFuaW1hdGlvbkJhc2U6OnNl
dEVsYXBzZWRUaW1lKGRvdWJsZSB0aW1lKQoreworICAgIC8vIFRPRE8KKyAgICBVTlVTRURfUEFS
QU0odGltZSk7Cit9CisKK3ZvaWQgQW5pbWF0aW9uQmFzZTo6cGxheSgpCit7CisgICAgLy8gVE9E
TworfQorCit2b2lkIEFuaW1hdGlvbkJhc2U6OnBhdXNlKCkKK3sKKyAgICAvLyBUT0RPCit9CisK
IH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
YW5pbWF0aW9uL0FuaW1hdGlvbkJhc2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9u
L0FuaW1hdGlvbkJhc2UuaAppbmRleCA4NzdkNjQ5Li5mZWQ5NGRhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9BbmltYXRpb25CYXNlLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9hbmltYXRpb24vQW5pbWF0aW9uQmFzZS5oCkBAIC0xNjMsMTEgKzE2MywxNyBA
QCBwdWJsaWM6CiAgICAgCiAgICAgLy8gRnJlZXplIHRoZSBhbmltYXRpb247IHVzZWQgYnkgRHVt
cFJlbmRlclRyZWUuCiAgICAgdm9pZCBmcmVlemVBdFRpbWUoZG91YmxlIHQpOworCisgICAgLy8g
UGxheSBhbmQgcGF1c2UgQVBJCisgICAgdm9pZCBwbGF5KCk7CisgICAgdm9pZCBwYXVzZSgpOwog
ICAgIAogICAgIGRvdWJsZSBiZWdpbkFuaW1hdGlvblVwZGF0ZVRpbWUoKSBjb25zdDsKICAgICAK
ICAgICBkb3VibGUgZ2V0RWxhcHNlZFRpbWUoKSBjb25zdDsKLSAgICAKKyAgICAvLyBTZXR0aW5n
IHRoZSBlbGFwc2VkIHRpbWUgd2lsbCBhZGp1c3QgdGhlIHN0YXJ0IHRpbWUgYW5kIHBvc3NpYmx5
IHBhdXNlIHRpbWUuCisgICAgdm9pZCBzZXRFbGFwc2VkVGltZShkb3VibGUgdGltZSk7CisKICAg
ICBBbmltYXRpb25CYXNlKiBuZXh0KCkgY29uc3QgeyByZXR1cm4gbV9uZXh0OyB9CiAgICAgdm9p
ZCBzZXROZXh0KEFuaW1hdGlvbkJhc2UqIGFuaW1hdGlvbikgeyBtX25leHQgPSBhbmltYXRpb247
IH0KICAgICAKQEAgLTE4Miw3ICsxODgsOSBAQCBwdWJsaWM6CiAjZW5kaWYKIAogICAgIHN0YXRp
YyBIYXNoU2V0PGludD4gYW5pbWF0YWJsZVNob3J0aGFuZHNBZmZlY3RpbmdQcm9wZXJ0eShpbnQg
cHJvcGVydHkpOwotICAgIAorCisgICAgQW5pbWF0aW9uKiBhbmltYXRpb24oKSB7IHJldHVybiBt
X2FuaW1hdGlvbi5nZXQoKTsgfQorCiBwcm90ZWN0ZWQ6CiAgICAgdmlydHVhbCB2b2lkIG92ZXJy
aWRlQW5pbWF0aW9ucygpIHsgfQogICAgIHZpcnR1YWwgdm9pZCByZXN1bWVPdmVycmlkZGVuQW5p
bWF0aW9ucygpIHsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24v
QW5pbWF0aW9uQ29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9B
bmltYXRpb25Db250cm9sbGVyLmNwcAppbmRleCBkY2RlYTAzLi5hNzMwMDY1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9BbmltYXRpb25Db250cm9sbGVyLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9BbmltYXRpb25Db250cm9sbGVyLmNw
cApAQCAtMzcsMTIgKzM3LDE0IEBACiAjaW5jbHVkZSAiRnJhbWUuaCIKICNpbmNsdWRlICJSZW5k
ZXJWaWV3LmgiCiAjaW5jbHVkZSAiV2ViS2l0QW5pbWF0aW9uRXZlbnQuaCIKKyNpbmNsdWRlICJX
ZWJLaXRBbmltYXRpb25MaXN0LmgiCiAjaW5jbHVkZSAiV2ViS2l0VHJhbnNpdGlvbkV2ZW50Lmgi
CiAjaW5jbHVkZSA8d3RmL0N1cnJlbnRUaW1lLmg+CiAjaW5jbHVkZSA8d3RmL1VudXNlZFBhcmFt
Lmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorLy8gRklYTUU6IFdoeSBpc24ndCB0aGlzIHNl
dCB0byA2MGZwcyBvciBzb21ldGhpbmc/CiBzdGF0aWMgY29uc3QgZG91YmxlIGNBbmltYXRpb25U
aW1lckRlbGF5ID0gMC4wMjU7CiBzdGF0aWMgY29uc3QgZG91YmxlIGNCZWdpbkFuaW1hdGlvblVw
ZGF0ZVRpbWVOb3RTZXQgPSAtMTsKIApAQCAtNDc5LDYgKzQ4MSwxNiBAQCB2b2lkIEFuaW1hdGlv
bkNvbnRyb2xsZXJQcml2YXRlOjpzdGFydFRpbWVSZXNwb25zZShkb3VibGUgdGltZSkKICAgICBt
X2xhc3RTdGFydFRpbWVSZXNwb25zZVdhaXRlciA9IDA7CiB9CiAKK1Bhc3NSZWZQdHI8V2ViS2l0
QW5pbWF0aW9uTGlzdD4gQW5pbWF0aW9uQ29udHJvbGxlclByaXZhdGU6OmFuaW1hdGlvbnNGb3JS
ZW5kZXJlcihSZW5kZXJPYmplY3QqIHJlbmRlcmVyKSBjb25zdAoreworICAgIFJlZlB0cjxDb21w
b3NpdGVBbmltYXRpb24+IGFuaW1hdGlvbiA9IG1fY29tcG9zaXRlQW5pbWF0aW9ucy5nZXQocmVu
ZGVyZXIpOworCisgICAgaWYgKCFhbmltYXRpb24pCisgICAgICAgIHJldHVybiAwOworCisgICAg
cmV0dXJuIGFuaW1hdGlvbi0+YW5pbWF0aW9ucygpOworfQorCiBBbmltYXRpb25Db250cm9sbGVy
OjpBbmltYXRpb25Db250cm9sbGVyKEZyYW1lKiBmcmFtZSkKICAgICA6IG1fZGF0YShuZXcgQW5p
bWF0aW9uQ29udHJvbGxlclByaXZhdGUoZnJhbWUpKQogewpAQCAtNjEyLDQgKzYyNCw5IEBAIGJv
b2wgQW5pbWF0aW9uQ29udHJvbGxlcjo6c3VwcG9ydHNBY2NlbGVyYXRlZEFuaW1hdGlvbk9mUHJv
cGVydHkoQ1NTUHJvcGVydHlJRCBwCiAjZW5kaWYKIH0KIAorUGFzc1JlZlB0cjxXZWJLaXRBbmlt
YXRpb25MaXN0PiBBbmltYXRpb25Db250cm9sbGVyOjphbmltYXRpb25zRm9yUmVuZGVyZXIoUmVu
ZGVyT2JqZWN0KiByZW5kZXJlcikgY29uc3QKK3sKKyAgICByZXR1cm4gbV9kYXRhLT5hbmltYXRp
b25zRm9yUmVuZGVyZXIocmVuZGVyZXIpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9BbmltYXRpb25Db250cm9s
bGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9BbmltYXRpb25Db250cm9sbGVy
LmgKaW5kZXggNTI3OTQ2Ny4uYTM1NWY4NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9hbmltYXRpb24vQW5pbWF0aW9uQ29udHJvbGxlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvYW5pbWF0aW9uL0FuaW1hdGlvbkNvbnRyb2xsZXIuaApAQCAtNDIsNiArNDIsNyBAQCBjbGFz
cyBGcmFtZTsKIGNsYXNzIE5vZGU7CiBjbGFzcyBSZW5kZXJPYmplY3Q7CiBjbGFzcyBSZW5kZXJT
dHlsZTsKK2NsYXNzIFdlYktpdEFuaW1hdGlvbkxpc3Q7CiAKIGNsYXNzIEFuaW1hdGlvbkNvbnRy
b2xsZXIgewogcHVibGljOgpAQCAtNzMsNiArNzQsOCBAQCBwdWJsaWM6CiAgICAgCiAgICAgc3Rh
dGljIGJvb2wgc3VwcG9ydHNBY2NlbGVyYXRlZEFuaW1hdGlvbk9mUHJvcGVydHkoQ1NTUHJvcGVy
dHlJRCk7CiAKKyAgICBQYXNzUmVmUHRyPFdlYktpdEFuaW1hdGlvbkxpc3Q+IGFuaW1hdGlvbnNG
b3JSZW5kZXJlcihSZW5kZXJPYmplY3QqKSBjb25zdDsKKwogcHJpdmF0ZToKICAgICBBbmltYXRp
b25Db250cm9sbGVyUHJpdmF0ZSogbV9kYXRhOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvYW5pbWF0aW9uL0FuaW1hdGlvbkNvbnRyb2xsZXJQcml2YXRlLmggYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9BbmltYXRpb25Db250cm9sbGVyUHJpdmF0ZS5oCmluZGV4
IDE4NmRkN2QuLjg4YjgyYTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0
aW9uL0FuaW1hdGlvbkNvbnRyb2xsZXJQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9hbmltYXRpb24vQW5pbWF0aW9uQ29udHJvbGxlclByaXZhdGUuaApAQCAtNDgsNiArNDgsNyBA
QCBjbGFzcyBGcmFtZTsKIGNsYXNzIE5vZGU7CiBjbGFzcyBSZW5kZXJPYmplY3Q7CiBjbGFzcyBS
ZW5kZXJTdHlsZTsKK2NsYXNzIFdlYktpdEFuaW1hdGlvbkxpc3Q7CiAKIGNsYXNzIEFuaW1hdGlv
bkNvbnRyb2xsZXJQcml2YXRlIHsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShBbmltYXRpb25D
b250cm9sbGVyUHJpdmF0ZSk7IFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwpAQCAtOTMsNiArOTQs
OCBAQCBwdWJsaWM6CiAgICAgdm9pZCBhZGRUb1N0YXJ0VGltZVJlc3BvbnNlV2FpdExpc3QoQW5p
bWF0aW9uQmFzZSosIGJvb2wgd2lsbEdldFJlc3BvbnNlKTsKICAgICB2b2lkIHJlbW92ZUZyb21T
dGFydFRpbWVSZXNwb25zZVdhaXRMaXN0KEFuaW1hdGlvbkJhc2UqKTsgICAgCiAgICAgCisgICAg
UGFzc1JlZlB0cjxXZWJLaXRBbmltYXRpb25MaXN0PiBhbmltYXRpb25zRm9yUmVuZGVyZXIoUmVu
ZGVyT2JqZWN0KikgY29uc3Q7CisgICAgCiBwcml2YXRlOgogICAgIHZvaWQgYW5pbWF0aW9uVGlt
ZXJGaXJlZChUaW1lcjxBbmltYXRpb25Db250cm9sbGVyUHJpdmF0ZT4qKTsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vQ29tcG9zaXRlQW5pbWF0aW9uLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0NvbXBvc2l0ZUFuaW1hdGlvbi5jcHAKaW5k
ZXggNjAyNDkxZS4uN2RlYmQwYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9hbmlt
YXRpb24vQ29tcG9zaXRlQW5pbWF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2Fu
aW1hdGlvbi9Db21wb3NpdGVBbmltYXRpb24uY3BwCkBAIC0zNiw2ICszNiw4IEBACiAjaW5jbHVk
ZSAiS2V5ZnJhbWVBbmltYXRpb24uaCIKICNpbmNsdWRlICJSZW5kZXJPYmplY3QuaCIKICNpbmNs
dWRlICJSZW5kZXJTdHlsZS5oIgorI2luY2x1ZGUgIldlYktpdEFuaW1hdGlvbi5oIgorI2luY2x1
ZGUgIldlYktpdEFuaW1hdGlvbkxpc3QuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC0y
NTIsOCArMjU0LDEwIEBAIHZvaWQgQ29tcG9zaXRlQW5pbWF0aW9uOjp1cGRhdGVLZXlmcmFtZUFu
aW1hdGlvbnMoUmVuZGVyT2JqZWN0KiByZW5kZXJlciwgUmVuZGVyCiAgICAga2ZlbmQgPSBtX2tl
eWZyYW1lQW5pbWF0aW9ucy5lbmQoKTsKICAgICBmb3IgKEFuaW1hdGlvbk5hbWVNYXA6OmNvbnN0
X2l0ZXJhdG9yIGl0ID0gbV9rZXlmcmFtZUFuaW1hdGlvbnMuYmVnaW4oKTsgaXQgIT0ga2ZlbmQ7
ICsraXQpIHsKICAgICAgICAgS2V5ZnJhbWVBbmltYXRpb24qIGtleWZyYW1lQW5pbSA9IGl0LT5z
ZWNvbmQuZ2V0KCk7Ci0gICAgICAgIGlmIChrZXlmcmFtZUFuaW0tPmluZGV4KCkgPCAwKQorICAg
ICAgICBpZiAoa2V5ZnJhbWVBbmltLT5pbmRleCgpIDwgMCkgewogICAgICAgICAgICAgYW5pbXNU
b0JlUmVtb3ZlZC5hcHBlbmQoa2V5ZnJhbWVBbmltLT5uYW1lKCkuaW1wbCgpKTsKKyAgICAgICAg
ICAgIGtleWZyYW1lQW5pbS0+Y2xlYXJSZW5kZXJlcigpOworICAgICAgICB9CiAgICAgfQogICAg
IAogICAgIC8vIE5vdyByZW1vdmUgdGhlIGFuaW1hdGlvbnMgZnJvbSB0aGUgbGlzdC4KQEAgLTU2
MCw0ICs1NjQsMTkgQEAgdW5zaWduZWQgQ29tcG9zaXRlQW5pbWF0aW9uOjpudW1iZXJPZkFjdGl2
ZUFuaW1hdGlvbnMoKSBjb25zdAogICAgIHJldHVybiBjb3VudDsKIH0KIAorUGFzc1JlZlB0cjxX
ZWJLaXRBbmltYXRpb25MaXN0PiBDb21wb3NpdGVBbmltYXRpb246OmFuaW1hdGlvbnMoKSBjb25z
dAoreworICAgIFJlZlB0cjxXZWJLaXRBbmltYXRpb25MaXN0PiBhbmltYXRpb25zID0gV2ViS2l0
QW5pbWF0aW9uTGlzdDo6Y3JlYXRlKCk7CisgICAgaWYgKCFtX2tleWZyYW1lQW5pbWF0aW9ucy5p
c0VtcHR5KCkpIHsKKyAgICAgICAgbV9rZXlmcmFtZUFuaW1hdGlvbnMuY2hlY2tDb25zaXN0ZW5j
eSgpOworICAgICAgICBBbmltYXRpb25OYW1lTWFwOjpjb25zdF9pdGVyYXRvciBhbmltYXRpb25z
RW5kID0gbV9rZXlmcmFtZUFuaW1hdGlvbnMuZW5kKCk7CisgICAgICAgIGZvciAoQW5pbWF0aW9u
TmFtZU1hcDo6Y29uc3RfaXRlcmF0b3IgaXQgPSBtX2tleWZyYW1lQW5pbWF0aW9ucy5iZWdpbigp
OyBpdCAhPSBhbmltYXRpb25zRW5kOyArK2l0KSB7CisgICAgICAgICAgICBLZXlmcmFtZUFuaW1h
dGlvbioga2V5ZnJhbWVBbmltYXRpb24gPSBpdC0+c2Vjb25kLmdldCgpOworICAgICAgICAgICAg
UmVmUHRyPFdlYktpdEFuaW1hdGlvbj4gYW5pbSA9IFdlYktpdEFuaW1hdGlvbjo6Y3JlYXRlKGtl
eWZyYW1lQW5pbWF0aW9uKTsKKyAgICAgICAgICAgIGFuaW1hdGlvbnMtPmFwcGVuZChhbmltKTsK
KyAgICAgICAgfQorICAgIH0KKyAgICByZXR1cm4gYW5pbWF0aW9uczsKK30KKwogfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24v
Q29tcG9zaXRlQW5pbWF0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9Db21w
b3NpdGVBbmltYXRpb24uaAppbmRleCAyNDlmNGMzLi4xYmZlNTg1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9Db21wb3NpdGVBbmltYXRpb24uaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9Db21wb3NpdGVBbmltYXRpb24uaApAQCAtNDEsNiAr
NDEsNyBAQCBjbGFzcyBBbmltYXRpb25Db250cm9sbGVyUHJpdmF0ZTsKIGNsYXNzIEFuaW1hdGlv
bkNvbnRyb2xsZXI7CiBjbGFzcyBSZW5kZXJPYmplY3Q7CiBjbGFzcyBSZW5kZXJTdHlsZTsKK2Ns
YXNzIFdlYktpdEFuaW1hdGlvbkxpc3Q7CiAKIC8vIEEgQ29tcG9zaXRlQW5pbWF0aW9uIHJlcHJl
c2VudHMgYSBjb2xsZWN0aW9uIG9mIGFuaW1hdGlvbnMgdGhhdCBhcmUgcnVubmluZwogLy8gb24g
YSBzaW5nbGUgUmVuZGVyT2JqZWN0LCBzdWNoIGFzIGEgbnVtYmVyIG9mIHByb3BlcnRpZXMgdHJh
bnNpdGlvbmluZyBhdCBvbmNlLgpAQCAtODAsNiArODEsOCBAQCBwdWJsaWM6CiAgICAgYm9vbCBw
YXVzZVRyYW5zaXRpb25BdFRpbWUoaW50IHByb3BlcnR5LCBkb3VibGUgdCk7CiAgICAgdW5zaWdu
ZWQgbnVtYmVyT2ZBY3RpdmVBbmltYXRpb25zKCkgY29uc3Q7CiAKKyAgICBQYXNzUmVmUHRyPFdl
YktpdEFuaW1hdGlvbkxpc3Q+IGFuaW1hdGlvbnMoKSBjb25zdDsKKwogcHJpdmF0ZToKICAgICBD
b21wb3NpdGVBbmltYXRpb24oQW5pbWF0aW9uQ29udHJvbGxlclByaXZhdGUqIGFuaW1hdGlvbkNv
bnRyb2xsZXIpCiAgICAgICAgIDogbV9hbmltYXRpb25Db250cm9sbGVyKGFuaW1hdGlvbkNvbnRy
b2xsZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9XZWJLaXRB
bmltYXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vV2ViS2l0QW5pbWF0
aW9uLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kZGUxMDc3Ci0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vV2ViS2l0QW5pbWF0
aW9uLmNwcApAQCAtMCwwICsxLDEyMCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQor
ICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMg
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwK
KyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIK
KyNpbmNsdWRlICJXZWJLaXRBbmltYXRpb24uaCIKKworI2luY2x1ZGUgIkFuaW1hdGlvbi5oIgor
I2luY2x1ZGUgIkFuaW1hdGlvbkJhc2UuaCIKKyNpbmNsdWRlICJSZW5kZXJTdHlsZS5oIgorCit1
c2luZyBuYW1lc3BhY2Ugc3RkOworCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1dlYktpdEFuaW1h
dGlvbjo6V2ViS2l0QW5pbWF0aW9uKFBhc3NSZWZQdHI8S2V5ZnJhbWVBbmltYXRpb24+IGtleWZy
YW1lQW5pbWF0aW9uKQorICAgIDogbV9rZXlmcmFtZUFuaW1hdGlvbihrZXlmcmFtZUFuaW1hdGlv
bikKK3sKK30KKworU3RyaW5nIFdlYktpdEFuaW1hdGlvbjo6bmFtZSgpIGNvbnN0Cit7CisgICAg
cmV0dXJuIG1fa2V5ZnJhbWVBbmltYXRpb24tPmFuaW1hdGlvbigpLT5uYW1lKCk7Cit9CisKK2Rv
dWJsZSBXZWJLaXRBbmltYXRpb246OmR1cmF0aW9uKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9r
ZXlmcmFtZUFuaW1hdGlvbi0+ZHVyYXRpb24oKTsKK30KKworZG91YmxlIFdlYktpdEFuaW1hdGlv
bjo6ZWxhcHNlZFRpbWUoKSBjb25zdAoreworICAgIHJldHVybiBtX2tleWZyYW1lQW5pbWF0aW9u
LT5nZXRFbGFwc2VkVGltZSgpOworfQorCit2b2lkIFdlYktpdEFuaW1hdGlvbjo6c2V0RWxhcHNl
ZFRpbWUoZG91YmxlIHRpbWUpCit7CisgICAgbV9rZXlmcmFtZUFuaW1hdGlvbi0+c2V0RWxhcHNl
ZFRpbWUodGltZSk7Cit9CisKK2RvdWJsZSBXZWJLaXRBbmltYXRpb246OmRlbGF5KCkgY29uc3QK
K3sKKyAgICByZXR1cm4gbV9rZXlmcmFtZUFuaW1hdGlvbi0+YW5pbWF0aW9uKCktPmRlbGF5KCk7
Cit9CisKK2ludCBXZWJLaXRBbmltYXRpb246Oml0ZXJhdGlvbkNvdW50KCkgY29uc3QKK3sKKyAg
ICByZXR1cm4gbV9rZXlmcmFtZUFuaW1hdGlvbi0+YW5pbWF0aW9uKCktPml0ZXJhdGlvbkNvdW50
KCk7Cit9CisKK2Jvb2wgV2ViS2l0QW5pbWF0aW9uOjpwYXVzZWQoKSBjb25zdAoreworICAgIHJl
dHVybiBtX2tleWZyYW1lQW5pbWF0aW9uLT5wYXVzZWQoKTsKK30KKworYm9vbCBXZWJLaXRBbmlt
YXRpb246OmVuZGVkKCkgY29uc3QKK3sKKyAgICBpbnQgaXRlcmF0aW9ucyA9IGl0ZXJhdGlvbkNv
dW50KCk7CisgICAgaWYgKGl0ZXJhdGlvbnMgPT0gQW5pbWF0aW9uOjpJdGVyYXRpb25Db3VudElu
ZmluaXRlKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgcmV0dXJuIG1fa2V5ZnJhbWVBbmlt
YXRpb24tPmdldEVsYXBzZWRUaW1lKCkgPiAobV9rZXlmcmFtZUFuaW1hdGlvbi0+ZHVyYXRpb24o
KSAqIGl0ZXJhdGlvbnMpOworfQorCitXZWJLaXRBbmltYXRpb246OkRpcmVjdGlvbiBXZWJLaXRB
bmltYXRpb246OmRpcmVjdGlvbigpIGNvbnN0Cit7CisgICAgaWYgKG1fa2V5ZnJhbWVBbmltYXRp
b24tPmFuaW1hdGlvbigpLT5kaXJlY3Rpb24oKSA9PSBBbmltYXRpb246OkFuaW1hdGlvbkRpcmVj
dGlvbk5vcm1hbCkKKyAgICAgICAgcmV0dXJuIERJUkVDVElPTl9OT1JNQUw7CisgICAgcmV0dXJu
IERJUkVDVElPTl9BTFRFUk5BVEU7Cit9CisKK1dlYktpdEFuaW1hdGlvbjo6RmlsbE1vZGUgV2Vi
S2l0QW5pbWF0aW9uOjpmaWxsTW9kZSgpIGNvbnN0Cit7CisgICAgc3dpdGNoIChtX2tleWZyYW1l
QW5pbWF0aW9uLT5hbmltYXRpb24oKS0+ZmlsbE1vZGUoKSkgeworICAgICAgICBjYXNlIEFuaW1h
dGlvbkZpbGxNb2RlTm9uZToKKyAgICAgICAgICAgIHJldHVybiBGSUxMX05PTkU7CisgICAgICAg
ICAgICBicmVhazsKKyAgICAgICAgY2FzZSBBbmltYXRpb25GaWxsTW9kZUZvcndhcmRzOgorICAg
ICAgICAgICAgcmV0dXJuIEZJTExfRk9SV0FSRFM7CisgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgY2FzZSBBbmltYXRpb25GaWxsTW9kZUJhY2t3YXJkczoKKyAgICAgICAgICAgIHJldHVybiBG
SUxMX0JBQ0tXQVJEUzsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBkZWZhdWx0OgorICAg
ICAgICAgICAgcmV0dXJuIEZJTExfQk9USDsKKyAgICAgICAgICAgIGJyZWFrOworICAgIH0KK30K
Kwordm9pZCBXZWJLaXRBbmltYXRpb246OnBhdXNlKCkKK3sKKyAgICBtX2tleWZyYW1lQW5pbWF0
aW9uLT5wYXVzZSgpOworfQorCit2b2lkIFdlYktpdEFuaW1hdGlvbjo6cGxheSgpCit7CisgICAg
bV9rZXlmcmFtZUFuaW1hdGlvbi0+cGxheSgpOworfQorCit9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9XZWJLaXRBbmltYXRpb24uaCBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvYW5pbWF0aW9uL1dlYktpdEFuaW1hdGlvbi5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAuLmMwZTVjOGMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL2FuaW1hdGlvbi9XZWJLaXRBbmltYXRpb24uaApAQCAtMCwwICsxLDgxIEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDExIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJ
TkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElO
Qy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0Yg
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8K
KworI2lmbmRlZiBXZWJLaXRBbmltYXRpb25faAorI2RlZmluZSBXZWJLaXRBbmltYXRpb25faAor
CisjaW5jbHVkZSAiQW5pbWF0aW9uLmgiCisjaW5jbHVkZSAiQW5pbWF0aW9uQmFzZS5oIgorI2lu
Y2x1ZGUgIktleWZyYW1lQW5pbWF0aW9uLmgiCisjaW5jbHVkZSAiUmVuZGVyU3R5bGUuaCIKKwor
bmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBXZWJLaXRBbmltYXRpb24gOiBwdWJsaWMgUmVm
Q291bnRlZDxXZWJLaXRBbmltYXRpb24+eworcHVibGljOgorCisgICAgc3RhdGljIFBhc3NSZWZQ
dHI8V2ViS2l0QW5pbWF0aW9uPiBjcmVhdGUoUGFzc1JlZlB0cjxLZXlmcmFtZUFuaW1hdGlvbj4g
a2V5ZnJhbWVBbmltYXRpb24pCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFdl
YktpdEFuaW1hdGlvbihrZXlmcmFtZUFuaW1hdGlvbikpOworICAgIH0KKworICAgIHZpcnR1YWwg
fldlYktpdEFuaW1hdGlvbigpIHsgfQorCisgICAgLy8gRE9NIEFQSQorCisgICAgU3RyaW5nIG5h
bWUoKSBjb25zdDsKKworICAgIGRvdWJsZSBkdXJhdGlvbigpIGNvbnN0OworCisgICAgZG91Ymxl
IGVsYXBzZWRUaW1lKCkgY29uc3Q7CisgICAgdm9pZCBzZXRFbGFwc2VkVGltZShkb3VibGUpOwor
CisgICAgZG91YmxlIGRlbGF5KCkgY29uc3Q7CisgICAgaW50IGl0ZXJhdGlvbkNvdW50KCkgY29u
c3Q7CisKKyAgICBib29sIHBhdXNlZCgpIGNvbnN0OworICAgIGJvb2wgZW5kZWQoKSBjb25zdDsK
KworICAgIC8vIGRpcmVjdGlvbgorICAgIGVudW0gRGlyZWN0aW9uIHsgRElSRUNUSU9OX05PUk1B
TCwgRElSRUNUSU9OX0FMVEVSTkFURSB9OworICAgIERpcmVjdGlvbiBkaXJlY3Rpb24oKSBjb25z
dDsKKworICAgIC8vIGZpbGwgbW9kZQorICAgIGVudW0gRmlsbE1vZGUgeyBGSUxMX05PTkUsIEZJ
TExfQkFDS1dBUkRTLCBGSUxMX0ZPUldBUkRTLCBGSUxMX0JPVEggfTsKKyAgICBGaWxsTW9kZSBm
aWxsTW9kZSgpIGNvbnN0OworCisgICAgdm9pZCBwbGF5KCk7CisgICAgdm9pZCBwYXVzZSgpOwor
Citwcm90ZWN0ZWQ6CisgICAgV2ViS2l0QW5pbWF0aW9uKFBhc3NSZWZQdHI8S2V5ZnJhbWVBbmlt
YXRpb24+KTsKKworcHJpdmF0ZToKKyAgICBSZWZQdHI8S2V5ZnJhbWVBbmltYXRpb24+IG1fa2V5
ZnJhbWVBbmltYXRpb247Cit9OworCit9IC8vbmFtZXNwYWNlCisKKyNlbmRpZgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vV2ViS2l0QW5pbWF0aW9uLmlkbCBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL1dlYktpdEFuaW1hdGlvbi5pZGwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODc4MDdjNwotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL1dlYktpdEFuaW1hdGlvbi5pZGwKQEAgLTAsMCAr
MSw1OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKiAzLiAgTmVpdGhlciB0aGUgbmFtZSBvZiBB
cHBsZSBDb21wdXRlciwgSW5jLiAoIkFwcGxlIikgbm9yIHRoZSBuYW1lcyBvZgorICogICAgIGl0
cyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3Rz
IGRlcml2ZWQKKyAqICAgICBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlv
ciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkKKyAqIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhF
IElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVO
VElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQKKyAqIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKKyAqIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworbW9kdWxlIGh0bWwgeworCisgICAgaW50ZXJmYWNlIFdlYktpdEFuaW1hdGlvbiB7
CisKKyAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyBuYW1lOworCisgICAgICAg
IHJlYWRvbmx5IGF0dHJpYnV0ZSBmbG9hdCBkdXJhdGlvbjsKKyAgICAgICAgYXR0cmlidXRlIGZs
b2F0IGVsYXBzZWRUaW1lOworCisgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBmbG9hdCBkZWxh
eTsKKyAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFtDdXN0b21dIGludCBpdGVyYXRpb25Db3Vu
dDsKKworICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgYm9vbGVhbiBwYXVzZWQ7CisgICAgICAg
IHJlYWRvbmx5IGF0dHJpYnV0ZSBib29sZWFuIGVuZGVkOworCisgICAgICAgIGNvbnN0IHVuc2ln
bmVkIHNob3J0IERJUkVDVElPTl9OT1JNQUwgPSAwOworICAgICAgICBjb25zdCB1bnNpZ25lZCBz
aG9ydCBESVJFQ1RJT05fQUxURVJOQVRFID0gMTsKKyAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRl
IHVuc2lnbmVkIHNob3J0IGRpcmVjdGlvbjsKKworICAgICAgICBjb25zdCB1bnNpZ25lZCBzaG9y
dCBGSUxMX05PTkUgPSAwOworICAgICAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCBGSUxMX0JBQ0tX
QVJEUyA9IDE7CisgICAgICAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IEZJTExfRk9SV0FSRFMgPSAy
OworICAgICAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCBGSUxMX0JPVEggPSAzOworICAgICAgICBy
ZWFkb25seSBhdHRyaWJ1dGUgdW5zaWduZWQgc2hvcnQgZmlsbE1vZGU7CisKKyAgICAgICAgdm9p
ZCBwbGF5KCk7CisgICAgICAgIHZvaWQgcGF1c2UoKTsKKyAgICB9OworCit9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9XZWJLaXRBbmltYXRpb25MaXN0LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL1dlYktpdEFuaW1hdGlvbkxpc3QuY3BwCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjhkOGU2NDMKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9XZWJLaXRBbmltYXRpb25MaXN0LmNw
cApAQCAtMCwwICsxLDg1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1
ZGUgIldlYktpdEFuaW1hdGlvbkxpc3QuaCIKKworI2luY2x1ZGUgIkFuaW1hdGlvbi5oIgorI2lu
Y2x1ZGUgIkFuaW1hdGlvbkJhc2UuaCIKKyNpbmNsdWRlICJSZW5kZXJTdHlsZS5oIgorI2luY2x1
ZGUgIldlYktpdEFuaW1hdGlvbi5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisgICAgCitXZWJL
aXRBbmltYXRpb25MaXN0OjpXZWJLaXRBbmltYXRpb25MaXN0KCkKK3sKK30KKworV2ViS2l0QW5p
bWF0aW9uTGlzdDo6fldlYktpdEFuaW1hdGlvbkxpc3QoKQoreworfQorCit1bnNpZ25lZCBXZWJL
aXRBbmltYXRpb25MaXN0OjpsZW5ndGgoKSBjb25zdAoreworICAgIHJldHVybiBtX2FuaW1hdGlv
bnMuc2l6ZSgpOworfQorCitXZWJLaXRBbmltYXRpb24qIFdlYktpdEFuaW1hdGlvbkxpc3Q6Oml0
ZW0odW5zaWduZWQgaW5kZXgpCit7CisgICAgaWYgKGluZGV4IDwgbV9hbmltYXRpb25zLnNpemUo
KSkKKyAgICAgICAgcmV0dXJuIG1fYW5pbWF0aW9uc1tpbmRleF0uZ2V0KCk7CisgICAgcmV0dXJu
IDA7Cit9CisKK3ZvaWQgV2ViS2l0QW5pbWF0aW9uTGlzdDo6ZGVsZXRlQW5pbWF0aW9uKHVuc2ln
bmVkIGluZGV4KQoreworICAgIGlmIChpbmRleCA+PSBtX2FuaW1hdGlvbnMuc2l6ZSgpKSB7Cisg
ICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBtX2FuaW1hdGlvbnMucmVtb3ZlKGluZGV4KTsK
K30KKwordm9pZCBXZWJLaXRBbmltYXRpb25MaXN0OjphcHBlbmQoUmVmUHRyPFdlYktpdEFuaW1h
dGlvbj4gYW5pbWF0aW9uKQoreworICAgIG1fYW5pbWF0aW9ucy5hcHBlbmQoYW5pbWF0aW9uKTsK
K30KKwordW5zaWduZWQgV2ViS2l0QW5pbWF0aW9uTGlzdDo6aW5zZXJ0QW5pbWF0aW9uKFJlZlB0
cjxXZWJLaXRBbmltYXRpb24+IGFuaW1hdGlvbiwgdW5zaWduZWQgaW5kZXgpCit7CisgICAgaWYg
KCFhbmltYXRpb24pIHsKKyAgICAgICAgcmV0dXJuIDA7CisgICAgfQorCisgICAgaWYgKGluZGV4
ID4gbV9hbmltYXRpb25zLnNpemUoKSkgeworICAgICAgICByZXR1cm4gMDsKKyAgICB9CisKKyAg
ICBtX2FuaW1hdGlvbnMuaW5zZXJ0KGluZGV4LCBhbmltYXRpb24pOworICAgIHJldHVybiBpbmRl
eDsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL2FuaW1hdGlvbi9XZWJLaXRBbmltYXRpb25MaXN0LmggYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL2FuaW1hdGlvbi9XZWJLaXRBbmltYXRpb25MaXN0LmgKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMC4uYjgyZTM4YQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvYW5pbWF0aW9uL1dlYktpdEFuaW1hdGlvbkxpc3QuaApAQCAtMCwwICsxLDYxIEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENP
TVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09N
UFVURVIsIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VS
RU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4gCisgKi8KKworI2lmbmRlZiBXZWJLaXRBbmltYXRpb25MaXN0X2gKKyNkZWZpbmUgV2ViS2l0
QW5pbWF0aW9uTGlzdF9oCisKKyNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgorI2luY2x1ZGUg
PHd0Zi9SZWZDb3VudGVkLmg+CisjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0
Zi9WZWN0b3IuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworICAKK2NsYXNzIFdlYktpdEFuaW1h
dGlvbjsKKworY2xhc3MgV2ViS2l0QW5pbWF0aW9uTGlzdCA6IHB1YmxpYyBSZWZDb3VudGVkPFdl
YktpdEFuaW1hdGlvbkxpc3Q+IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxXZWJL
aXRBbmltYXRpb25MaXN0PiBjcmVhdGUoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVm
KG5ldyBXZWJLaXRBbmltYXRpb25MaXN0KCkpOworICAgIH0KKyAgICB+V2ViS2l0QW5pbWF0aW9u
TGlzdCgpOworCisgICAgdW5zaWduZWQgbGVuZ3RoKCkgY29uc3Q7CisgICAgV2ViS2l0QW5pbWF0
aW9uKiBpdGVtKHVuc2lnbmVkIGluZGV4KTsKKworICAgIHVuc2lnbmVkIGluc2VydEFuaW1hdGlv
bihSZWZQdHI8V2ViS2l0QW5pbWF0aW9uPiwgdW5zaWduZWQgaW5kZXgpOworICAgIHZvaWQgZGVs
ZXRlQW5pbWF0aW9uKHVuc2lnbmVkIGluZGV4KTsKKyAgICB2b2lkIGFwcGVuZChSZWZQdHI8V2Vi
S2l0QW5pbWF0aW9uPik7CisKK3ByaXZhdGU6CisgICAgV2ViS2l0QW5pbWF0aW9uTGlzdCgpOwor
CisgICAgVmVjdG9yPFJlZlB0cjxXZWJLaXRBbmltYXRpb24+ID4gbV9hbmltYXRpb25zOworfTsK
KworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gV2ViS2l0QW5pbWF0aW9uTGlz
dF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9XZWJLaXRBbmlt
YXRpb25MaXN0LmlkbCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL1dlYktpdEFuaW1h
dGlvbkxpc3QuaWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjRjMzc2ZTYK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9XZWJLaXRB
bmltYXRpb25MaXN0LmlkbApAQCAtMCwwICsxLDM2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDExIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBB
TkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKKyAqIENPTlRS
SUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworbW9kdWxlIGh0bWwg
eworCisgICAgaW50ZXJmYWNlIFsKKyAgICAgICAgQ3VzdG9tTWFya0Z1bmN0aW9uLAorICAgICAg
ICBIYXNJbmRleEdldHRlcgorICAgIF0gV2ViS2l0QW5pbWF0aW9uTGlzdCB7CisgICAgICAgIHJl
YWRvbmx5IGF0dHJpYnV0ZSB1bnNpZ25lZCBsb25nIGxlbmd0aDsKKyAgICAgICAgV2ViS2l0QW5p
bWF0aW9uIGl0ZW0oaW4gdW5zaWduZWQgbG9uZyBpbmRleCk7CisgICAgfTsKKworfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNwcAppbmRleCBiMjE5OWQwLi5kODkxNWU3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNwcApAQCAtNTcsNiAr
NTcsNyBAQAogI2luY2x1ZGUgIlJlbmRlclRoZW1lLmgiCiAjaW5jbHVkZSAiUmVuZGVyVmlldy5o
IgogI2luY2x1ZGUgIlRyYW5zZm9ybVN0YXRlLmgiCisjaW5jbHVkZSAiV2ViS2l0QW5pbWF0aW9u
TGlzdC5oIgogI2luY2x1ZGUgImh0bWxlZGl0aW5nLmgiCiAjaW5jbHVkZSA8YWxnb3JpdGhtPgog
I2luY2x1ZGUgPHN0ZGlvLmg+CkBAIC0yNTg1LDYgKzI1ODYsMTQgQEAgQW5pbWF0aW9uQ29udHJv
bGxlciogUmVuZGVyT2JqZWN0OjphbmltYXRpb24oKSBjb25zdAogICAgIHJldHVybiBmcmFtZSgp
LT5hbmltYXRpb24oKTsKIH0KIAorUGFzc1JlZlB0cjxXZWJLaXRBbmltYXRpb25MaXN0PiBSZW5k
ZXJPYmplY3Q6OmFuaW1hdGlvbnMoKQoreworICAgIEFuaW1hdGlvbkNvbnRyb2xsZXIqIGFuaW1D
b250cm9sbGVyID0gYW5pbWF0aW9uKCk7CisgICAgaWYgKCFhbmltQ29udHJvbGxlcikKKyAgICAg
ICAgcmV0dXJuIDA7CisgICAgcmV0dXJuIGFuaW1Db250cm9sbGVyLT5hbmltYXRpb25zRm9yUmVu
ZGVyZXIodGhpcyk7Cit9CisKIHZvaWQgUmVuZGVyT2JqZWN0OjppbWFnZUNoYW5nZWQoQ2FjaGVk
SW1hZ2UqIGltYWdlLCBjb25zdCBJbnRSZWN0KiByZWN0KQogewogICAgIGltYWdlQ2hhbmdlZChz
dGF0aWNfY2FzdDxXcmFwcGVkSW1hZ2VQdHI+KGltYWdlKSwgcmVjdCk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmggYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmgKaW5kZXggMGI0NGZmYS4uMThlZjdjOCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuaApAQCAtNTksNiArNTksNyBAQCBjbGFzcyBS
ZW5kZXJMYXllcjsKIGNsYXNzIFJlbmRlclRoZW1lOwogY2xhc3MgVHJhbnNmb3JtU3RhdGU7CiBj
bGFzcyBWaXNpYmxlUG9zaXRpb247CitjbGFzcyBXZWJLaXRBbmltYXRpb25MaXN0OwogI2lmIEVO
QUJMRShTVkcpCiBjbGFzcyBSZW5kZXJTVkdSZXNvdXJjZUNvbnRhaW5lcjsKICNlbmRpZgpAQCAt
NzUwLDYgKzc1MSw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHJlbW92ZSgpIHsgaWYgKHBhcmVudCgp
KSBwYXJlbnQoKS0+cmVtb3ZlQ2hpbGQodGhpcyk7IH0KIAogICAgIEFuaW1hdGlvbkNvbnRyb2xs
ZXIqIGFuaW1hdGlvbigpIGNvbnN0OworICAgIFBhc3NSZWZQdHI8V2ViS2l0QW5pbWF0aW9uTGlz
dD4gYW5pbWF0aW9ucygpOwogCiAgICAgYm9vbCB2aXNpYmxlVG9IaXRUZXN0aW5nKCkgY29uc3Qg
eyByZXR1cm4gc3R5bGUoKS0+dmlzaWJpbGl0eSgpID09IFZJU0lCTEUgJiYgc3R5bGUoKS0+cG9p
bnRlckV2ZW50cygpICE9IFBFX05PTkU7IH0KIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>85255</attachid>
            <date>2011-03-09 16:17:47 -0800</date>
            <delta_ts>2011-04-06 10:46:43 -0700</delta_ts>
            <desc>Step 1 Patch</desc>
            <filename>animation-api-step-1.diff</filename>
            <type>text/plain</type>
            <size>88016</size>
            <attacher name="Dean Jackson">dino</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAxYzM3NmMzLi45ZjMyMzEzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjQgQEAKKzIwMTEtMDMt
MDkgIERlYW4gSmFja3NvbiAgPGRpbm9AYXBwbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD01NDE1MQorICAgICAgICBJbXBsZW1lbnQgYW4gQVBJIHRvIHBsYXkvcGF1c2Uv
c2NydWIgYW5pbWF0aW9ucworICAgICAgICAKKyAgICAgICAgVGhpcyBpcyBQYXJ0IDEuIEFkZHMg
dGhlIG5ldyBXZWJLaXRBbmltYXRpb24gYW5kIFdlYktpdEFuaW1hdGlvbkxpc3QKKyAgICAgICAg
QVBJcywgZXhwb3NlZCB2aWEgRWxlbWVudC5nZXRXZWJLaXRBbmltYXRpb25zKCkuIFRoaXMgZmly
c3QgcGFzcworICAgICAgICBpcyByZWFkLW9ubHkuIE9uZSBuZXcgbGF5b3V0IHRlc3QgdGhhdCBl
eGFtaW5lcyBhbmltYXRpb24KKyAgICAgICAgcHJvcGVydGllcy4gVXBkYXRlIGV4aXN0aW5nIGxh
eW91dCB0ZXN0cyBmb3IgdGhlIG5ldyBpbnRlcmZhY2VzCisgICAgICAgIG9uIFdpbmRvdy4KKwor
ICAgICAgICAqIGFuaW1hdGlvbnMvYW5pbWF0aW9uLWFwaS0xLWV4cGVjdGVkLnR4dDogQWRkZWQu
CisgICAgICAgICogYW5pbWF0aW9ucy9hbmltYXRpb24tYXBpLTEuaHRtbDogQWRkZWQuCisgICAg
ICAgICogZmFzdC9kb20vV2luZG93L3dpbmRvdy1wcm9wZXJ0aWVzLWV4cGVjdGVkLnR4dDoKKyAg
ICAgICAgKiBmYXN0L2RvbS9XaW5kb3cvd2luZG93LXByb3BlcnR5LWRlc2NyaXB0b3JzLWV4cGVj
dGVkLnR4dDoKKyAgICAgICAgKiBmYXN0L2RvbS9wcm90b3R5cGUtaW5oZXJpdGFuY2UtMi1leHBl
Y3RlZC50eHQ6CisgICAgICAgICogZmFzdC9kb20vcHJvdG90eXBlLWluaGVyaXRhbmNlLWV4cGVj
dGVkLnR4dDoKKyAgICAgICAgKiBmYXN0L2pzL2dsb2JhbC1jb25zdHJ1Y3RvcnMtZXhwZWN0ZWQu
dHh0OgorCiAyMDExLTAzLTA5ICBZdXJ5IFNlbWlraGF0c2t5ICA8eXVyeXNAY2hyb21pdW0ub3Jn
PgogCiAgICAgICAgIFJldmlld2VkIGJ5IFBhdmVsIEZlbGRtYW4uCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9hbmltYXRpb25zL2FuaW1hdGlvbi1hcGktMS1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9hbmltYXRpb25zL2FuaW1hdGlvbi1hcGktMS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTBhY2QyNgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2FuaW1hdGlvbnMvYW5pbWF0aW9uLWFwaS0xLWV4cGVjdGVkLnR4dApAQCAtMCwwICsx
LDc0IEBACitUaGlzIHRlc3RzIHRoZSBXZWJLaXRBbmltYXRpb24gaW50ZXJmYWNlLgorCitPbiBz
dWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dl
ZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyB3aW5kb3cuV2ViS2l0QW5pbWF0aW9uIGlz
IGRlZmluZWQuCitQQVNTIHdpbmRvdy5XZWJLaXRBbmltYXRpb25MaXN0IGlzIGRlZmluZWQuCisK
K1Rlc3QgYW4gYWxtb3N0LWRlZmF1bHQgYW5pbWF0aW9uCitQQVNTIGFfYW5pbXMubGVuZ3RoIGlz
IDEKK1BBU1MgYV9hbmltXzAgaXMgZGVmaW5lZC4KKworUEFTUyBhX2FuaW1fMC5uYW1lIGlzICd0
ZXN0MScKK1BBU1MgYV9hbmltXzAuZHVyYXRpb24gaXMgMQorUEFTUyBhX2FuaW1fMC5kZWxheSBp
cyAwCitQQVNTIGFfYW5pbV8wLml0ZXJhdGlvbkNvdW50IGlzIDEKK1BBU1MgYV9hbmltXzAucGF1
c2VkIGlzIGZhbHNlCitQQVNTIGFfYW5pbV8wLmVuZGVkIGlzIGZhbHNlCitQQVNTIGFfYW5pbV8w
LmRpcmVjdGlvbiBpcyB3aW5kb3cuV2ViS2l0QW5pbWF0aW9uLkRJUkVDVElPTl9OT1JNQUwKK1BB
U1MgYV9hbmltXzAuZmlsbE1vZGUgaXMgd2luZG93LldlYktpdEFuaW1hdGlvbi5GSUxMX05PTkUK
KworVGVzdCBhIHNwZWNpZmllZCBhbmltYXRpb24KK1BBU1MgYl9hbmltcy5sZW5ndGggaXMgMQor
UEFTUyBiX2FuaW1fMCBpcyBkZWZpbmVkLgorCitQQVNTIGJfYW5pbV8wLm5hbWUgaXMgJ3Rlc3Qx
JworUEFTUyBiX2FuaW1fMC5kdXJhdGlvbiBpcyAyCitQQVNTIGJfYW5pbV8wLmRlbGF5IGlzIDMK
K1BBU1MgYl9hbmltXzAuaXRlcmF0aW9uQ291bnQgaXMgNAorUEFTUyBiX2FuaW1fMC5wYXVzZWQg
aXMgZmFsc2UKK1BBU1MgYl9hbmltXzAuZW5kZWQgaXMgZmFsc2UKK1BBU1MgYl9hbmltXzAuZGly
ZWN0aW9uIGlzIHdpbmRvdy5XZWJLaXRBbmltYXRpb24uRElSRUNUSU9OX05PUk1BTAorUEFTUyBi
X2FuaW1fMC5maWxsTW9kZSBpcyB3aW5kb3cuV2ViS2l0QW5pbWF0aW9uLkZJTExfTk9ORQorCitU
ZXN0IG5lZ2F0aXZlIGRlbGF5LCBmaWxsIG1vZGUsIGRpcmVjdGlvbiBhbmQgaW5maW5pdGUgaXRl
cmF0aW9ucworUEFTUyBjX2FuaW1zLmxlbmd0aCBpcyAxCitQQVNTIGNfYW5pbV8wIGlzIGRlZmlu
ZWQuCisKK1BBU1MgY19hbmltXzAubmFtZSBpcyAndGVzdDInCitQQVNTIGNfYW5pbV8wLmR1cmF0
aW9uIGlzIDUKK1BBU1MgY19hbmltXzAuZGVsYXkgaXMgLTEKK1BBU1MgY19hbmltXzAuaXRlcmF0
aW9uQ291bnQgaXMgTnVtYmVyLlBPU0lUSVZFX0lORklOSVRZCitQQVNTIGNfYW5pbV8wLnBhdXNl
ZCBpcyBmYWxzZQorUEFTUyBjX2FuaW1fMC5lbmRlZCBpcyBmYWxzZQorUEFTUyBjX2FuaW1fMC5k
aXJlY3Rpb24gaXMgd2luZG93LldlYktpdEFuaW1hdGlvbi5ESVJFQ1RJT05fQUxURVJOQVRFCitQ
QVNTIGNfYW5pbV8wLmZpbGxNb2RlIGlzIHdpbmRvdy5XZWJLaXRBbmltYXRpb24uRklMTF9GT1JX
QVJEUworCitUZXN0IG11bHRpcGxlIGFuaW1hdGlvbnMKK1BBU1MgZF9hbmltcy5sZW5ndGggaXMg
MgorUEFTUyBkX2FuaW1fMCBpcyBkZWZpbmVkLgorCitQQVNTIGRfYW5pbV8wLm5hbWUgaXMgJ3Rl
c3QxJworUEFTUyBkX2FuaW1fMC5kdXJhdGlvbiBpcyAxCitQQVNTIGRfYW5pbV8wLmRlbGF5IGlz
IDAKK1BBU1MgZF9hbmltXzAuaXRlcmF0aW9uQ291bnQgaXMgMTAKK1BBU1MgZF9hbmltXzAucGF1
c2VkIGlzIGZhbHNlCitQQVNTIGRfYW5pbV8wLmVuZGVkIGlzIGZhbHNlCitQQVNTIGRfYW5pbV8w
LmRpcmVjdGlvbiBpcyB3aW5kb3cuV2ViS2l0QW5pbWF0aW9uLkRJUkVDVElPTl9OT1JNQUwKK1BB
U1MgZF9hbmltXzAuZmlsbE1vZGUgaXMgd2luZG93LldlYktpdEFuaW1hdGlvbi5GSUxMX0JBQ0tX
QVJEUworUEFTUyBkX2FuaW1fMSBpcyBkZWZpbmVkLgorCitQQVNTIGRfYW5pbV8xLm5hbWUgaXMg
J3Rlc3QyJworUEFTUyBkX2FuaW1fMS5kdXJhdGlvbiBpcyAyCitQQVNTIGRfYW5pbV8xLmRlbGF5
IGlzIDEKK1BBU1MgZF9hbmltXzEuaXRlcmF0aW9uQ291bnQgaXMgTnVtYmVyLlBPU0lUSVZFX0lO
RklOSVRZCitQQVNTIGRfYW5pbV8xLnBhdXNlZCBpcyBmYWxzZQorUEFTUyBkX2FuaW1fMS5lbmRl
ZCBpcyBmYWxzZQorUEFTUyBkX2FuaW1fMS5kaXJlY3Rpb24gaXMgd2luZG93LldlYktpdEFuaW1h
dGlvbi5ESVJFQ1RJT05fQUxURVJOQVRFCitQQVNTIGRfYW5pbV8xLmZpbGxNb2RlIGlzIHdpbmRv
dy5XZWJLaXRBbmltYXRpb24uRklMTF9CT1RICisKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlz
IHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9hbmltYXRp
b25zL2FuaW1hdGlvbi1hcGktMS5odG1sIGIvTGF5b3V0VGVzdHMvYW5pbWF0aW9ucy9hbmltYXRp
b24tYXBpLTEuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42YTY1N2Rm
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvYW5pbWF0aW9ucy9hbmltYXRpb24tYXBp
LTEuaHRtbApAQCAtMCwwICsxLDE3NSBAQAorPGh0bWw+Cis8aGVhZD4KKzxsaW5rIHJlbD0ic3R5
bGVzaGVldCIgaHJlZj0iLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiPgor
PHN0eWxlIHR5cGU9InRleHQvY3NzIiBtZWRpYT0ic2NyZWVuIj4KKyAgQC13ZWJraXQta2V5ZnJh
bWVzIHRlc3QxIHsKKyAgICBmcm9tIHsgbGVmdDogMTBweDsgfQorICAgIHRvIHsgbGVmdDogMjBw
eDsgfQorICB9CisgIEAtd2Via2l0LWtleWZyYW1lcyB0ZXN0MiB7CisgICAgMCUgeyBsZWZ0OiAx
MHB4OyB9CisgICAgNTAlIHsgbGVmdDogMzBweDsgfQorICAgIDEwMCUgeyBsZWZ0OiAyMHB4OyB9
CisgIH0KKyAgI2EgeworICAgIC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6IHRlc3QxOworICAgIC13
ZWJraXQtYW5pbWF0aW9uLWR1cmF0aW9uOiAxczsKKyAgfQorICAjYiB7CisgICAgLXdlYmtpdC1h
bmltYXRpb24tbmFtZTogdGVzdDE7CisgICAgLXdlYmtpdC1hbmltYXRpb24tZHVyYXRpb246IDJz
OworICAgIC13ZWJraXQtYW5pbWF0aW9uLWRlbGF5OiAzczsKKyAgICAtd2Via2l0LWFuaW1hdGlv
bi1pdGVyYXRpb24tY291bnQ6IDQ7CisgICAgLXdlYmtpdC1hbmltYXRpb24tZGlyZWN0aW9uOiBu
b3JtYWw7CisgICAgLXdlYmtpdC1hbmltYXRpb24tZmlsbC1tb2RlOiBub25lOworICB9CisgICNj
IHsKKyAgICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiB0ZXN0MjsKKyAgICAtd2Via2l0LWFuaW1h
dGlvbi1kdXJhdGlvbjogNXM7CisgICAgLXdlYmtpdC1hbmltYXRpb24tZGVsYXk6IC0xczsKKyAg
ICAtd2Via2l0LWFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IGluZmluaXRlOworICAgIC13ZWJr
aXQtYW5pbWF0aW9uLWRpcmVjdGlvbjogYWx0ZXJuYXRlOworICAgIC13ZWJraXQtYW5pbWF0aW9u
LWZpbGwtbW9kZTogZm9yd2FyZHM7CisgIH0KKyAgI2QgeworICAgIC13ZWJraXQtYW5pbWF0aW9u
LW5hbWU6IHRlc3QxLCB0ZXN0MjsKKyAgICAtd2Via2l0LWFuaW1hdGlvbi1kdXJhdGlvbjogMXMs
IDJzOworICAgIC13ZWJraXQtYW5pbWF0aW9uLWRlbGF5OiAwcywgMXM7CisgICAgLXdlYmtpdC1h
bmltYXRpb24taXRlcmF0aW9uLWNvdW50OiAxMCwgaW5maW5pdGU7CisgICAgLXdlYmtpdC1hbmlt
YXRpb24tZGlyZWN0aW9uOiBub3JtYWwsIGFsdGVybmF0ZTsKKyAgICAtd2Via2l0LWFuaW1hdGlv
bi1maWxsLW1vZGU6IGJhY2t3YXJkcywgYm90aDsKKyAgfQorPC9zdHlsZT4KKzxzY3JpcHQgc3Jj
PSIuLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+
Cis8Ym9keT4KKzxkaXYgaWQ9ImEiPjwvZGl2PgorPGRpdiBpZD0iYiI+PC9kaXY+Cis8ZGl2IGlk
PSJjIj48L2Rpdj4KKzxkaXYgaWQ9ImQiPjwvZGl2PgorPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+
Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxzY3JpcHQ+CisKK2Rlc2NyaXB0aW9uKCJUaGlz
IHRlc3RzIHRoZSBXZWJLaXRBbmltYXRpb24gaW50ZXJmYWNlLiIpOworCitzaG91bGRCZURlZmlu
ZWQoIndpbmRvdy5XZWJLaXRBbmltYXRpb24iKTsKK3Nob3VsZEJlRGVmaW5lZCgid2luZG93Lldl
YktpdEFuaW1hdGlvbkxpc3QiKTsKKworLyogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKiogKi8KKworZGVidWcoIiIpOworZGVidWcoIlRlc3QgYW4gYWxtb3N0
LWRlZmF1bHQgYW5pbWF0aW9uIik7CisKK3ZhciBhID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
ImEiKTsKK3ZhciBhX2FuaW1zID0gYS53ZWJraXRHZXRBbmltYXRpb25zKCk7CisKK3Nob3VsZEJl
KCJhX2FuaW1zLmxlbmd0aCIsICIxIik7CisKK3ZhciBhX2FuaW1fMCA9IGFfYW5pbXNbMF07CisK
K3Nob3VsZEJlRGVmaW5lZCgiYV9hbmltXzAiKTsKK2RlYnVnKCIiKTsKKworc2hvdWxkQmUoImFf
YW5pbV8wLm5hbWUiLCAiJ3Rlc3QxJyIpOworc2hvdWxkQmUoImFfYW5pbV8wLmR1cmF0aW9uIiwg
IjEiKTsKK3Nob3VsZEJlKCJhX2FuaW1fMC5kZWxheSIsICIwIik7CitzaG91bGRCZSgiYV9hbmlt
XzAuaXRlcmF0aW9uQ291bnQiLCAiMSIpOworc2hvdWxkQmUoImFfYW5pbV8wLnBhdXNlZCIsICJm
YWxzZSIpOworc2hvdWxkQmUoImFfYW5pbV8wLmVuZGVkIiwgImZhbHNlIik7CitzaG91bGRCZSgi
YV9hbmltXzAuZGlyZWN0aW9uIiwgIndpbmRvdy5XZWJLaXRBbmltYXRpb24uRElSRUNUSU9OX05P
Uk1BTCIpOworc2hvdWxkQmUoImFfYW5pbV8wLmZpbGxNb2RlIiwgIndpbmRvdy5XZWJLaXRBbmlt
YXRpb24uRklMTF9OT05FIik7CisKKy8qICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqICovCisKK2RlYnVnKCIiKTsKK2RlYnVnKCJUZXN0IGEgc3BlY2lmaWVk
IGFuaW1hdGlvbiIpOworCit2YXIgYiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJiIik7Cit2
YXIgYl9hbmltcyA9IGIud2Via2l0R2V0QW5pbWF0aW9ucygpOworCitzaG91bGRCZSgiYl9hbmlt
cy5sZW5ndGgiLCAiMSIpOworCit2YXIgYl9hbmltXzAgPSBiX2FuaW1zWzBdOworCitzaG91bGRC
ZURlZmluZWQoImJfYW5pbV8wIik7CitkZWJ1ZygiIik7CisKK3Nob3VsZEJlKCJiX2FuaW1fMC5u
YW1lIiwgIid0ZXN0MSciKTsKK3Nob3VsZEJlKCJiX2FuaW1fMC5kdXJhdGlvbiIsICIyIik7Citz
aG91bGRCZSgiYl9hbmltXzAuZGVsYXkiLCAiMyIpOworc2hvdWxkQmUoImJfYW5pbV8wLml0ZXJh
dGlvbkNvdW50IiwgIjQiKTsKK3Nob3VsZEJlKCJiX2FuaW1fMC5wYXVzZWQiLCAiZmFsc2UiKTsK
K3Nob3VsZEJlKCJiX2FuaW1fMC5lbmRlZCIsICJmYWxzZSIpOworc2hvdWxkQmUoImJfYW5pbV8w
LmRpcmVjdGlvbiIsICJ3aW5kb3cuV2ViS2l0QW5pbWF0aW9uLkRJUkVDVElPTl9OT1JNQUwiKTsK
K3Nob3VsZEJlKCJiX2FuaW1fMC5maWxsTW9kZSIsICJ3aW5kb3cuV2ViS2l0QW5pbWF0aW9uLkZJ
TExfTk9ORSIpOworCisvKiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKiAqLworCitkZWJ1ZygiIik7CitkZWJ1ZygiVGVzdCBuZWdhdGl2ZSBkZWxheSwgZmls
bCBtb2RlLCBkaXJlY3Rpb24gYW5kIGluZmluaXRlIGl0ZXJhdGlvbnMiKTsKKwordmFyIGMgPSBk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYyIpOwordmFyIGNfYW5pbXMgPSBjLndlYmtpdEdldEFu
aW1hdGlvbnMoKTsKKworc2hvdWxkQmUoImNfYW5pbXMubGVuZ3RoIiwgIjEiKTsKKwordmFyIGNf
YW5pbV8wID0gY19hbmltc1swXTsKKworc2hvdWxkQmVEZWZpbmVkKCJjX2FuaW1fMCIpOworZGVi
dWcoIiIpOworCitzaG91bGRCZSgiY19hbmltXzAubmFtZSIsICIndGVzdDInIik7CitzaG91bGRC
ZSgiY19hbmltXzAuZHVyYXRpb24iLCAiNSIpOworc2hvdWxkQmUoImNfYW5pbV8wLmRlbGF5Iiwg
Ii0xIik7CitzaG91bGRCZSgiY19hbmltXzAuaXRlcmF0aW9uQ291bnQiLCAiTnVtYmVyLlBPU0lU
SVZFX0lORklOSVRZIik7CitzaG91bGRCZSgiY19hbmltXzAucGF1c2VkIiwgImZhbHNlIik7Citz
aG91bGRCZSgiY19hbmltXzAuZW5kZWQiLCAiZmFsc2UiKTsKK3Nob3VsZEJlKCJjX2FuaW1fMC5k
aXJlY3Rpb24iLCAid2luZG93LldlYktpdEFuaW1hdGlvbi5ESVJFQ1RJT05fQUxURVJOQVRFIik7
CitzaG91bGRCZSgiY19hbmltXzAuZmlsbE1vZGUiLCAid2luZG93LldlYktpdEFuaW1hdGlvbi5G
SUxMX0ZPUldBUkRTIik7CisKKy8qICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqICovCisKK2RlYnVnKCIiKTsKK2RlYnVnKCJUZXN0IG11bHRpcGxlIGFuaW1h
dGlvbnMiKTsKKwordmFyIGQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZCIpOwordmFyIGRf
YW5pbXMgPSBkLndlYmtpdEdldEFuaW1hdGlvbnMoKTsKKworc2hvdWxkQmUoImRfYW5pbXMubGVu
Z3RoIiwgIjIiKTsKKwordmFyIGRfYW5pbV8wID0gZF9hbmltc1swXTsKKworc2hvdWxkQmVEZWZp
bmVkKCJkX2FuaW1fMCIpOworZGVidWcoIiIpOworCitzaG91bGRCZSgiZF9hbmltXzAubmFtZSIs
ICIndGVzdDEnIik7CitzaG91bGRCZSgiZF9hbmltXzAuZHVyYXRpb24iLCAiMSIpOworc2hvdWxk
QmUoImRfYW5pbV8wLmRlbGF5IiwgIjAiKTsKK3Nob3VsZEJlKCJkX2FuaW1fMC5pdGVyYXRpb25D
b3VudCIsICIxMCIpOworc2hvdWxkQmUoImRfYW5pbV8wLnBhdXNlZCIsICJmYWxzZSIpOworc2hv
dWxkQmUoImRfYW5pbV8wLmVuZGVkIiwgImZhbHNlIik7CitzaG91bGRCZSgiZF9hbmltXzAuZGly
ZWN0aW9uIiwgIndpbmRvdy5XZWJLaXRBbmltYXRpb24uRElSRUNUSU9OX05PUk1BTCIpOworc2hv
dWxkQmUoImRfYW5pbV8wLmZpbGxNb2RlIiwgIndpbmRvdy5XZWJLaXRBbmltYXRpb24uRklMTF9C
QUNLV0FSRFMiKTsKKwordmFyIGRfYW5pbV8xID0gZF9hbmltc1sxXTsKKworc2hvdWxkQmVEZWZp
bmVkKCJkX2FuaW1fMSIpOworZGVidWcoIiIpOworCitzaG91bGRCZSgiZF9hbmltXzEubmFtZSIs
ICIndGVzdDInIik7CitzaG91bGRCZSgiZF9hbmltXzEuZHVyYXRpb24iLCAiMiIpOworc2hvdWxk
QmUoImRfYW5pbV8xLmRlbGF5IiwgIjEiKTsKK3Nob3VsZEJlKCJkX2FuaW1fMS5pdGVyYXRpb25D
b3VudCIsICJOdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFkiKTsKK3Nob3VsZEJlKCJkX2FuaW1fMS5w
YXVzZWQiLCAiZmFsc2UiKTsKK3Nob3VsZEJlKCJkX2FuaW1fMS5lbmRlZCIsICJmYWxzZSIpOwor
c2hvdWxkQmUoImRfYW5pbV8xLmRpcmVjdGlvbiIsICJ3aW5kb3cuV2ViS2l0QW5pbWF0aW9uLkRJ
UkVDVElPTl9BTFRFUk5BVEUiKTsKK3Nob3VsZEJlKCJkX2FuaW1fMS5maWxsTW9kZSIsICJ3aW5k
b3cuV2ViS2l0QW5pbWF0aW9uLkZJTExfQk9USCIpOworCitkZWJ1ZygiIik7CitzdWNjZXNzZnVs
bHlQYXJzZWQgPSB0cnVlOworCis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9mYXN0L2pzL3Jl
c291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L3dpbmRvdy1wcm9wZXJ0aWVzLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy93aW5kb3ctcHJvcGVydGll
cy1leHBlY3RlZC50eHQKaW5kZXggNjU4MzFjNi4uZDZmNzc0OCAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvZmFzdC9kb20vV2luZG93L3dpbmRvdy1wcm9wZXJ0aWVzLWV4cGVjdGVkLnR4dAorKysg
Yi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvd2luZG93LXByb3BlcnRpZXMtZXhwZWN0ZWQu
dHh0CkBAIC0xMjMsNiArMTIzLDcgQEAgd2luZG93LkF1ZGlvLnByb3RvdHlwZS5zZXRBdHRyaWJ1
dGUgW2Z1bmN0aW9uXQogd2luZG93LkF1ZGlvLnByb3RvdHlwZS5zZXRBdHRyaWJ1dGVOUyBbZnVu
Y3Rpb25dCiB3aW5kb3cuQXVkaW8ucHJvdG90eXBlLnNldEF0dHJpYnV0ZU5vZGUgW2Z1bmN0aW9u
XQogd2luZG93LkF1ZGlvLnByb3RvdHlwZS5zZXRBdHRyaWJ1dGVOb2RlTlMgW2Z1bmN0aW9uXQor
d2luZG93LkF1ZGlvLnByb3RvdHlwZS53ZWJraXRHZXRBbmltYXRpb25zIFtmdW5jdGlvbl0KIHdp
bmRvdy5BdWRpby5wcm90b3R5cGUud2Via2l0TWF0Y2hlc1NlbGVjdG9yIFtmdW5jdGlvbl0KIHdp
bmRvdy5BdWRpby5wcm90b3R5cGUud2Via2l0UmVxdWVzdEZ1bGxTY3JlZW4gW2Z1bmN0aW9uXQog
d2luZG93LkJlZm9yZUxvYWRFdmVudCBbb2JqZWN0IEJlZm9yZUxvYWRFdmVudENvbnN0cnVjdG9y
XQpAQCAtNzg0LDYgKzc4NSw3IEBAIHdpbmRvdy5FbGVtZW50LnByb3RvdHlwZS5zZXRBdHRyaWJ1
dGUgW2Z1bmN0aW9uXQogd2luZG93LkVsZW1lbnQucHJvdG90eXBlLnNldEF0dHJpYnV0ZU5TIFtm
dW5jdGlvbl0KIHdpbmRvdy5FbGVtZW50LnByb3RvdHlwZS5zZXRBdHRyaWJ1dGVOb2RlIFtmdW5j
dGlvbl0KIHdpbmRvdy5FbGVtZW50LnByb3RvdHlwZS5zZXRBdHRyaWJ1dGVOb2RlTlMgW2Z1bmN0
aW9uXQord2luZG93LkVsZW1lbnQucHJvdG90eXBlLndlYmtpdEdldEFuaW1hdGlvbnMgW2Z1bmN0
aW9uXQogd2luZG93LkVsZW1lbnQucHJvdG90eXBlLndlYmtpdE1hdGNoZXNTZWxlY3RvciBbZnVu
Y3Rpb25dCiB3aW5kb3cuRWxlbWVudC5wcm90b3R5cGUud2Via2l0UmVxdWVzdEZ1bGxTY3JlZW4g
W2Z1bmN0aW9uXQogd2luZG93LkVudGl0eSBbb2JqZWN0IEVudGl0eUNvbnN0cnVjdG9yXQpAQCAt
MTk2Myw4ICsxOTY1LDI3IEBAIHdpbmRvdy5UeXBlRXJyb3IgW2Z1bmN0aW9uXQogd2luZG93LlVJ
RXZlbnQgW29iamVjdCBVSUV2ZW50Q29uc3RydWN0b3JdCiB3aW5kb3cuVUlFdmVudC5wcm90b3R5
cGUgW3ByaW50ZWQgYWJvdmUgYXMgd2luZG93LkV2ZW50LnByb3RvdHlwZV0KIHdpbmRvdy5VUklF
cnJvciBbZnVuY3Rpb25dCit3aW5kb3cuV2ViS2l0QW5pbWF0aW9uIFtvYmplY3QgV2ViS2l0QW5p
bWF0aW9uQ29uc3RydWN0b3JdCit3aW5kb3cuV2ViS2l0QW5pbWF0aW9uLkRJUkVDVElPTl9BTFRF
Uk5BVEUgW251bWJlcl0KK3dpbmRvdy5XZWJLaXRBbmltYXRpb24uRElSRUNUSU9OX05PUk1BTCBb
bnVtYmVyXQord2luZG93LldlYktpdEFuaW1hdGlvbi5GSUxMX0JBQ0tXQVJEUyBbbnVtYmVyXQor
d2luZG93LldlYktpdEFuaW1hdGlvbi5GSUxMX0JPVEggW251bWJlcl0KK3dpbmRvdy5XZWJLaXRB
bmltYXRpb24uRklMTF9GT1JXQVJEUyBbbnVtYmVyXQord2luZG93LldlYktpdEFuaW1hdGlvbi5G
SUxMX05PTkUgW251bWJlcl0KK3dpbmRvdy5XZWJLaXRBbmltYXRpb24ucHJvdG90eXBlIFtvYmpl
Y3QgV2ViS2l0QW5pbWF0aW9uUHJvdG90eXBlXQord2luZG93LldlYktpdEFuaW1hdGlvbi5wcm90
b3R5cGUuRElSRUNUSU9OX0FMVEVSTkFURSBbbnVtYmVyXQord2luZG93LldlYktpdEFuaW1hdGlv
bi5wcm90b3R5cGUuRElSRUNUSU9OX05PUk1BTCBbbnVtYmVyXQord2luZG93LldlYktpdEFuaW1h
dGlvbi5wcm90b3R5cGUuRklMTF9CQUNLV0FSRFMgW251bWJlcl0KK3dpbmRvdy5XZWJLaXRBbmlt
YXRpb24ucHJvdG90eXBlLkZJTExfQk9USCBbbnVtYmVyXQord2luZG93LldlYktpdEFuaW1hdGlv
bi5wcm90b3R5cGUuRklMTF9GT1JXQVJEUyBbbnVtYmVyXQord2luZG93LldlYktpdEFuaW1hdGlv
bi5wcm90b3R5cGUuRklMTF9OT05FIFtudW1iZXJdCit3aW5kb3cuV2ViS2l0QW5pbWF0aW9uLnBy
b3RvdHlwZS5wYXVzZSBbZnVuY3Rpb25dCit3aW5kb3cuV2ViS2l0QW5pbWF0aW9uLnByb3RvdHlw
ZS5wbGF5IFtmdW5jdGlvbl0KIHdpbmRvdy5XZWJLaXRBbmltYXRpb25FdmVudCBbb2JqZWN0IFdl
YktpdEFuaW1hdGlvbkV2ZW50Q29uc3RydWN0b3JdCiB3aW5kb3cuV2ViS2l0QW5pbWF0aW9uRXZl
bnQucHJvdG90eXBlIFtwcmludGVkIGFib3ZlIGFzIHdpbmRvdy5FdmVudC5wcm90b3R5cGVdCit3
aW5kb3cuV2ViS2l0QW5pbWF0aW9uTGlzdCBbb2JqZWN0IFdlYktpdEFuaW1hdGlvbkxpc3RDb25z
dHJ1Y3Rvcl0KK3dpbmRvdy5XZWJLaXRBbmltYXRpb25MaXN0LnByb3RvdHlwZSBbb2JqZWN0IFdl
YktpdEFuaW1hdGlvbkxpc3RQcm90b3R5cGVdCit3aW5kb3cuV2ViS2l0QW5pbWF0aW9uTGlzdC5w
cm90b3R5cGUuaXRlbSBbZnVuY3Rpb25dCiB3aW5kb3cuV2ViS2l0Q1NTS2V5ZnJhbWVSdWxlIFtv
YmplY3QgV2ViS2l0Q1NTS2V5ZnJhbWVSdWxlQ29uc3RydWN0b3JdCiB3aW5kb3cuV2ViS2l0Q1NT
S2V5ZnJhbWVSdWxlLnByb3RvdHlwZSBbcHJpbnRlZCBhYm92ZSBhcyB3aW5kb3cuQ1NTUnVsZS5w
cm90b3R5cGVdCiB3aW5kb3cuV2ViS2l0Q1NTS2V5ZnJhbWVzUnVsZSBbb2JqZWN0IFdlYktpdENT
U0tleWZyYW1lc1J1bGVDb25zdHJ1Y3Rvcl0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qv
ZG9tL1dpbmRvdy93aW5kb3ctcHJvcGVydHktZGVzY3JpcHRvcnMtZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L3dpbmRvdy1wcm9wZXJ0eS1kZXNjcmlwdG9ycy1leHBl
Y3RlZC50eHQKaW5kZXggNjUxNDRmNi4uNmNlNzQ5OSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
ZmFzdC9kb20vV2luZG93L3dpbmRvdy1wcm9wZXJ0eS1kZXNjcmlwdG9ycy1leHBlY3RlZC50eHQK
KysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L3dpbmRvdy1wcm9wZXJ0eS1kZXNjcmlw
dG9ycy1leHBlY3RlZC50eHQKQEAgLTMxMCw3ICszMTAsOSBAQCBQQVNTIHR5cGVvZiBPYmplY3Qu
Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHdpbmRvdywgJ1RpbWVSYW5nZXMnKSBpcyAnb2JqZWN0
JwogUEFTUyB0eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih3aW5kb3csICdU
eXBlRXJyb3InKSBpcyAnb2JqZWN0JwogUEFTUyB0eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5
RGVzY3JpcHRvcih3aW5kb3csICdVSUV2ZW50JykgaXMgJ29iamVjdCcKIFBBU1MgdHlwZW9mIE9i
amVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iod2luZG93LCAnVVJJRXJyb3InKSBpcyAnb2Jq
ZWN0JworUEFTUyB0eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih3aW5kb3cs
ICdXZWJLaXRBbmltYXRpb24nKSBpcyAnb2JqZWN0JwogUEFTUyB0eXBlb2YgT2JqZWN0LmdldE93
blByb3BlcnR5RGVzY3JpcHRvcih3aW5kb3csICdXZWJLaXRBbmltYXRpb25FdmVudCcpIGlzICdv
YmplY3QnCitQQVNTIHR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHdpbmRv
dywgJ1dlYktpdEFuaW1hdGlvbkxpc3QnKSBpcyAnb2JqZWN0JwogUEFTUyB0eXBlb2YgT2JqZWN0
LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih3aW5kb3csICdXZWJLaXRDU1NLZXlmcmFtZVJ1bGUn
KSBpcyAnb2JqZWN0JwogUEFTUyB0eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRv
cih3aW5kb3csICdXZWJLaXRDU1NLZXlmcmFtZXNSdWxlJykgaXMgJ29iamVjdCcKIFBBU1MgdHlw
ZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iod2luZG93LCAnV2ViS2l0Q1NTTWF0
cml4JykgaXMgJ29iamVjdCcKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL3Byb3Rv
dHlwZS1pbmhlcml0YW5jZS0yLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL3By
b3RvdHlwZS1pbmhlcml0YW5jZS0yLWV4cGVjdGVkLnR4dAppbmRleCA0ODQ2MGYxLi40MWViMDE1
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9wcm90b3R5cGUtaW5oZXJpdGFuY2Ut
Mi1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vcHJvdG90eXBlLWluaGVy
aXRhbmNlLTItZXhwZWN0ZWQudHh0CkBAIC00MjgsNiArNDI4LDggQEAgTmV2ZXIgZm91bmQgU1ZH
Vmlld0VsZW1lbnQKIE5ldmVyIGZvdW5kIFNoYXJlZFdvcmtlcgogTmV2ZXIgZm91bmQgU3R5bGVT
aGVldAogTmV2ZXIgZm91bmQgVGV4dE1ldHJpY3MKK05ldmVyIGZvdW5kIFdlYktpdEFuaW1hdGlv
bgorTmV2ZXIgZm91bmQgV2ViS2l0QW5pbWF0aW9uTGlzdAogTmV2ZXIgZm91bmQgV2ViS2l0Q1NT
TWF0cml4CiBOZXZlciBmb3VuZCBXZWJLaXRDU1NUcmFuc2Zvcm1WYWx1ZQogTmV2ZXIgZm91bmQg
V2ViS2l0UG9pbnQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL3Byb3RvdHlwZS1p
bmhlcml0YW5jZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9wcm90b3R5cGUt
aW5oZXJpdGFuY2UtZXhwZWN0ZWQudHh0CmluZGV4IDc4YTAwYWYuLmNiYjU3NzQgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL3Byb3RvdHlwZS1pbmhlcml0YW5jZS1leHBlY3RlZC50
eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vcHJvdG90eXBlLWluaGVyaXRhbmNlLWV4cGVj
dGVkLnR4dApAQCAtNjEzLDggKzYxMywxMiBAQCBQQVNTIGlubmVyLlVJRXZlbnQuaXNJbm5lciBp
cyB0cnVlCiBQQVNTIGlubmVyLlVJRXZlbnQuY29uc3RydWN0b3IuaXNJbm5lciBpcyB0cnVlCiBQ
QVNTIGlubmVyLlVSSUVycm9yLmlzSW5uZXIgaXMgdHJ1ZQogUEFTUyBpbm5lci5VUklFcnJvci5j
b25zdHJ1Y3Rvci5pc0lubmVyIGlzIHRydWUKK1BBU1MgaW5uZXIuV2ViS2l0QW5pbWF0aW9uLmlz
SW5uZXIgaXMgdHJ1ZQorUEFTUyBpbm5lci5XZWJLaXRBbmltYXRpb24uY29uc3RydWN0b3IuaXNJ
bm5lciBpcyB0cnVlCiBQQVNTIGlubmVyLldlYktpdEFuaW1hdGlvbkV2ZW50LmlzSW5uZXIgaXMg
dHJ1ZQogUEFTUyBpbm5lci5XZWJLaXRBbmltYXRpb25FdmVudC5jb25zdHJ1Y3Rvci5pc0lubmVy
IGlzIHRydWUKK1BBU1MgaW5uZXIuV2ViS2l0QW5pbWF0aW9uTGlzdC5pc0lubmVyIGlzIHRydWUK
K1BBU1MgaW5uZXIuV2ViS2l0QW5pbWF0aW9uTGlzdC5jb25zdHJ1Y3Rvci5pc0lubmVyIGlzIHRy
dWUKIFBBU1MgaW5uZXIuV2ViS2l0Q1NTS2V5ZnJhbWVSdWxlLmlzSW5uZXIgaXMgdHJ1ZQogUEFT
UyBpbm5lci5XZWJLaXRDU1NLZXlmcmFtZVJ1bGUuY29uc3RydWN0b3IuaXNJbm5lciBpcyB0cnVl
CiBQQVNTIGlubmVyLldlYktpdENTU0tleWZyYW1lc1J1bGUuaXNJbm5lciBpcyB0cnVlCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2pzL2dsb2JhbC1jb25zdHJ1Y3RvcnMtZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9qcy9nbG9iYWwtY29uc3RydWN0b3JzLWV4cGVjdGVkLnR4
dAppbmRleCBlOGRhZmY5Li41MjdmNzRkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2pz
L2dsb2JhbC1jb25zdHJ1Y3RvcnMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2Zhc3Qv
anMvZ2xvYmFsLWNvbnN0cnVjdG9ycy1leHBlY3RlZC50eHQKQEAgLTI5MSw3ICsyOTEsOSBAQCBQ
QVNTIFRleHRFdmVudC50b1N0cmluZygpIGlzICdbb2JqZWN0IFRleHRFdmVudENvbnN0cnVjdG9y
XScKIFBBU1MgVGV4dE1ldHJpY3MudG9TdHJpbmcoKSBpcyAnW29iamVjdCBUZXh0TWV0cmljc0Nv
bnN0cnVjdG9yXScKIFBBU1MgVGltZVJhbmdlcy50b1N0cmluZygpIGlzICdbb2JqZWN0IFRpbWVS
YW5nZXNDb25zdHJ1Y3Rvcl0nCiBQQVNTIFVJRXZlbnQudG9TdHJpbmcoKSBpcyAnW29iamVjdCBV
SUV2ZW50Q29uc3RydWN0b3JdJworUEFTUyBXZWJLaXRBbmltYXRpb24udG9TdHJpbmcoKSBpcyAn
W29iamVjdCBXZWJLaXRBbmltYXRpb25Db25zdHJ1Y3Rvcl0nCiBQQVNTIFdlYktpdEFuaW1hdGlv
bkV2ZW50LnRvU3RyaW5nKCkgaXMgJ1tvYmplY3QgV2ViS2l0QW5pbWF0aW9uRXZlbnRDb25zdHJ1
Y3Rvcl0nCitQQVNTIFdlYktpdEFuaW1hdGlvbkxpc3QudG9TdHJpbmcoKSBpcyAnW29iamVjdCBX
ZWJLaXRBbmltYXRpb25MaXN0Q29uc3RydWN0b3JdJwogUEFTUyBXZWJLaXRDU1NLZXlmcmFtZVJ1
bGUudG9TdHJpbmcoKSBpcyAnW29iamVjdCBXZWJLaXRDU1NLZXlmcmFtZVJ1bGVDb25zdHJ1Y3Rv
cl0nCiBQQVNTIFdlYktpdENTU0tleWZyYW1lc1J1bGUudG9TdHJpbmcoKSBpcyAnW29iamVjdCBX
ZWJLaXRDU1NLZXlmcmFtZXNSdWxlQ29uc3RydWN0b3JdJwogUEFTUyBXZWJLaXRDU1NNYXRyaXgu
dG9TdHJpbmcoKSBpcyAnW29iamVjdCBXZWJLaXRDU1NNYXRyaXhDb25zdHJ1Y3Rvcl0nCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9BbmRyb2lkLmRlcml2ZWQuanNjYmluZGluZ3MubWsgYi9T
b3VyY2UvV2ViQ29yZS9BbmRyb2lkLmRlcml2ZWQuanNjYmluZGluZ3MubWsKaW5kZXggNmQwNjRh
ZS4uYzAwM2Q2MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQW5kcm9pZC5kZXJpdmVkLmpz
Y2JpbmRpbmdzLm1rCisrKyBiL1NvdXJjZS9XZWJDb3JlL0FuZHJvaWQuZGVyaXZlZC5qc2NiaW5k
aW5ncy5tawpAQCAtMzA3LDYgKzMwNywxNyBAQCAkKEdFTik6ICQoaW50ZXJtZWRpYXRlcykvcGFn
ZS9KUyUuaCA6ICQoTE9DQUxfUEFUSCkvcGFnZS8lLmlkbCAkKGpzX2JpbmRpbmdfc2NyaQogCSQo
dHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCiBMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAk
KEdFTikgJChHRU46JS5oPSUuY3BwKQogCisjIGFuaW1hdGlvbgorR0VOIDo9IFwKKyAgICAkKGlu
dGVybWVkaWF0ZXMpL3BhZ2UvYW5pbWF0aW9uL0pTV2ViS2l0QW5pbWF0aW9uLmggXAorICAgICQo
aW50ZXJtZWRpYXRlcykvcGFnZS9hbmltYXRpb24vSlNXZWJLaXRBbmltYXRpb25MaXN0LmgKKwor
JChHRU4pOiBQUklWQVRFX1BBVEggOj0gJChMT0NBTF9QQVRIKQorJChHRU4pOiBQUklWQVRFX0NV
U1RPTV9UT09MID0gcGVybCAtSSQoUFJJVkFURV9QQVRIKS9iaW5kaW5ncy9zY3JpcHRzICQoUFJJ
VkFURV9QQVRIKS9iaW5kaW5ncy9zY3JpcHRzL2dlbmVyYXRlLWJpbmRpbmdzLnBsIC0tZGVmaW5l
cyAiJChGRUFUVVJFX0RFRklORVMpIExBTkdVQUdFX0pBVkFTQ1JJUFQiIC0tZ2VuZXJhdG9yIEpT
IC0taW5jbHVkZSBkb20gLS1pbmNsdWRlIGh0bWwgLS1vdXRwdXRkaXIgJChkaXIgJEApICQ8Cisk
KEdFTik6ICQoaW50ZXJtZWRpYXRlcykvcGFnZS9hbmltYXRpb24vSlMlLmggOiAkKExPQ0FMX1BB
VEgpL3BhZ2UvYW5pbWF0aW9uLyUuaWRsICQoanNfYmluZGluZ19zY3JpcHRzKQorCSQodHJhbnNm
b3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikg
JChHRU46JS5oPSUuY3BwKQorCiAjIFdlIGFsc28gbmVlZCB0aGUgLmNwcCBmaWxlcywgd2hpY2gg
YXJlIGdlbmVyYXRlZCBhcyBzaWRlIGVmZmVjdHMgb2YgdGhlCiAjIGFib3ZlIHJ1bGVzLiAgU3Bl
Y2lmeWluZyB0aGlzIGV4cGxpY2l0bHkgbWFrZXMgLWoyIHdvcmsuCiAkKHBhdHN1YnN0ICUuaCwl
LmNwcCwkKEdFTikpOiAkKGludGVybWVkaWF0ZXMpL3BhZ2UvJS5jcHAgOiAkKGludGVybWVkaWF0
ZXMpL3BhZ2UvJS5oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9BbmRyb2lkLmRlcml2ZWQu
djhiaW5kaW5ncy5tayBiL1NvdXJjZS9XZWJDb3JlL0FuZHJvaWQuZGVyaXZlZC52OGJpbmRpbmdz
Lm1rCmluZGV4IDUyNGUyOWEuLmMwNjE4NTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0Fu
ZHJvaWQuZGVyaXZlZC52OGJpbmRpbmdzLm1rCisrKyBiL1NvdXJjZS9XZWJDb3JlL0FuZHJvaWQu
ZGVyaXZlZC52OGJpbmRpbmdzLm1rCkBAIC0yOTEsNiArMjkxLDIwIEBAIExPQ0FMX0dFTkVSQVRF
RF9TT1VSQ0VTICs9ICQoR0VOKQogIyBhYm92ZSBydWxlcy4gIFNwZWNpZnlpbmcgdGhpcyBleHBs
aWNpdGx5IG1ha2VzIC1qMiB3b3JrLgogJChwYXRzdWJzdCAlLmgsJS5jcHAsJChHRU4pKTogJChp
bnRlcm1lZGlhdGVzKS9iaW5kaW5ncy8lLmNwcCA6ICQoaW50ZXJtZWRpYXRlcykvYmluZGluZ3Mv
JS5oCiAKKyMgQW5pbWF0aW9uCitHRU4gOj0gXAorICAgICQoaW50ZXJtZWRpYXRlcykvYmluZGlu
Z3MvVjhXZWJLaXRBbmltYXRpb24uaCBcCisgICAgJChpbnRlcm1lZGlhdGVzKS9iaW5kaW5ncy9W
OFdlYktpdEFuaW1hdGlvbkxpc3QuaAorJChHRU4pOiBQUklWQVRFX1BBVEggOj0gJChMT0NBTF9Q
QVRIKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gU09VUkNFX1JPT1Q9JChQUklWQVRF
X1BBVEgpIHBlcmwgLUkkKFBSSVZBVEVfUEFUSCkvYmluZGluZ3Mvc2NyaXB0cyAkKFBSSVZBVEVf
UEFUSCkvYmluZGluZ3Mvc2NyaXB0cy9nZW5lcmF0ZS1iaW5kaW5ncy5wbCAtLWRlZmluZXMgIiQo
RkVBVFVSRV9ERUZJTkVTKSBMQU5HVUFHRV9KQVZBU0NSSVBUIiAtLWdlbmVyYXRvciBWOCAtLWlu
Y2x1ZGUgZG9tIC0taW5jbHVkZSBodG1sIC0tb3V0cHV0ZGlyICQoZGlyICRAKSAkPAorJChHRU4p
OiAkKGludGVybWVkaWF0ZXMpL2JpbmRpbmdzL1Y4JS5oIDogJChMT0NBTF9QQVRIKS9wYWdlL2Fu
aW1hdGlvbi8lLmlkbCAkKGpzX2JpbmRpbmdfc2NyaXB0cykKKwkkKHRyYW5zZm9ybS1nZW5lcmF0
ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMgV2UgYWxz
byBuZWVkIHRoZSAuY3BwIGZpbGVzLCB3aGljaCBhcmUgZ2VuZXJhdGVkIGFzIHNpZGUgZWZmZWN0
cyBvZiB0aGUKKyMgYWJvdmUgcnVsZXMuICBTcGVjaWZ5aW5nIHRoaXMgZXhwbGljaXRseSBtYWtl
cyAtajIgd29yay4KKyQocGF0c3Vic3QgJS5oLCUuY3BwLCQoR0VOKSk6ICQoaW50ZXJtZWRpYXRl
cykvYmluZGluZ3MvJS5jcHAgOiAkKGludGVybWVkaWF0ZXMpL2JpbmRpbmdzLyUuaAorCiBHRU4g
Oj0gXAogICAgICQoaW50ZXJtZWRpYXRlcykvYmluZGluZ3MvVjhNaW1lVHlwZS5oIFwKICAgICAk
KGludGVybWVkaWF0ZXMpL2JpbmRpbmdzL1Y4TWltZVR5cGVBcnJheS5oIFwKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL0FuZHJvaWQubWsgYi9Tb3VyY2UvV2ViQ29yZS9BbmRyb2lkLm1rCmlu
ZGV4IDk4NTk4ZmUuLmEyYzQwZWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0FuZHJvaWQu
bWsKKysrIGIvU291cmNlL1dlYkNvcmUvQW5kcm9pZC5tawpAQCAtNDYwLDYgKzQ2MCw4IEBAIExP
Q0FMX1NSQ19GSUxFUyA6PSAkKExPQ0FMX1NSQ19GSUxFUykgXAogCXBhZ2UvYW5pbWF0aW9uL0Nv
bXBvc2l0ZUFuaW1hdGlvbi5jcHAgXAogCXBhZ2UvYW5pbWF0aW9uL0ltcGxpY2l0QW5pbWF0aW9u
LmNwcCBcCiAJcGFnZS9hbmltYXRpb24vS2V5ZnJhbWVBbmltYXRpb24uY3BwIFwKKwlwYWdlL2Fu
aW1hdGlvbi9XZWJLaXRBbmltYXRpb24uY3BwIFwKKwlwYWdlL2FuaW1hdGlvbi9XZWJLaXRBbmlt
YXRpb25MaXN0LmNwcCBcCiAJXAogCXBsYXRmb3JtL0FyZW5hLmNwcCBcCiAJcGxhdGZvcm0vQ29u
dGVudFR5cGUuY3BwIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0FuZHJvaWQudjhiaW5k
aW5ncy5tayBiL1NvdXJjZS9XZWJDb3JlL0FuZHJvaWQudjhiaW5kaW5ncy5tawppbmRleCA2MmNj
Y2Y1Li43MDA4OTBiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9BbmRyb2lkLnY4YmluZGlu
Z3MubWsKKysrIGIvU291cmNlL1dlYkNvcmUvQW5kcm9pZC52OGJpbmRpbmdzLm1rCkBAIC0xNjQs
NiArMTY0LDcgQEAgTE9DQUxfU1JDX0ZJTEVTICs9IFwKIAliaW5kaW5ncy92OC9jdXN0b20vVjhT
dHlsZVNoZWV0Q3VzdG9tLmNwcCBcCiAJYmluZGluZ3MvdjgvY3VzdG9tL1Y4U3R5bGVTaGVldExp
c3RDdXN0b20uY3BwIFwKIAliaW5kaW5ncy92OC9jdXN0b20vVjhUcmVlV2Fsa2VyQ3VzdG9tLmNw
cCBcCisJYmluZGluZ3MvdjgvY3VzdG9tL1Y4V2ViS2l0QW5pbWF0aW9uQ3VzdG9tLmNwcCBcCiAJ
YmluZGluZ3MvdjgvY3VzdG9tL1Y4V2ViS2l0Q1NTTWF0cml4Q29uc3RydWN0b3IuY3BwIFwKIAli
aW5kaW5ncy92OC9jdXN0b20vVjhXZWJLaXRQb2ludENvbnN0cnVjdG9yLmNwcCBcCiAJYmluZGlu
Z3MvdjgvY3VzdG9tL1Y4V29ya2VyQ29udGV4dEN1c3RvbS5jcHAgXApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4
dAppbmRleCA0OGYyMzdhLi5lODkyYmMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DTWFr
ZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dApAQCAtOTUsNiAr
OTUsNyBAQCBTRVQoV2ViQ29yZV9JRExfSU5DTFVERVMKICAgICBpbnNwZWN0b3IKICAgICBsb2Fk
ZXIvYXBwY2FjaGUKICAgICBwYWdlCisgICAgcGFnZS9hbmltYXRpb24KICAgICBwbHVnaW5zCiAg
ICAgc3RvcmFnZQogICAgIHN2ZwpAQCAtMzQ2LDYgKzM0Nyw5IEBAIFNFVChXZWJDb3JlX0lETF9G
SUxFUwogICAgIHBhZ2UvV2ViS2l0UG9pbnQuaWRsCiAgICAgcGFnZS9Xb3JrZXJOYXZpZ2F0b3Iu
aWRsCiAKKyAgICBwYWdlL2FuaW1hdGlvbi9XZWJLaXRBbmltYXRpb24uaWRsCisgICAgcGFnZS9h
bmltYXRpb24vV2ViS2l0QW5pbWF0aW9uTGlzdC5pZGwKKwogICAgIHBsdWdpbnMvRE9NTWltZVR5
cGUuaWRsCiAgICAgcGx1Z2lucy9ET01NaW1lVHlwZUFycmF5LmlkbAogICAgIHBsdWdpbnMvRE9N
UGx1Z2luLmlkbApAQCAtNTc0LDYgKzU3OCw4IEBAIFNFVChXZWJDb3JlX1NPVVJDRVMKICAgICBi
aW5kaW5ncy9qcy9KU1VpbnQxNkFycmF5Q3VzdG9tLmNwcCAKICAgICBiaW5kaW5ncy9qcy9KU1Vp
bnQzMkFycmF5Q3VzdG9tLmNwcAogICAgIGJpbmRpbmdzL2pzL0pTVWludDhBcnJheUN1c3RvbS5j
cHAKKyAgICBiaW5kaW5ncy9qcy9KU1dlYktpdEFuaW1hdGlvbkN1c3RvbS5jcHAKKyAgICBiaW5k
aW5ncy9qcy9KU1dlYktpdEFuaW1hdGlvbkxpc3RDdXN0b20uY3BwCiAgICAgYmluZGluZ3MvanMv
SlNXZWJLaXRDU1NLZXlmcmFtZVJ1bGVDdXN0b20uY3BwCiAgICAgYmluZGluZ3MvanMvSlNXZWJL
aXRDU1NLZXlmcmFtZXNSdWxlQ3VzdG9tLmNwcAogICAgIGJpbmRpbmdzL2pzL0pTV2ViS2l0Q1NT
TWF0cml4Q3VzdG9tLmNwcApAQCAtMTE4MSw2ICsxMTg3LDggQEAgU0VUKFdlYkNvcmVfU09VUkNF
UwogICAgIHBhZ2UvYW5pbWF0aW9uL0NvbXBvc2l0ZUFuaW1hdGlvbi5jcHAKICAgICBwYWdlL2Fu
aW1hdGlvbi9JbXBsaWNpdEFuaW1hdGlvbi5jcHAKICAgICBwYWdlL2FuaW1hdGlvbi9LZXlmcmFt
ZUFuaW1hdGlvbi5jcHAKKyAgICBwYWdlL2FuaW1hdGlvbi9XZWJLaXRBbmltYXRpb24uY3BwCisg
ICAgcGFnZS9hbmltYXRpb24vV2ViS2l0QW5pbWF0aW9uTGlzdC5jcHAKIAogICAgIHBsYXRmb3Jt
L0FyZW5hLmNwcAogICAgIHBsYXRmb3JtL0NvbnRleHRNZW51LmNwcApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDQ0
MzgwN2UuLmM1M2Y1OTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysg
Yi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw5OCBAQAorMjAxMS0wMy0wOSAg
RGVhbiBKYWNrc29uICA8ZGlub0BhcHBsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTU0MTUxCisgICAgICAgIEltcGxlbWVudCBhbiBBUEkgdG8gcGxheS9wYXVzZS9zY3J1
YiBhbmltYXRpb25zCisKKyAgICAgICAgVGhpcyBpcyBQYXJ0IDEuIEFkZHMgdGhlIG5ldyBXZWJL
aXRBbmltYXRpb24gYW5kIFdlYktpdEFuaW1hdGlvbkxpc3QKKyAgICAgICAgQVBJcywgZXhwb3Nl
ZCB2aWEgRWxlbWVudC5nZXRXZWJLaXRBbmltYXRpb25zKCkuIFRoaXMgZmlyc3QgcGFzcworICAg
ICAgICBpcyBhIHJlYWQtb25seSBBUEkgLSBhIHN1YnNlcXVlbnQgY29tbWl0IHdpbGwgYWRkIHRo
ZSBhYmlsaXR5CisgICAgICAgIHRvIHNjcnViIGFuaW1hdGlvbnMuCisKKyAgICAgICAgVGVzdDog
YW5pbWF0aW9ucy9hbmltYXRpb24tYXBpLTEuaHRtbAorCisgICAgICAgICogQW5kcm9pZC5kZXJp
dmVkLmpzY2JpbmRpbmdzLm1rOgorICAgICAgICAqIEFuZHJvaWQuZGVyaXZlZC52OGJpbmRpbmdz
Lm1rOgorICAgICAgICAqIEFuZHJvaWQubWs6CisgICAgICAgICogQW5kcm9pZC52OGJpbmRpbmdz
Lm1rOgorICAgICAgICAqIENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIENvZGVHZW5lcmF0b3Jz
LnByaToKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy5jcHA6CisgICAgICAgICogRGVyaXZlZFNv
dXJjZXMubWFrZToKKyAgICAgICAgKiBHTlVtYWtlZmlsZS5hbToKKyAgICAgICAgKiBXZWJDb3Jl
Lmd5cGk6CisgICAgICAgICogV2ViQ29yZS5wcm86CisgICAgICAgICogV2ViQ29yZS52Y3Byb2ov
V2ViQ29yZS52Y3Byb2o6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qOgorICAgICAgICAtIEFsbCBidWlsZCBzZXR0aW5ncyB1cGRhdGVkIGZvciBuZXcgZmlsZXMK
KyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU1dlYktpdEFuaW1hdGlvbkN1c3RvbS5jcHA6IEFkZGVk
LgorICAgICAgICAoV2ViQ29yZTo6SlNXZWJLaXRBbmltYXRpb246Oml0ZXJhdGlvbkNvdW50KToK
KyAgICAgICAgLSBDdXN0b20gcHJvcGVydHkgZ2V0dGVyIHNvIHRoYXQgd2UgY2FuIHJldHVybiBJ
TkZJTklUWQorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTV2ViS2l0QW5pbWF0aW9uTGlzdEN1c3Rv
bS5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6SlNXZWJLaXRBbmltYXRpb25MaXN0Ojpt
YXJrQ2hpbGRyZW4pOgorICAgICAgICAtIE1ha2Ugc3VyZSBXZWJLaXRBbmltYXRpb25zIGFyZSBt
YXJrZWQKKyAgICAgICAgKiBiaW5kaW5ncy92OC9jdXN0b20vVjhXZWJLaXRBbmltYXRpb25DdXN0
b20uY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlY4V2Via2l0QW5pbWF0aW9uOjppdGVy
YXRpb25Db3VudEFjY2Vzc29yR2V0dGVyKToKKyAgICAgICAgLSBDdXN0b20gcHJvcGVydHkgZ2V0
dGVyIHNvIHRoYXQgd2UgY2FuIHJldHVybiBJTkZJTklUWQorICAgICAgICAqIGRvbS9FbGVtZW50
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVsZW1lbnQ6OndlYmtpdEdldEFuaW1hdGlvbnMpOgor
ICAgICAgICAqIGRvbS9FbGVtZW50Lmg6CisgICAgICAgICogZG9tL0VsZW1lbnQuaWRsOgorICAg
ICAgICAtIE5ldyBBUEkgZW50cnkgcG9pbnQKKyAgICAgICAgKiBwYWdlL0RPTVdpbmRvdy5pZGw6
CisgICAgICAgIC0gQ29uc3RydWN0b3IgZGVmaW5pdGlvbnMgZm9yIFdlYktpdEFuaW1hdGlvbiBh
bmQgV2ViS2l0QW5pbWF0aW9uTGlzdAorICAgICAgICAqIHBhZ2UvYW5pbWF0aW9uL0FuaW1hdGlv
bkJhc2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QW5pbWF0aW9uQmFzZTo6fkFuaW1hdGlvbkJh
c2UpOgorICAgICAgICAtIFNpbmNlIEFuaW1hdGlvbkJhc2UgY2FuIG5vdyBsaXZlIGxvbmdlciAo
aWYgYSBXZWJLaXRBbmltYXRpb24gaXMKKyAgICAgICAgaGVsZCBpbiBKYXZhc2NyaXB0KSB3ZSBu
ZWVkIHRvIGd1YXJkIGZvciB0aGUgcmVuZGVyZXIgaGF2aW5nIGRpc2FwcGVhcmVkLgorICAgICAg
ICAoV2ViQ29yZTo6QW5pbWF0aW9uQmFzZTo6c2V0RWxhcHNlZFRpbWUpOgorICAgICAgICAoV2Vi
Q29yZTo6QW5pbWF0aW9uQmFzZTo6cGxheSk6CisgICAgICAgIChXZWJDb3JlOjpBbmltYXRpb25C
YXNlOjpwYXVzZSk6CisgICAgICAgIC0gU3R1YiBpbXBsZW1lbnRhdGlvbnMgYXQgcHJlc2VudAor
ICAgICAgICAqIHBhZ2UvYW5pbWF0aW9uL0FuaW1hdGlvbkJhc2UuaDoKKyAgICAgICAgKFdlYkNv
cmU6OkFuaW1hdGlvbkJhc2U6OmFuaW1hdGlvbik6CisgICAgICAgIC0gRXhwb3NlIHRoZSBBbmlt
YXRpb24gcHJvcGVydGllcworICAgICAgICAqIHBhZ2UvYW5pbWF0aW9uL0FuaW1hdGlvbkNvbnRy
b2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QW5pbWF0aW9uQ29udHJvbGxlclByaXZhdGU6
OmFuaW1hdGlvbnNGb3JSZW5kZXJlcik6CisgICAgICAgIChXZWJDb3JlOjpBbmltYXRpb25Db250
cm9sbGVyOjphbmltYXRpb25zRm9yUmVuZGVyZXIpOgorICAgICAgICAtIEJ1aWxkcyB0aGUgbGlz
dCBvZiBXZWJLaXRBbmltYXRpb25zCisgICAgICAgICogcGFnZS9hbmltYXRpb24vQW5pbWF0aW9u
Q29udHJvbGxlci5oOgorICAgICAgICAqIHBhZ2UvYW5pbWF0aW9uL0FuaW1hdGlvbkNvbnRyb2xs
ZXJQcml2YXRlLmg6CisgICAgICAgICogcGFnZS9hbmltYXRpb24vQ29tcG9zaXRlQW5pbWF0aW9u
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNvbXBvc2l0ZUFuaW1hdGlvbjo6dXBkYXRlS2V5ZnJh
bWVBbmltYXRpb25zKToKKyAgICAgICAgLSBNYWtlIHN1cmUgd2UgY2xlYXIgdGhlIHJlbmRlcmVy
IGlmIHdlIGFyZSByZW1vdmluZyB0aGUgYW5pbWF0aW9uCisgICAgICAgIChXZWJDb3JlOjpDb21w
b3NpdGVBbmltYXRpb246OmFuaW1hdGlvbnMpOgorICAgICAgICAqIHBhZ2UvYW5pbWF0aW9uL0Nv
bXBvc2l0ZUFuaW1hdGlvbi5oOgorICAgICAgICAqIHBhZ2UvYW5pbWF0aW9uL1dlYktpdEFuaW1h
dGlvbi5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6V2ViS2l0QW5pbWF0aW9uOjpXZWJL
aXRBbmltYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6V2ViS2l0QW5pbWF0aW9uOjpuYW1lKToK
KyAgICAgICAgKFdlYkNvcmU6OldlYktpdEFuaW1hdGlvbjo6ZHVyYXRpb24pOgorICAgICAgICAo
V2ViQ29yZTo6V2ViS2l0QW5pbWF0aW9uOjplbGFwc2VkVGltZSk6CisgICAgICAgIChXZWJDb3Jl
OjpXZWJLaXRBbmltYXRpb246OnNldEVsYXBzZWRUaW1lKToKKyAgICAgICAgKFdlYkNvcmU6Oldl
YktpdEFuaW1hdGlvbjo6ZGVsYXkpOgorICAgICAgICAoV2ViQ29yZTo6V2ViS2l0QW5pbWF0aW9u
OjppdGVyYXRpb25Db3VudCk6CisgICAgICAgIChXZWJDb3JlOjpXZWJLaXRBbmltYXRpb246OnBh
dXNlZCk6CisgICAgICAgIChXZWJDb3JlOjpXZWJLaXRBbmltYXRpb246OmVuZGVkKToKKyAgICAg
ICAgKFdlYkNvcmU6OldlYktpdEFuaW1hdGlvbjo6ZGlyZWN0aW9uKToKKyAgICAgICAgKFdlYkNv
cmU6OldlYktpdEFuaW1hdGlvbjo6ZmlsbE1vZGUpOgorICAgICAgICAoV2ViQ29yZTo6V2ViS2l0
QW5pbWF0aW9uOjpwYXVzZSk6CisgICAgICAgIChXZWJDb3JlOjpXZWJLaXRBbmltYXRpb246OnBs
YXkpOgorICAgICAgICAtIFRoZSBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgbmV3IEFQSS4gQWxsIHRo
ZSByZWFkLW9ubHkgcGFydHMgYXJlCisgICAgICAgIGRvbmUsIGJ1dCBlbGFwc2VkVGltZSwgcGxh
eSgpIGFuZCBwYXVzZSgpIGFyZSBzdHVicy4KKyAgICAgICAgKiBwYWdlL2FuaW1hdGlvbi9XZWJL
aXRBbmltYXRpb24uaDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpXZWJLaXRBbmltYXRpb246
OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpXZWJLaXRBbmltYXRpb246On5XZWJLaXRBbmlt
YXRpb24pOgorICAgICAgICAqIHBhZ2UvYW5pbWF0aW9uL1dlYktpdEFuaW1hdGlvbi5pZGw6IEFk
ZGVkLgorICAgICAgICAqIHBhZ2UvYW5pbWF0aW9uL1dlYktpdEFuaW1hdGlvbkxpc3QuY3BwOiBB
ZGRlZC4KKyAgICAgICAgKiBwYWdlL2FuaW1hdGlvbi9XZWJLaXRBbmltYXRpb25MaXN0Lmg6IEFk
ZGVkLgorICAgICAgICAqIHBhZ2UvYW5pbWF0aW9uL1dlYktpdEFuaW1hdGlvbkxpc3QuaWRsOiBB
ZGRlZC4KKyAgICAgICAgLSBDb3BpZXMgTm9kZUxpc3QgaW1wbGVtZW50YXRpb24KKyAgICAgICAg
KiByZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlck9i
amVjdDo6YW5pbWF0aW9ucyk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlck9iamVjdC5oOgor
ICAgICAgICAtIE5ldyBhY2Nlc3NvciB0byBjcmVhdGUgYSBsaXN0IG9mIEFuaW1hdGlvbnMgZ2l2
ZW4gYSByZW5kZXJlci4KKwogMjAxMS0wMy0wOSAgQW5kcmV5IEtvc3lha292ICA8Y2FzZXFAY2hy
b21pdW0ub3JnPgogCiAgICAgICAgIFVucmV2aWV3ZWQuIEZpeGVkIGEgY3Jhc2ggaW4gSW5zcGVj
dG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRSZWNlaXZlUmVzcG9uc2UoKSB3aGVuIGxvYWRlciBpcyBu
dWxsIChicm9rZW4gaW4gcjgwNjM5KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ29kZUdl
bmVyYXRvcnMucHJpIGIvU291cmNlL1dlYkNvcmUvQ29kZUdlbmVyYXRvcnMucHJpCmluZGV4IDNl
NDU5YTYuLjFiNGIwNDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NvZGVHZW5lcmF0b3Jz
LnByaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9Db2RlR2VuZXJhdG9ycy5wcmkKQEAgLTMzNiw2ICsz
MzYsOCBAQCBJRExfQklORElOR1MgKz0gXAogICAgIHBhZ2UvU3BlZWNoSW5wdXRSZXN1bHRMaXN0
LmlkbCBcCiAgICAgcGFnZS9XZWJLaXRQb2ludC5pZGwgXAogICAgIHBhZ2UvV29ya2VyTmF2aWdh
dG9yLmlkbCBcCisgICAgcGFnZS9hbmltYXRpb24vV2ViS2l0QW5pbWF0aW9uLmlkbCBcCisgICAg
cGFnZS9hbmltYXRpb24vV2ViS2l0QW5pbWF0aW9uTGlzdC5pZGwgXAogICAgIHBsdWdpbnMvRE9N
UGx1Z2luLmlkbCBcCiAgICAgcGx1Z2lucy9ET01NaW1lVHlwZS5pZGwgXAogICAgIHBsdWdpbnMv
RE9NUGx1Z2luQXJyYXkuaWRsIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRT
b3VyY2VzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLmNwcAppbmRleCA5YWIz
N2VjLi4yNDAyMmY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMuY3BwCkBAIC00MzUsNyArNDM1
LDkgQEAKICNpbmNsdWRlICJKU1VpbnQ4QXJyYXkuY3BwIgogI2luY2x1ZGUgIkpTVUlFdmVudC5j
cHAiCiAjaW5jbHVkZSAiSlNWYWxpZGl0eVN0YXRlLmNwcCIKKyNpbmNsdWRlICJKU1dlYktpdEFu
aW1hdGlvbi5jcHAiCiAjaW5jbHVkZSAiSlNXZWJLaXRBbmltYXRpb25FdmVudC5jcHAiCisjaW5j
bHVkZSAiSlNXZWJLaXRBbmltYXRpb25MaXN0LmNwcCIKICNpbmNsdWRlICJKU1dlYktpdENTU0tl
eWZyYW1lUnVsZS5jcHAiCiAjaW5jbHVkZSAiSlNXZWJLaXRDU1NLZXlmcmFtZXNSdWxlLmNwcCIK
ICNpbmNsdWRlICJKU1dlYktpdENTU1RyYW5zZm9ybVZhbHVlLmNwcCIKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVk
U291cmNlcy5tYWtlCmluZGV4IDkxNTgwMTEuLjlmMWU0MWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKKysrIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNv
dXJjZXMubWFrZQpAQCAtNDAsNiArNDAsNyBAQCBWUEFUSCA9IFwKICAgICAkKFdlYkNvcmUpL2xv
YWRlci9hcHBjYWNoZSBcCiAgICAgJChXZWJDb3JlKS9ub3RpZmljYXRpb25zIFwKICAgICAkKFdl
YkNvcmUpL3BhZ2UgXAorICAgICQoV2ViQ29yZSkvcGFnZS9hbmltYXRpb24gXAogICAgICQoV2Vi
Q29yZSkvcGx1Z2lucyBcCiAgICAgJChXZWJDb3JlKS9zdG9yYWdlIFwKICAgICAkKFdlYkNvcmUp
L3htbCBcCkBAIC01MTIsNyArNTEzLDkgQEAgRE9NX0NMQVNTRVMgPSBcCiAgICAgVHJlZVdhbGtl
ciBcCiAgICAgVUlFdmVudCBcCiAgICAgVmFsaWRpdHlTdGF0ZSBcCisgICAgV2ViS2l0QW5pbWF0
aW9uIFwKICAgICBXZWJLaXRBbmltYXRpb25FdmVudCBcCisgICAgV2ViS2l0QW5pbWF0aW9uTGlz
dCBcCiAgICAgV2ViS2l0Q1NTS2V5ZnJhbWVSdWxlIFwKICAgICBXZWJLaXRDU1NLZXlmcmFtZXNS
dWxlIFwKICAgICBXZWJLaXRDU1NNYXRyaXggXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
R05VbWFrZWZpbGUuYW0gYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQppbmRleCAyZWI3
MjA2Li41ODE3ZmNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQor
KysgYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQpAQCAtNTk4LDcgKzU5OCwxMSBAQCB3
ZWJjb3JlX2J1aWx0X3NvdXJjZXMgKz0gXAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNXZWJH
TFVuaWZvcm1Mb2NhdGlvbi5oIFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTV2ViR0xWZXJ0
ZXhBcnJheU9iamVjdE9FUy5jcHAgXAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNXZWJHTFZl
cnRleEFycmF5T2JqZWN0T0VTLmggXAorCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNXZWJLaXRB
bmltYXRpb24uY3BwIFwKKwlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTV2ViS2l0QW5pbWF0aW9u
LmggXAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNXZWJLaXRBbmltYXRpb25FdmVudC5jcHAg
XAorCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNXZWJLaXRBbmltYXRpb25MaXN0LmggXAorCURl
cml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNXZWJLaXRBbmltYXRpb25MaXN0LmNwcCBcCiAJRGVyaXZl
ZFNvdXJjZXMvV2ViQ29yZS9KU1dlYktpdEFuaW1hdGlvbkV2ZW50LmggXAogCURlcml2ZWRTb3Vy
Y2VzL1dlYkNvcmUvSlNXZWJLaXRDU1NLZXlmcmFtZVJ1bGUuY3BwIFwKIAlEZXJpdmVkU291cmNl
cy9XZWJDb3JlL0pTV2ViS2l0Q1NTS2V5ZnJhbWVSdWxlLmggXApAQCAtODcwLDYgKzg3NCw4IEBA
IHdlYmNvcmVfc291cmNlcyArPSBcCiAJU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNVaW50
MTZBcnJheUN1c3RvbS5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTVWludDMy
QXJyYXlDdXN0b20uY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1VpbnQ4QXJy
YXlDdXN0b20uY3BwIFwKKwlTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dlYktpdEFuaW1h
dGlvbkN1c3RvbS5jcHAgXAorCVNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTV2ViS2l0QW5p
bWF0aW9uTGlzdEN1c3RvbS5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTV2Vi
S2l0Q1NTS2V5ZnJhbWVSdWxlQ3VzdG9tLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvSlNXZWJLaXRDU1NLZXlmcmFtZXNSdWxlQ3VzdG9tLmNwcCBcCiAJU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvSlNXZWJHTFJlbmRlcmluZ0NvbnRleHRDdXN0b20uY3BwIFwKQEAgLTIxODUs
NiArMjE5MSwxMCBAQCB3ZWJjb3JlX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9XZWJDb3JlL3BhZ2Uv
YW5pbWF0aW9uL0ltcGxpY2l0QW5pbWF0aW9uLmggXAogCVNvdXJjZS9XZWJDb3JlL3BhZ2UvYW5p
bWF0aW9uL0tleWZyYW1lQW5pbWF0aW9uLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvcGFnZS9hbmlt
YXRpb24vS2V5ZnJhbWVBbmltYXRpb24uaCBcCisJU291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRp
b24vV2ViS2l0QW5pbWF0aW9uLmggXAorCVNvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL1dl
YktpdEFuaW1hdGlvbi5jcHAgXAorCVNvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL1dlYktp
dEFuaW1hdGlvbkxpc3QuaCBcCisJU291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vV2ViS2l0
QW5pbWF0aW9uTGlzdC5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL3BhZ2UvQmFySW5mby5jcHAgXAog
CVNvdXJjZS9XZWJDb3JlL3BhZ2UvQmFySW5mby5oIFwKIAlTb3VyY2UvV2ViQ29yZS9wYWdlL0No
cm9tZS5jcHAgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpIGIvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCmluZGV4IDg3NWQ5NWUuLjkyZDdjYTYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLmd5cGkKQEAgLTI3Nyw2ICsyNzcsOCBAQAogICAgICAgICAgICAgJ3BhZ2UvU3BlZWNoSW5w
dXRSZXN1bHQuaWRsJywKICAgICAgICAgICAgICdwYWdlL1NwZWVjaElucHV0UmVzdWx0TGlzdC5p
ZGwnLAogICAgICAgICAgICAgJ3BhZ2UvV2ViS2l0UG9pbnQuaWRsJywKKyAgICAgICAgICAgICdw
YWdlL2FuaW1hdGlvbi9XZWJLaXRBbmltYXRpb24uaWRsJywKKyAgICAgICAgICAgICdwYWdlL2Fu
aW1hdGlvbi9XZWJLaXRBbmltYXRpb25MaXN0LmlkbCcsCiAgICAgICAgICAgICAncGFnZS9Xb3Jr
ZXJOYXZpZ2F0b3IuaWRsJywKICAgICAgICAgICAgICdwbHVnaW5zL0RPTU1pbWVUeXBlLmlkbCcs
CiAgICAgICAgICAgICAncGx1Z2lucy9ET01NaW1lVHlwZUFycmF5LmlkbCcsCkBAIC03ODcsNiAr
Nzg5LDggQEAKICAgICAgICAgICAgICdiaW5kaW5ncy9qcy9KU1VpbnQzMkFycmF5Q3VzdG9tLmNw
cCcsCiAgICAgICAgICAgICAnYmluZGluZ3MvanMvSlNVaW50OEFycmF5Q3VzdG9tLmNwcCcsCiAg
ICAgICAgICAgICAnYmluZGluZ3MvanMvSlNXZWJHTFJlbmRlcmluZ0NvbnRleHRDdXN0b20uY3Bw
JywKKyAgICAgICAgICAgICdiaW5kaW5ncy9qcy9KU1dlYktpdEFuaW1hdGlvbkN1c3RvbS5jcHAn
LAorICAgICAgICAgICAgJ2JpbmRpbmdzL2pzL0pTV2ViS2l0QW5pbWF0aW9uTGlzdEN1c3RvbS5j
cHAnLAogICAgICAgICAgICAgJ2JpbmRpbmdzL2pzL0pTV2ViS2l0Q1NTS2V5ZnJhbWVSdWxlQ3Vz
dG9tLmNwcCcsCiAgICAgICAgICAgICAnYmluZGluZ3MvanMvSlNXZWJLaXRDU1NLZXlmcmFtZXNS
dWxlQ3VzdG9tLmNwcCcsCiAgICAgICAgICAgICAnYmluZGluZ3MvanMvSlNXZWJLaXRDU1NNYXRy
aXhDdXN0b20uY3BwJywKQEAgLTExMTgsNiArMTEyMiw3IEBACiAgICAgICAgICAgICAnYmluZGlu
Z3MvdjgvY3VzdG9tL1Y4VWludDMyQXJyYXlDdXN0b20uY3BwJywKICAgICAgICAgICAgICdiaW5k
aW5ncy92OC9jdXN0b20vVjhVaW50OEFycmF5Q3VzdG9tLmNwcCcsCiAgICAgICAgICAgICAnYmlu
ZGluZ3MvdjgvY3VzdG9tL1Y4V2ViR0xSZW5kZXJpbmdDb250ZXh0Q3VzdG9tLmNwcCcsCisgICAg
ICAgICAgICAnYmluZGluZ3MvdjgvY3VzdG9tL1Y4V2ViS2l0QW5pbWF0aW9uQ3VzdG9tLmNwcCcs
CiAgICAgICAgICAgICAnYmluZGluZ3MvdjgvY3VzdG9tL1Y4V2ViS2l0Q1NTTWF0cml4Q29uc3Ry
dWN0b3IuY3BwJywKICAgICAgICAgICAgICdiaW5kaW5ncy92OC9jdXN0b20vVjhXZWJLaXRQb2lu
dENvbnN0cnVjdG9yLmNwcCcsCiAgICAgICAgICAgICAnYmluZGluZ3MvdjgvY3VzdG9tL1Y4V2Vi
U29ja2V0Q3VzdG9tLmNwcCcsCkBAIC0yNTI2LDYgKzI1MzEsMTAgQEAKICAgICAgICAgICAgICdw
YWdlL2FuaW1hdGlvbi9JbXBsaWNpdEFuaW1hdGlvbi5oJywKICAgICAgICAgICAgICdwYWdlL2Fu
aW1hdGlvbi9LZXlmcmFtZUFuaW1hdGlvbi5jcHAnLAogICAgICAgICAgICAgJ3BhZ2UvYW5pbWF0
aW9uL0tleWZyYW1lQW5pbWF0aW9uLmgnLAorICAgICAgICAgICAgJ3BhZ2UvYW5pbWF0aW9uL1dl
YktpdEFuaW1hdGlvbi5jcHAnLAorICAgICAgICAgICAgJ3BhZ2UvYW5pbWF0aW9uL1dlYktpdEFu
aW1hdGlvbi5oJywKKyAgICAgICAgICAgICdwYWdlL2FuaW1hdGlvbi9XZWJLaXRBbmltYXRpb25M
aXN0LmNwcCcsCisgICAgICAgICAgICAncGFnZS9hbmltYXRpb24vV2ViS2l0QW5pbWF0aW9uTGlz
dC5oJywKICAgICAgICAgICAgICdwYWdlL2Nocm9taXVtL0Nocm9tZUNsaWVudENocm9taXVtLmgn
LAogICAgICAgICAgICAgJ3BhZ2UvY2hyb21pdW0vRHJhZ0NvbnRyb2xsZXJDaHJvbWl1bS5jcHAn
LAogICAgICAgICAgICAgJ3BhZ2UvY2hyb21pdW0vRXZlbnRIYW5kbGVyQ2hyb21pdW0uY3BwJywK
QEAgLTY4NTYsOSArNjg2NSwxMyBAQAogICAgICAgICAgICAgJzwoUFJPRFVDVF9ESVIpL0Rlcml2
ZWRTb3VyY2VzL1dlYkNvcmUvRE9NV2ViR0xWZXJ0ZXhBcnJheU9iamVjdE9FUy5oJywKICAgICAg
ICAgICAgICc8KFBST0RVQ1RfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0RPTVdlYkdMVmVy
dGV4QXJyYXlPYmplY3RPRVMubW0nLAogICAgICAgICAgICAgJzwoUFJPRFVDVF9ESVIpL0Rlcml2
ZWRTb3VyY2VzL1dlYkNvcmUvRE9NV2ViR0xWZXJ0ZXhBcnJheU9iamVjdE9FU0ludGVybmFsLmgn
LAorICAgICAgICAgICAgJzwoUFJPRFVDVF9ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvRE9N
V2ViS2l0QW5pbWF0aW9uLmgnLAorICAgICAgICAgICAgJzwoUFJPRFVDVF9ESVIpL0Rlcml2ZWRT
b3VyY2VzL1dlYkNvcmUvRE9NV2ViS2l0QW5pbWF0aW9uLm1tJywKICAgICAgICAgICAgICc8KFBS
T0RVQ1RfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0RPTVdlYktpdEFuaW1hdGlvbkV2ZW50
LmgnLAogICAgICAgICAgICAgJzwoUFJPRFVDVF9ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUv
RE9NV2ViS2l0QW5pbWF0aW9uRXZlbnQubW0nLAogICAgICAgICAgICAgJzwoUFJPRFVDVF9ESVIp
L0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvRE9NV2ViS2l0QW5pbWF0aW9uRXZlbnRJbnRlcm5hbC5o
JywKKyAgICAgICAgICAgICc8KFBST0RVQ1RfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0RP
TVdlYktpdEFuaW1hdGlvbkxpc3QuaCcsCisgICAgICAgICAgICAnPChQUk9EVUNUX0RJUikvRGVy
aXZlZFNvdXJjZXMvV2ViQ29yZS9ET01XZWJLaXRBbmltYXRpb25MaXN0Lm1tJywKICAgICAgICAg
ICAgICc8KFBST0RVQ1RfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0RPTVdlYktpdENTU0tl
eWZyYW1lUnVsZS5oJywKICAgICAgICAgICAgICc8KFBST0RVQ1RfRElSKS9EZXJpdmVkU291cmNl
cy9XZWJDb3JlL0RPTVdlYktpdENTU0tleWZyYW1lUnVsZS5tbScsCiAgICAgICAgICAgICAnPChQ
Uk9EVUNUX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9ET01XZWJLaXRDU1NLZXlmcmFtZVJ1
bGVJbnRlcm5hbC5oJywKQEAgLTc5MDUsOCArNzkxOCwxMiBAQAogICAgICAgICAgICAgJzwoUFJP
RFVDVF9ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNXZWJHTFVuaWZvcm1Mb2NhdGlvbi5o
JywKICAgICAgICAgICAgICc8KFBST0RVQ1RfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pT
V2ViR0xWZXJ0ZXhBcnJheU9iamVjdE9FUy5jcHAnLAogICAgICAgICAgICAgJzwoUFJPRFVDVF9E
SVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNXZWJHTFZlcnRleEFycmF5T2JqZWN0T0VTLmgn
LAorICAgICAgICAgICAgJzwoUFJPRFVDVF9ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNX
ZWJLaXRBbmltYXRpb24uY3BwJywKKyAgICAgICAgICAgICc8KFBST0RVQ1RfRElSKS9EZXJpdmVk
U291cmNlcy9XZWJDb3JlL0pTV2ViS2l0QW5pbWF0aW9uLmgnLAogICAgICAgICAgICAgJzwoUFJP
RFVDVF9ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNXZWJLaXRBbmltYXRpb25FdmVudC5j
cHAnLAogICAgICAgICAgICAgJzwoUFJPRFVDVF9ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUv
SlNXZWJLaXRBbmltYXRpb25FdmVudC5oJywKKyAgICAgICAgICAgICc8KFBST0RVQ1RfRElSKS9E
ZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTV2ViS2l0QW5pbWF0aW9uTGlzdC5jcHAnLAorICAgICAg
ICAgICAgJzwoUFJPRFVDVF9ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNXZWJLaXRBbmlt
YXRpb25MaXN0LmgnLAogICAgICAgICAgICAgJzwoUFJPRFVDVF9ESVIpL0Rlcml2ZWRTb3VyY2Vz
L1dlYkNvcmUvSlNXZWJLaXRDU1NLZXlmcmFtZVJ1bGUuY3BwJywKICAgICAgICAgICAgICc8KFBS
T0RVQ1RfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTV2ViS2l0Q1NTS2V5ZnJhbWVSdWxl
LmgnLAogICAgICAgICAgICAgJzwoUFJPRFVDVF9ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUv
SlNXZWJLaXRDU1NLZXlmcmFtZXNSdWxlLmNwcCcsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnBybyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUucHJvCmluZGV4IDA4ZjA2MzYu
LjgwNjUyZTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUucHJvCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUucHJvCkBAIC0yMDMsNiArMjAzLDcgQEAgdjggewogICAgICAg
ICBiaW5kaW5ncy92OC9jdXN0b20vVjhTdG9yYWdlQ3VzdG9tLmNwcCBcCiAgICAgICAgIGJpbmRp
bmdzL3Y4L2N1c3RvbS9WOFN0eWxlU2hlZXRDdXN0b20uY3BwIFwKICAgICAgICAgYmluZGluZ3Mv
djgvY3VzdG9tL1Y4U3R5bGVTaGVldExpc3RDdXN0b20uY3BwIFwKKyAgICAgICAgYmluZGluZ3Mv
djgvY3VzdG9tL1Y4V2ViS2l0QW5pbWF0aW9uQ3VzdG9tLmNwcCBcCiAgICAgICAgIGJpbmRpbmdz
L3Y4L2N1c3RvbS9WOFdlYktpdENTU01hdHJpeENvbnN0cnVjdG9yLmNwcCBcCiAgICAgICAgIGJp
bmRpbmdzL3Y4L2N1c3RvbS9WOFdlYktpdFBvaW50Q29uc3RydWN0b3IuY3BwIFwKICAgICAgICAg
YmluZGluZ3MvdjgvY3VzdG9tL1Y4V29ya2VyQ29udGV4dEN1c3RvbS5jcHAgXApAQCAtMzMyLDYg
KzMzMyw4IEBAIHY4IHsKICAgICAgICAgYmluZGluZ3MvanMvSlNVaW50MTZBcnJheUN1c3RvbS5j
cHAgXAogICAgICAgICBiaW5kaW5ncy9qcy9KU1VpbnQzMkFycmF5Q3VzdG9tLmNwcCBcCiAgICAg
ICAgIGJpbmRpbmdzL2pzL0pTVWludDhBcnJheUN1c3RvbS5jcHAgXAorICAgICAgICBiaW5kaW5n
cy9qcy9KU1dlYktpdEFuaW1hdGlvbkN1c3RvbS5jcHAgXAorICAgICAgICBiaW5kaW5ncy9qcy9K
U1dlYktpdEFuaW1hdGlvbkxpc3RDdXN0b20uY3BwIFwKICAgICAgICAgYmluZGluZ3MvanMvSlNX
ZWJLaXRDU1NLZXlmcmFtZVJ1bGVDdXN0b20uY3BwIFwKICAgICAgICAgYmluZGluZ3MvanMvSlNX
ZWJLaXRDU1NLZXlmcmFtZXNSdWxlQ3VzdG9tLmNwcCBcCiAgICAgICAgIGJpbmRpbmdzL2pzL0pT
V2ViS2l0Q1NTTWF0cml4Q3VzdG9tLmNwcCBcCkBAIC04NzAsNiArODczLDggQEAgU09VUkNFUyAr
PSBcCiAgICAgcGFnZS9hbmltYXRpb24vQ29tcG9zaXRlQW5pbWF0aW9uLmNwcCBcCiAgICAgcGFn
ZS9hbmltYXRpb24vSW1wbGljaXRBbmltYXRpb24uY3BwIFwKICAgICBwYWdlL2FuaW1hdGlvbi9L
ZXlmcmFtZUFuaW1hdGlvbi5jcHAgXAorICAgIHBhZ2UvYW5pbWF0aW9uL1dlYktpdEFuaW1hdGlv
bi5jcHAgXAorICAgIHBhZ2UvYW5pbWF0aW9uL1dlYktpdEFuaW1hdGlvbkxpc3QuY3BwIFwKICAg
ICBwYWdlL0JhckluZm8uY3BwIFwKICAgICBwYWdlL0Nocm9tZS5jcHAgXAogICAgIHBhZ2UvQ29u
c29sZS5jcHAgXApAQCAtMTc5MCw2ICsxNzk1LDggQEAgSEVBREVSUyArPSBcCiAgICAgcGFnZS9h
bmltYXRpb24vQ29tcG9zaXRlQW5pbWF0aW9uLmggXAogICAgIHBhZ2UvYW5pbWF0aW9uL0ltcGxp
Y2l0QW5pbWF0aW9uLmggXAogICAgIHBhZ2UvYW5pbWF0aW9uL0tleWZyYW1lQW5pbWF0aW9uLmgg
XAorICAgIHBhZ2UvYW5pbWF0aW9uL1dlYktpdEFuaW1hdGlvbi5oIFwKKyAgICBwYWdlL2FuaW1h
dGlvbi9XZWJLaXRBbmltYXRpb25MaXN0LmggXAogICAgIHBhZ2UvQmFySW5mby5oIFwKICAgICBw
YWdlL0Nocm9tZS5oIFwKICAgICBwYWdlL0NvbnNvbGUuaCBcCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCmluZGV4IGQ5YmM3NzEuLjg1OTExNTQgMTAwNzU1
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCisrKyBi
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCkBAIC0yMTY4Niw2
ICsyMTY4Niw2MiBAQAogCQkJCT4KIAkJCTwvRmlsZT4KIAkJCTxGaWxlCisJCQkJUmVsYXRpdmVQ
YXRoPSIkKENvbmZpZ3VyYXRpb25CdWlsZERpcilcb2JqXCQoUHJvamVjdE5hbWUpXERlcml2ZWRT
b3VyY2VzXEpTV2ViS2l0QW5pbWF0aW9uLmNwcCIKKwkJCQk+CisJCQkJPEZpbGVDb25maWd1cmF0
aW9uCisJCQkJCU5hbWU9IkRlYnVnfFdpbjMyIgorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1
ZSIKKwkJCQkJPgorCQkJCQk8VG9vbAorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJ
CQkJLz4KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJCTxGaWxlQ29uZmlndXJhdGlvbgor
CQkJCQlOYW1lPSJSZWxlYXNlfFdpbjMyIgorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIK
KwkJCQkJPgorCQkJCQk8VG9vbAorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJ
Lz4KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJ
CQlOYW1lPSJEZWJ1Z19DYWlyb19DRkxpdGV8V2luMzIiCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxk
PSJ0cnVlIgorCQkJCQk+CisJCQkJCTxUb29sCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29s
IgorCQkJCQkvPgorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJPEZpbGVDb25maWd1cmF0
aW9uCisJCQkJCU5hbWU9IlJlbGVhc2VfQ2Fpcm9fQ0ZMaXRlfFdpbjMyIgorCQkJCQlFeGNsdWRl
ZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJPgorCQkJCQk8VG9vbAorCQkJCQkJTmFtZT0iVkNDTENv
bXBpbGVyVG9vbCIKKwkJCQkJLz4KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJCTxGaWxl
Q29uZmlndXJhdGlvbgorCQkJCQlOYW1lPSJEZWJ1Z19BbGx8V2luMzIiCisJCQkJCUV4Y2x1ZGVk
RnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQk+CisJCQkJCTxUb29sCisJCQkJCQlOYW1lPSJWQ0NMQ29t
cGlsZXJUb29sIgorCQkJCQkvPgorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJPEZpbGVD
b25maWd1cmF0aW9uCisJCQkJCU5hbWU9IlJlbGVhc2VfTFRDR3xXaW4zMiIKKwkJCQkJRXhjbHVk
ZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCT4KKwkJCQkJPFRvb2wKKwkJCQkJCU5hbWU9IlZDQ0xD
b21waWxlclRvb2wiCisJCQkJCS8+CisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCTwvRmls
ZT4KKwkJCTxGaWxlCisJCQkJUmVsYXRpdmVQYXRoPSIkKENvbmZpZ3VyYXRpb25CdWlsZERpcilc
b2JqXCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2VzXEpTV2ViS2l0QW5pbWF0aW9uLmgiCisJ
CQkJPgorCQkJPC9GaWxlPgorCQkJPEZpbGUKIAkJCQlSZWxhdGl2ZVBhdGg9IiQoQ29uZmlndXJh
dGlvbkJ1aWxkRGlyKVxvYmpcJChQcm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNcSlNXZWJLaXRB
bmltYXRpb25FdmVudC5jcHAiCiAJCQkJPgogCQkJCTxGaWxlQ29uZmlndXJhdGlvbgpAQCAtMjE3
NDIsNiArMjE3OTgsNjIgQEAKIAkJCQk+CiAJCQk8L0ZpbGU+CiAJCQk8RmlsZQorCQkJCVJlbGF0
aXZlUGF0aD0iJChDb25maWd1cmF0aW9uQnVpbGREaXIpXG9ialwkKFByb2plY3ROYW1lKVxEZXJp
dmVkU291cmNlc1xKU1dlYktpdEFuaW1hdGlvbkxpc3QuY3BwIgorCQkJCT4KKwkJCQk8RmlsZUNv
bmZpZ3VyYXRpb24KKwkJCQkJTmFtZT0iRGVidWd8V2luMzIiCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1
aWxkPSJ0cnVlIgorCQkJCQk+CisJCQkJCTxUb29sCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJU
b29sIgorCQkJCQkvPgorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJPEZpbGVDb25maWd1
cmF0aW9uCisJCQkJCU5hbWU9IlJlbGVhc2V8V2luMzIiCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxk
PSJ0cnVlIgorCQkJCQk+CisJCQkJCTxUb29sCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29s
IgorCQkJCQkvPgorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJPEZpbGVDb25maWd1cmF0
aW9uCisJCQkJCU5hbWU9IkRlYnVnX0NhaXJvX0NGTGl0ZXxXaW4zMiIKKwkJCQkJRXhjbHVkZWRG
cm9tQnVpbGQ9InRydWUiCisJCQkJCT4KKwkJCQkJPFRvb2wKKwkJCQkJCU5hbWU9IlZDQ0xDb21w
aWxlclRvb2wiCisJCQkJCS8+CisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCQk8RmlsZUNv
bmZpZ3VyYXRpb24KKwkJCQkJTmFtZT0iUmVsZWFzZV9DYWlyb19DRkxpdGV8V2luMzIiCisJCQkJ
CUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQk+CisJCQkJCTxUb29sCisJCQkJCQlOYW1l
PSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkvPgorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJ
CQkJPEZpbGVDb25maWd1cmF0aW9uCisJCQkJCU5hbWU9IkRlYnVnX0FsbHxXaW4zMiIKKwkJCQkJ
RXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCT4KKwkJCQkJPFRvb2wKKwkJCQkJCU5hbWU9
IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCS8+CisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJ
CQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJTmFtZT0iUmVsZWFzZV9MVENHfFdpbjMyIgorCQkJ
CQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJPgorCQkJCQk8VG9vbAorCQkJCQkJTmFt
ZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJLz4KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgor
CQkJPC9GaWxlPgorCQkJPEZpbGUKKwkJCQlSZWxhdGl2ZVBhdGg9IiQoQ29uZmlndXJhdGlvbkJ1
aWxkRGlyKVxvYmpcJChQcm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNcSlNXZWJLaXRBbmltYXRp
b25MaXN0LmgiCisJCQkJPgorCQkJPC9GaWxlPgorCQkJPEZpbGUKIAkJCQlSZWxhdGl2ZVBhdGg9
IiQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxvYmpcJChQcm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJj
ZXNcSlNXZWJLaXRDU1NLZXlmcmFtZVJ1bGUuY3BwIgogCQkJCT4KIAkJCQk8RmlsZUNvbmZpZ3Vy
YXRpb24KQEAgLTI0NzM0LDYgKzI0ODQ2LDIyIEBACiAJCQkJPgogCQkJPC9GaWxlPgogCQkJPEZp
bGUKKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHBhZ2VcYW5pbWF0aW9uXFdlYktpdEFuaW1hdGlvbi5j
cHAiCisJCQkJPgorCQkJPC9GaWxlPgorCQkJPEZpbGUKKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHBh
Z2VcYW5pbWF0aW9uXFdlYktpdEFuaW1hdGlvbi5oIgorCQkJCT4KKwkJCTwvRmlsZT4KKwkJCTxG
aWxlCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxwYWdlXGFuaW1hdGlvblxXZWJLaXRBbmltYXRpb25M
aXN0LmNwcCIKKwkJCQk+CisJCQk8L0ZpbGU+CisJCQk8RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0i
Li5ccGFnZVxhbmltYXRpb25cV2ViS2l0QW5pbWF0aW9uTGlzdC5oIgorCQkJCT4KKwkJCTwvRmls
ZT4KKwkJCTxGaWxlCiAJCQkJUmVsYXRpdmVQYXRoPSIuLlxwYWdlXExvY2F0aW9uLmNwcCIKIAkJ
CQk+CiAJCQk8L0ZpbGU+CkBAIC02MjEzMyw2ICs2MjI2MSwxMTAgQEAKIAkJCQkJPC9GaWxlQ29u
ZmlndXJhdGlvbj4KIAkJCQk8L0ZpbGU+CiAJCQkJPEZpbGUKKwkJCQkJUmVsYXRpdmVQYXRoPSIu
LlxiaW5kaW5nc1xqc1xKU1dlYktpdEFuaW1hdGlvbkN1c3RvbS5jcHAiCisJCQkJCT4KKwkJCQkJ
PEZpbGVDb25maWd1cmF0aW9uCisJCQkJCQlOYW1lPSJEZWJ1Z3xXaW4zMiIKKwkJCQkJCUV4Y2x1
ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQkJPgorCQkJCQkJPFRvb2wKKwkJCQkJCQlOYW1lPSJW
Q0NMQ29tcGlsZXJUb29sIgorCQkJCQkJLz4KKwkJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJ
CQkJPEZpbGVDb25maWd1cmF0aW9uCisJCQkJCQlOYW1lPSJSZWxlYXNlfFdpbjMyIgorCQkJCQkJ
RXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCQk+CisJCQkJCQk8VG9vbAorCQkJCQkJCU5h
bWU9IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCQkvPgorCQkJCQk8L0ZpbGVDb25maWd1cmF0aW9u
PgorCQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJCU5hbWU9IkRlYnVnX0NhaXJvX0NGTGl0
ZXxXaW4zMiIKKwkJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQkJPgorCQkJCQkJ
PFRvb2wKKwkJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkJLz4KKwkJCQkJPC9G
aWxlQ29uZmlndXJhdGlvbj4KKwkJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJCQkJCQlOYW1lPSJS
ZWxlYXNlX0NhaXJvX0NGTGl0ZXxXaW4zMiIKKwkJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVl
IgorCQkJCQkJPgorCQkJCQkJPFRvb2wKKwkJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgor
CQkJCQkJLz4KKwkJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCQkJPEZpbGVDb25maWd1cmF0
aW9uCisJCQkJCQlOYW1lPSJEZWJ1Z19BbGx8V2luMzIiCisJCQkJCQlFeGNsdWRlZEZyb21CdWls
ZD0idHJ1ZSIKKwkJCQkJCT4KKwkJCQkJCTxUb29sCisJCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVy
VG9vbCIKKwkJCQkJCS8+CisJCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJCTxGaWxlQ29u
ZmlndXJhdGlvbgorCQkJCQkJTmFtZT0iUmVsZWFzZV9MVENHfFdpbjMyIgorCQkJCQkJRXhjbHVk
ZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCQk+CisJCQkJCQk8VG9vbAorCQkJCQkJCU5hbWU9IlZD
Q0xDb21waWxlclRvb2wiCisJCQkJCQkvPgorCQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJ
CTwvRmlsZT4KKwkJCQk8RmlsZQorCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGJpbmRpbmdzXGpzXEpT
V2ViS2l0QW5pbWF0aW9uTGlzdEN1c3RvbS5jcHAiCisJCQkJCT4KKwkJCQkJPEZpbGVDb25maWd1
cmF0aW9uCisJCQkJCQlOYW1lPSJEZWJ1Z3xXaW4zMiIKKwkJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxk
PSJ0cnVlIgorCQkJCQkJPgorCQkJCQkJPFRvb2wKKwkJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJU
b29sIgorCQkJCQkJLz4KKwkJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCQkJPEZpbGVDb25m
aWd1cmF0aW9uCisJCQkJCQlOYW1lPSJSZWxlYXNlfFdpbjMyIgorCQkJCQkJRXhjbHVkZWRGcm9t
QnVpbGQ9InRydWUiCisJCQkJCQk+CisJCQkJCQk8VG9vbAorCQkJCQkJCU5hbWU9IlZDQ0xDb21w
aWxlclRvb2wiCisJCQkJCQkvPgorCQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJCQk8Rmls
ZUNvbmZpZ3VyYXRpb24KKwkJCQkJCU5hbWU9IkRlYnVnX0NhaXJvX0NGTGl0ZXxXaW4zMiIKKwkJ
CQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQkJPgorCQkJCQkJPFRvb2wKKwkJCQkJ
CQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkJLz4KKwkJCQkJPC9GaWxlQ29uZmlndXJh
dGlvbj4KKwkJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJCQkJCQlOYW1lPSJSZWxlYXNlX0NhaXJv
X0NGTGl0ZXxXaW4zMiIKKwkJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQkJPgor
CQkJCQkJPFRvb2wKKwkJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkJLz4KKwkJ
CQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJCQkJCQlO
YW1lPSJEZWJ1Z19BbGx8V2luMzIiCisJCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJ
CQkJCT4KKwkJCQkJCTxUb29sCisJCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJ
CS8+CisJCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJCTxGaWxlQ29uZmlndXJhdGlvbgor
CQkJCQkJTmFtZT0iUmVsZWFzZV9MVENHfFdpbjMyIgorCQkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9
InRydWUiCisJCQkJCQk+CisJCQkJCQk8VG9vbAorCQkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRv
b2wiCisJCQkJCQkvPgorCQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJCTwvRmlsZT4KKwkJ
CQk8RmlsZQogCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGJpbmRpbmdzXGpzXEpTV2ViS2l0Q1NTS2V5
ZnJhbWVSdWxlQ3VzdG9tLmNwcCIKIAkJCQkJPgogCQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
aiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRl
eCA4ODVkZDcwLi45MjBlOTZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC03NjksNiArNzY5LDIwIEBACiAJCTMxNkZFMTE4MEU2
RTFEQTcwMEJGNjA4OCAvKiBJbXBsaWNpdEFuaW1hdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzE2RkUxMEUwRTZFMURBNzAwQkY2MDg4IC8qIElt
cGxpY2l0QW5pbWF0aW9uLmggKi87IH07CiAJCTMxNkZFMTE5MEU2RTFEQTcwMEJGNjA4OCAvKiBL
ZXlmcmFtZUFuaW1hdGlvbi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAzMTZGRTEwRjBFNkUxREE3MDBCRjYwODggLyogS2V5ZnJhbWVBbmltYXRpb24u
Y3BwICovOyB9OwogCQkzMTZGRTExQTBFNkUxREE3MDBCRjYwODggLyogS2V5ZnJhbWVBbmltYXRp
b24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMxNkZF
MTEwMEU2RTFEQTcwMEJGNjA4OCAvKiBLZXlmcmFtZUFuaW1hdGlvbi5oICovOyB9OworCQkzMTk0
NjE0ODEzMDFGMkEzMDA0QkIzRjggLyogV2ViS2l0QW5pbWF0aW9uLmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMxOTQ2MTQ2MTMwMUYyQTMwMDRCQjNG
OCAvKiBXZWJLaXRBbmltYXRpb24uY3BwICovOyB9OworCQkzMTk0NjE0OTEzMDFGMkEzMDA0QkIz
RjggLyogV2ViS2l0QW5pbWF0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSAzMTk0NjE0NzEzMDFGMkEzMDA0QkIzRjggLyogV2ViS2l0QW5pbWF0aW9u
LmggKi87IH07CisJCTMxOTQ2MTYyMTMwMjBCMjAwMDRCQjNGOCAvKiBKU1dlYktpdEFuaW1hdGlv
bi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMTk0
NjE2MDEzMDIwQjIwMDA0QkIzRjggLyogSlNXZWJLaXRBbmltYXRpb24uY3BwICovOyB9OworCQkz
MTk0NjE2MzEzMDIwQjIwMDA0QkIzRjggLyogSlNXZWJLaXRBbmltYXRpb24uaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMxOTQ2MTYxMTMwMjBCMjAwMDRC
QjNGOCAvKiBKU1dlYktpdEFuaW1hdGlvbi5oICovOyB9OworCQkzMTk0NjE2QTEzMDIwQjY2MDA0
QkIzRjggLyogRE9NV2ViS2l0QW5pbWF0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAzMTk0NjE2ODEzMDIwQjY2MDA0QkIzRjggLyogRE9NV2ViS2l0
QW5pbWF0aW9uLmggKi87IH07CisJCTMxOTQ2MTZCMTMwMjBCNjYwMDRCQjNGOCAvKiBET01XZWJL
aXRBbmltYXRpb24ubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAzMTk0NjE2OTEzMDIwQjY2MDA0QkIzRjggLyogRE9NV2ViS2l0QW5pbWF0aW9uLm1tICov
OyB9OworCQkzMTk0NjE4RjEzMDIxMDY0MDA0QkIzRjggLyogV2ViS2l0QW5pbWF0aW9uTGlzdC5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzE5NDYxOEQx
MzAyMTA2NDAwNEJCM0Y4IC8qIFdlYktpdEFuaW1hdGlvbkxpc3QuaCAqLzsgfTsKKwkJMzE5NDYx
OTAxMzAyMTA2NDAwNEJCM0Y4IC8qIFdlYktpdEFuaW1hdGlvbkxpc3QuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzE5NDYxOEUxMzAyMTA2NDAwNEJC
M0Y4IC8qIFdlYktpdEFuaW1hdGlvbkxpc3QuY3BwICovOyB9OworCQkzMTk0NjFGRTEzMDIyQkI4
MDA0QkIzRjggLyogSlNXZWJLaXRBbmltYXRpb25MaXN0LmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMxOTQ2MUZDMTMwMjJCQjgwMDRCQjNGOCAvKiBK
U1dlYktpdEFuaW1hdGlvbkxpc3QuY3BwICovOyB9OworCQkzMTk0NjFGRjEzMDIyQkI4MDA0QkIz
RjggLyogSlNXZWJLaXRBbmltYXRpb25MaXN0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAzMTk0NjFGRDEzMDIyQkI4MDA0QkIzRjggLyogSlNXZWJLaXRB
bmltYXRpb25MaXN0LmggKi87IH07CisJCTMxOTQ2MjA0MTMwMjJCRjEwMDRCQjNGOCAvKiBET01X
ZWJLaXRBbmltYXRpb25MaXN0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAzMTk0NjIwMjEzMDIyQkYxMDA0QkIzRjggLyogRE9NV2ViS2l0QW5pbWF0aW9u
TGlzdC5oICovOyB9OworCQkzMTk0NjIwNTEzMDIyQkYxMDA0QkIzRjggLyogRE9NV2ViS2l0QW5p
bWF0aW9uTGlzdC5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDMxOTQ2MjAzMTMwMjJCRjEwMDRCQjNGOCAvKiBET01XZWJLaXRBbmltYXRpb25MaXN0Lm1t
ICovOyB9OworCQkzMTk0NjIzMjEzMDIyRjY1MDA0QkIzRjggLyogSlNXZWJLaXRBbmltYXRpb25M
aXN0Q3VzdG9tLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDMxOTQ2MjMxMTMwMjJGNjUwMDRCQjNGOCAvKiBKU1dlYktpdEFuaW1hdGlvbkxpc3RDdXN0
b20uY3BwICovOyB9OworCQkzMTlFNjg4NzEzMjdDOTExMDA0QUM5MUEgLyogSlNXZWJLaXRBbmlt
YXRpb25DdXN0b20uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMzE5RTY4ODYxMzI3QzkxMTAwNEFDOTFBIC8qIEpTV2ViS2l0QW5pbWF0aW9uQ3VzdG9t
LmNwcCAqLzsgfTsKIAkJMzFDMEZGMjEwRTRDRUI2RTAwN0Q2RkU1IC8qIFdlYktpdEFuaW1hdGlv
bkV2ZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDMxQzBGRjFCMEU0Q0VCNkUwMDdENkZFNSAvKiBXZWJLaXRBbmltYXRpb25FdmVudC5jcHAgKi87
IH07CiAJCTMxQzBGRjIyMEU0Q0VCNkUwMDdENkZFNSAvKiBXZWJLaXRBbmltYXRpb25FdmVudC5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzFDMEZGMUMw
RTRDRUI2RTAwN0Q2RkU1IC8qIFdlYktpdEFuaW1hdGlvbkV2ZW50LmggKi87IH07CiAJCTMxQzBG
RjI0MEU0Q0VCNkUwMDdENkZFNSAvKiBXZWJLaXRUcmFuc2l0aW9uRXZlbnQuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzFDMEZGMUUwRTRDRUI2RTAw
N0Q2RkU1IC8qIFdlYktpdFRyYW5zaXRpb25FdmVudC5jcHAgKi87IH07CkBAIC03MTUxLDYgKzcx
NjUsMjIgQEAKIAkJMzE2RkUxMEUwRTZFMURBNzAwQkY2MDg4IC8qIEltcGxpY2l0QW5pbWF0aW9u
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IEltcGxpY2l0QW5pbWF0aW9uLmg7
IHBhdGggPSBhbmltYXRpb24vSW1wbGljaXRBbmltYXRpb24uaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJMzE2RkUxMEYwRTZFMURBNzAwQkY2MDg4IC8qIEtleWZyYW1lQW5pbWF0aW9u
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IEtleWZyYW1lQW5pbWF0
aW9uLmNwcDsgcGF0aCA9IGFuaW1hdGlvbi9LZXlmcmFtZUFuaW1hdGlvbi5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTMxNkZFMTEwMEU2RTFEQTcwMEJGNjA4OCAvKiBLZXlmcmFt
ZUFuaW1hdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBLZXlmcmFtZUFu
aW1hdGlvbi5oOyBwYXRoID0gYW5pbWF0aW9uL0tleWZyYW1lQW5pbWF0aW9uLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTMxOTQ2MTM4MTMwMUVGNEMwMDRCQjNGOCAvKiBXZWJLaXRB
bmltYXRpb24uaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgbmFtZSA9IFdlYktpdEFuaW1hdGlvbi5pZGw7
IHBhdGggPSBhbmltYXRpb24vV2ViS2l0QW5pbWF0aW9uLmlkbDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJMzE5NDYxNDYxMzAxRjJBMzAwNEJCM0Y4IC8qIFdlYktpdEFuaW1hdGlvbi5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBXZWJLaXRBbmltYXRpb24u
Y3BwOyBwYXRoID0gYW5pbWF0aW9uL1dlYktpdEFuaW1hdGlvbi5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCTMxOTQ2MTQ3MTMwMUYyQTMwMDRCQjNGOCAvKiBXZWJLaXRBbmltYXRp
b24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gV2ViS2l0QW5pbWF0aW9uLmg7
IHBhdGggPSBhbmltYXRpb24vV2ViS2l0QW5pbWF0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCTMxOTQ2MTYwMTMwMjBCMjAwMDRCQjNGOCAvKiBKU1dlYktpdEFuaW1hdGlvbi5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1dlYktpdEFuaW1hdGlv
bi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTMxOTQ2MTYxMTMwMjBCMjAwMDRC
QjNGOCAvKiBKU1dlYktpdEFuaW1hdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBKU1dlYktpdEFuaW1hdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkz
MTk0NjE2ODEzMDIwQjY2MDA0QkIzRjggLyogRE9NV2ViS2l0QW5pbWF0aW9uLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERPTVdlYktpdEFuaW1hdGlvbi5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQkzMTk0NjE2OTEzMDIwQjY2MDA0QkIzRjggLyogRE9NV2ViS2l0
QW5pbWF0aW9uLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gRE9N
V2ViS2l0QW5pbWF0aW9uLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkzMTk0NjE3
ODEzMDIxMDA4MDA0QkIzRjggLyogV2ViS2l0QW5pbWF0aW9uTGlzdC5pZGwgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0
ZXh0OyBuYW1lID0gV2ViS2l0QW5pbWF0aW9uTGlzdC5pZGw7IHBhdGggPSBhbmltYXRpb24vV2Vi
S2l0QW5pbWF0aW9uTGlzdC5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTMxOTQ2
MThEMTMwMjEwNjQwMDRCQjNGOCAvKiBXZWJLaXRBbmltYXRpb25MaXN0LmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFdlYktpdEFuaW1hdGlvbkxpc3QuaDsgcGF0aCA9IGFuaW1h
dGlvbi9XZWJLaXRBbmltYXRpb25MaXN0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CTMxOTQ2MThFMTMwMjEwNjQwMDRCQjNGOCAvKiBXZWJLaXRBbmltYXRpb25MaXN0LmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IFdlYktpdEFuaW1hdGlvbkxpc3QuY3Bw
OyBwYXRoID0gYW5pbWF0aW9uL1dlYktpdEFuaW1hdGlvbkxpc3QuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQkzMTk0NjFGQzEzMDIyQkI4MDA0QkIzRjggLyogSlNXZWJLaXRBbmlt
YXRpb25MaXN0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTV2Vi
S2l0QW5pbWF0aW9uTGlzdC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTMxOTQ2
MUZEMTMwMjJCQjgwMDRCQjNGOCAvKiBKU1dlYktpdEFuaW1hdGlvbkxpc3QuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNXZWJLaXRBbmltYXRpb25MaXN0Lmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTMxOTQ2MjAyMTMwMjJCRjEwMDRCQjNGOCAvKiBET01XZWJL
aXRBbmltYXRpb25MaXN0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERPTVdl
YktpdEFuaW1hdGlvbkxpc3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMzE5NDYy
MDMxMzAyMkJGMTAwNEJCM0Y4IC8qIERPTVdlYktpdEFuaW1hdGlvbkxpc3QubW0gKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBET01XZWJLaXRBbmltYXRpb25MaXN0Lm1t
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkzMTk0NjIzMTEzMDIyRjY1MDA0QkIzRjgg
LyogSlNXZWJLaXRBbmltYXRpb25MaXN0Q3VzdG9tLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IEpTV2ViS2l0QW5pbWF0aW9uTGlzdEN1c3RvbS5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTMxOUU2ODg2MTMyN0M5MTEwMDRBQzkxQSAvKiBKU1dlYktp
dEFuaW1hdGlvbkN1c3RvbS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBKU1dlYktpdEFuaW1hdGlvbkN1c3RvbS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTMxQzBGRjFCMEU0Q0VCNkUwMDdENkZFNSAvKiBXZWJLaXRBbmltYXRpb25FdmVudC5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJLaXRBbmltYXRpb25FdmVu
dC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTMxQzBGRjFDMEU0Q0VCNkUwMDdE
NkZFNSAvKiBXZWJLaXRBbmltYXRpb25FdmVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBXZWJLaXRBbmltYXRpb25FdmVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQkzMUMwRkYxRDBFNENFQjZFMDA3RDZGRTUgLyogV2ViS2l0QW5pbWF0aW9uRXZlbnQuaWRs
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFdlYktpdEFuaW1hdGlvbkV2ZW50LmlkbDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTEzMjQwLDYgKzEzMjcwLDEyIEBACiAJCQkJMzE2RkUx
MEUwRTZFMURBNzAwQkY2MDg4IC8qIEltcGxpY2l0QW5pbWF0aW9uLmggKi8sCiAJCQkJMzE2RkUx
MEYwRTZFMURBNzAwQkY2MDg4IC8qIEtleWZyYW1lQW5pbWF0aW9uLmNwcCAqLywKIAkJCQkzMTZG
RTExMDBFNkUxREE3MDBCRjYwODggLyogS2V5ZnJhbWVBbmltYXRpb24uaCAqLywKKwkJCQkzMTk0
NjE0NjEzMDFGMkEzMDA0QkIzRjggLyogV2ViS2l0QW5pbWF0aW9uLmNwcCAqLywKKwkJCQkzMTk0
NjE0NzEzMDFGMkEzMDA0QkIzRjggLyogV2ViS2l0QW5pbWF0aW9uLmggKi8sCisJCQkJMzE5NDYx
MzgxMzAxRUY0QzAwNEJCM0Y4IC8qIFdlYktpdEFuaW1hdGlvbi5pZGwgKi8sCisJCQkJMzE5NDYx
OEUxMzAyMTA2NDAwNEJCM0Y4IC8qIFdlYktpdEFuaW1hdGlvbkxpc3QuY3BwICovLAorCQkJCTMx
OTQ2MThEMTMwMjEwNjQwMDRCQjNGOCAvKiBXZWJLaXRBbmltYXRpb25MaXN0LmggKi8sCisJCQkJ
MzE5NDYxNzgxMzAyMTAwODAwNEJCM0Y4IC8qIFdlYktpdEFuaW1hdGlvbkxpc3QuaWRsICovLAog
CQkJKTsKIAkJCW5hbWUgPSBhbmltYXRpb247CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwpA
QCAtMTUwMTQsNiArMTUwNTAsMTAgQEAKIAkJCQk4NUJBNEQwQTBBQTY4ODY4MDA4ODA1MkQgLyog
RE9NSFRNTFVMaXN0RWxlbWVudC5tbSAqLywKIAkJCQkxNUM3NzBBNDEwMEQ0MUNEMDA1QkEyNjcg
LyogRE9NVmFsaWRpdHlTdGF0ZS5oICovLAogCQkJCTE1Qzc3MEEzMTAwRDQxQ0QwMDVCQTI2NyAv
KiBET01WYWxpZGl0eVN0YXRlLm1tICovLAorCQkJCTMxOTQ2MTY4MTMwMjBCNjYwMDRCQjNGOCAv
KiBET01XZWJLaXRBbmltYXRpb24uaCAqLywKKwkJCQkzMTk0NjE2OTEzMDIwQjY2MDA0QkIzRjgg
LyogRE9NV2ViS2l0QW5pbWF0aW9uLm1tICovLAorCQkJCTMxOTQ2MjAyMTMwMjJCRjEwMDRCQjNG
OCAvKiBET01XZWJLaXRBbmltYXRpb25MaXN0LmggKi8sCisJCQkJMzE5NDYyMDMxMzAyMkJGMTAw
NEJCM0Y4IC8qIERPTVdlYktpdEFuaW1hdGlvbkxpc3QubW0gKi8sCiAJCQkpOwogCQkJbmFtZSA9
IEhUTUw7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwpAQCAtMTYzNDEsNiArMTYzODEsMTAg
QEAKIAkJCQkwQzQ1MzQyNjEwQ0RCQkZBMDA4NjkxNTcgLyogSlNXZWJHTFVuaWZvcm1Mb2NhdGlv
bi5oICovLAogCQkJCTc3RUY2MkYxMTJGOURCNzQwMEM3N0JEMiAvKiBKU1dlYkdMVmVydGV4QXJy
YXlPYmplY3RPRVMuY3BwICovLAogCQkJCTc3RUY2MkYyMTJGOURCNzQwMEM3N0JEMiAvKiBKU1dl
YkdMVmVydGV4QXJyYXlPYmplY3RPRVMuaCAqLywKKwkJCQkzMTk0NjE2MDEzMDIwQjIwMDA0QkIz
RjggLyogSlNXZWJLaXRBbmltYXRpb24uY3BwICovLAorCQkJCTMxOTQ2MTYxMTMwMjBCMjAwMDRC
QjNGOCAvKiBKU1dlYktpdEFuaW1hdGlvbi5oICovLAorCQkJCTMxOTQ2MUZDMTMwMjJCQjgwMDRC
QjNGOCAvKiBKU1dlYktpdEFuaW1hdGlvbkxpc3QuY3BwICovLAorCQkJCTMxOTQ2MUZEMTMwMjJC
QjgwMDRCQjNGOCAvKiBKU1dlYktpdEFuaW1hdGlvbkxpc3QuaCAqLywKIAkJCQk5M0YxRDVCRTEy
RDUzMzU2MDA4MzJCRUMgLyogSlNXZWJLaXRMb3NlQ29udGV4dC5jcHAgKi8sCiAJCQkJOTNGMUQ1
QkYxMkQ1MzM1NjAwODMyQkVDIC8qIEpTV2ViS2l0TG9zZUNvbnRleHQuaCAqLywKIAkJCSk7CkBA
IC0xODA0MSw2ICsxODA4NSw4IEBACiAJCQkJNDlFRUNGNzYxMDUwOEQ5QzAwMDk5RkFCIC8qIEpT
VWludDMyQXJyYXlDdXN0b20uY3BwICovLAogCQkJCTQ5RUVDRjc1MTA1MDhEOUMwMDA5OUZBQiAv
KiBKU1VpbnQ4QXJyYXlDdXN0b20uY3BwICovLAogCQkJCTQ5RUVEMTRDMTA1MTk3MUEwMDA5OUZB
QiAvKiBKU1dlYkdMUmVuZGVyaW5nQ29udGV4dEN1c3RvbS5jcHAgKi8sCisJCQkJMzE5RTY4ODYx
MzI3QzkxMTAwNEFDOTFBIC8qIEpTV2ViS2l0QW5pbWF0aW9uQ3VzdG9tLmNwcCAqLywKKwkJCQkz
MTk0NjIzMTEzMDIyRjY1MDA0QkIzRjggLyogSlNXZWJLaXRBbmltYXRpb25MaXN0Q3VzdG9tLmNw
cCAqLywKIAkJCQlFMUFEMTRDNDEyOTczNTQ5MDBBQ0E5ODkgLyogSlNXZWJLaXRDU1NLZXlmcmFt
ZVJ1bGVDdXN0b20uY3BwICovLAogCQkJCUUxQUQxNEI0MTI5NzM0Q0EwMEFDQTk4OSAvKiBKU1dl
YktpdENTU0tleWZyYW1lc1J1bGVDdXN0b20uY3BwICovLAogCQkJCUJDMjc1QjdDMTFDNUQyMzUw
MEM5MjA2QyAvKiBKU1dlYktpdENTU01hdHJpeEN1c3RvbS5jcHAgKi8sCkBAIC0yMjU3Nyw2ICsy
MjYyMywxMiBAQAogCQkJCTU5OEQ3N0RGMTMyNTQxRkEwMDc2MUIyMiAvKiBKYXZhQXJyYXlKU0Mu
aCBpbiBIZWFkZXJzICovLAogCQkJCTU5OEQ3N0UzMTMyNTQyMEUwMDc2MUIyMiAvKiBKYXZhRmll
bGRKU0MuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDRDNGOTgzMTMyNkM5MzcwMDA5OEE2MCAvKiBU
ZXh0T3JpZW50YXRpb24uaCBpbiBIZWFkZXJzICovLAorCQkJCTMxOTQ2MTQ5MTMwMUYyQTMwMDRC
QjNGOCAvKiBXZWJLaXRBbmltYXRpb24uaCBpbiBIZWFkZXJzICovLAorCQkJCTMxOTQ2MTYzMTMw
MjBCMjAwMDRCQjNGOCAvKiBKU1dlYktpdEFuaW1hdGlvbi5oIGluIEhlYWRlcnMgKi8sCisJCQkJ
MzE5NDYxNkExMzAyMEI2NjAwNEJCM0Y4IC8qIERPTVdlYktpdEFuaW1hdGlvbi5oIGluIEhlYWRl
cnMgKi8sCisJCQkJMzE5NDYxOEYxMzAyMTA2NDAwNEJCM0Y4IC8qIFdlYktpdEFuaW1hdGlvbkxp
c3QuaCBpbiBIZWFkZXJzICovLAorCQkJCTMxOTQ2MUZGMTMwMjJCQjgwMDRCQjNGOCAvKiBKU1dl
YktpdEFuaW1hdGlvbkxpc3QuaCBpbiBIZWFkZXJzICovLAorCQkJCTMxOTQ2MjA0MTMwMjJCRjEw
MDRCQjNGOCAvKiBET01XZWJLaXRBbmltYXRpb25MaXN0LmggaW4gSGVhZGVycyAqLywKIAkJCSk7
CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKQEAgLTI1
MjMyLDYgKzI1Mjg0LDE0IEBACiAJCQkJODE1RTYxNjcxMzI1ODdBQTAwQjYyMkIwIC8qIERhdGFU
cmFuc2Zlckl0ZW0uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJODEwMkM1ODgxMzI1QkIxMTAwRERF
NjdBIC8qIFN0cmluZ0NhbGxiYWNrLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTVENEY1MURGMTMy
NzI1NDgwMDE2RjU0MSAvKiBIVE1MQ29udmVydGVyLm1tIGluIFNvdXJjZXMgKi8sCisJCQkJMzE5
NDYxNDgxMzAxRjJBMzAwNEJCM0Y4IC8qIFdlYktpdEFuaW1hdGlvbi5jcHAgaW4gU291cmNlcyAq
LywKKwkJCQkzMTk0NjE2MjEzMDIwQjIwMDA0QkIzRjggLyogSlNXZWJLaXRBbmltYXRpb24uY3Bw
IGluIFNvdXJjZXMgKi8sCisJCQkJMzE5NDYxNkIxMzAyMEI2NjAwNEJCM0Y4IC8qIERPTVdlYktp
dEFuaW1hdGlvbi5tbSBpbiBTb3VyY2VzICovLAorCQkJCTMxOTQ2MTkwMTMwMjEwNjQwMDRCQjNG
OCAvKiBXZWJLaXRBbmltYXRpb25MaXN0LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTMxOTQ2MUZF
MTMwMjJCQjgwMDRCQjNGOCAvKiBKU1dlYktpdEFuaW1hdGlvbkxpc3QuY3BwIGluIFNvdXJjZXMg
Ki8sCisJCQkJMzE5NDYyMDUxMzAyMkJGMTAwNEJCM0Y4IC8qIERPTVdlYktpdEFuaW1hdGlvbkxp
c3QubW0gaW4gU291cmNlcyAqLywKKwkJCQkzMTk0NjIzMjEzMDIyRjY1MDA0QkIzRjggLyogSlNX
ZWJLaXRBbmltYXRpb25MaXN0Q3VzdG9tLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTMxOUU2ODg3
MTMyN0M5MTEwMDRBQzkxQSAvKiBKU1dlYktpdEFuaW1hdGlvbkN1c3RvbS5jcHAgaW4gU291cmNl
cyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsK
IAkJfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTV2ViS2l0QW5p
bWF0aW9uQ3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTV2ViS2l0QW5p
bWF0aW9uQ3VzdG9tLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44Mzdk
NTM1Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNXZWJL
aXRBbmltYXRpb25DdXN0b20uY3BwCkBAIC0wLDAgKzEsNDQgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTEgQXBwbGUgSW5jLiBBbGwgcmlnaHQgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBgYEFTIElT
JycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCisgKiBD
T05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1Ig
QlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQor
ICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUg
ImNvbmZpZy5oIgorI2luY2x1ZGUgIkpTV2ViS2l0QW5pbWF0aW9uLmgiCisKKyNpbmNsdWRlICJX
ZWJLaXRBbmltYXRpb24uaCIKKwordXNpbmcgbmFtZXNwYWNlIEpTQzsKKworbmFtZXNwYWNlIFdl
YkNvcmUgeworCitKU1ZhbHVlIEpTV2ViS2l0QW5pbWF0aW9uOjppdGVyYXRpb25Db3VudChFeGVj
U3RhdGUqKSBjb25zdAoreworICAgIFdlYktpdEFuaW1hdGlvbiogaW1wID0gaW1wbCgpOworICAg
IGludCBjb3VudCA9IGltcC0+aXRlcmF0aW9uQ291bnQoKTsKKyAgICBpZiAoY291bnQgPT0gQW5p
bWF0aW9uOjpJdGVyYXRpb25Db3VudEluZmluaXRlKQorICAgICAgICByZXR1cm4ganNOdW1iZXIo
SU5GSU5JVFkpOworICAgIHJldHVybiBqc051bWJlcihjb3VudCk7Cit9CisKK30KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTV2ViS2l0QW5pbWF0aW9uTGlzdEN1c3Rv
bS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dlYktpdEFuaW1hdGlvbkxpc3RD
dXN0b20uY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmVhZjc3Y2YKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dlYktpdEFuaW1h
dGlvbkxpc3RDdXN0b20uY3BwCkBAIC0wLDAgKzEsNDcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTEgQXBwbGUgSW5jLiBBbGwgcmlnaHQgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBgYEFTIElTJycg
QU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCisgKiBDT05U
UklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVT
SU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICog
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNv
bmZpZy5oIgorI2luY2x1ZGUgIkpTV2ViS2l0QW5pbWF0aW9uTGlzdC5oIgorCisjaW5jbHVkZSAi
V2ViS2l0QW5pbWF0aW9uTGlzdC5oIgorCit1c2luZyBuYW1lc3BhY2UgSlNDOworCituYW1lc3Bh
Y2UgV2ViQ29yZSB7CisKK3ZvaWQgSlNXZWJLaXRBbmltYXRpb25MaXN0OjptYXJrQ2hpbGRyZW4o
TWFya1N0YWNrJiBtYXJrU3RhY2spCit7CisgICAgQmFzZTo6bWFya0NoaWxkcmVuKG1hcmtTdGFj
ayk7CisKKyAgICBXZWJLaXRBbmltYXRpb25MaXN0KiBsaXN0ID0gaW1wbCgpOworICAgIEpTR2xv
YmFsRGF0YSYgZ2xvYmFsRGF0YSA9ICpIZWFwOjpoZWFwKHRoaXMpLT5nbG9iYWxEYXRhKCk7CisK
KyAgICB1bnNpZ25lZCBsZW5ndGggPSBsaXN0LT5sZW5ndGgoKTsKKyAgICBmb3IgKHVuc2lnbmVk
IGkgPSAwOyBpIDwgbGVuZ3RoOyArK2kpCisgICAgICAgIG1hcmtET01PYmplY3RXcmFwcGVyKG1h
cmtTdGFjaywgZ2xvYmFsRGF0YSwgbGlzdC0+aXRlbShpKSk7Cit9CisKK30KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOFdlYktpdEFuaW1hdGlvbkN1c3Rv
bS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhXZWJLaXRBbmltYXRp
b25DdXN0b20uY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmY2Nzg5Y2IK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhX
ZWJLaXRBbmltYXRpb25DdXN0b20uY3BwCkBAIC0wLDAgKzEsNTAgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMTEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogICogUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIGBg
QVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVCBPV05FUiBPUgor
ICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7
IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNs
dWRlICJjb25maWcuaCIKKworI2luY2x1ZGUgIlY4QmluZGluZy5oIgorI2luY2x1ZGUgIlY4Qmlu
ZGluZ01hY3Jvcy5oIgorI2luY2x1ZGUgIlY4UHJveHkuaCIKKyNpbmNsdWRlICJWOFdlYmtpdEFu
aW1hdGlvbi5oIgorI2luY2x1ZGUgIldlYmtpdEFuaW1hdGlvbi5oIgorCisjaW5jbHVkZSA8djgu
aD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCit2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gVjhXZWJr
aXRBbmltYXRpb246Oml0ZXJhdGlvbkNvdW50QWNjZXNzb3JHZXR0ZXIodjg6OkxvY2FsPHY4OjpT
dHJpbmc+IG5hbWUsIGNvbnN0IHY4OjpBY2Nlc3NvckluZm8mIGluZm8pCit7CisgICAgSU5DX1NU
QVRTKCJET00uV2Via2l0QW5pbWF0aW9uLml0ZXJhdGlvbkNvdW50Ll9nZXQiKTsKKyAgICB2ODo6
SGFuZGxlPHY4OjpPYmplY3Q+IGhvbGRlciA9IGluZm8uSG9sZGVyKCk7CisgICAgV2Via2l0QW5p
bWF0aW9uKiBpbXAgPSBWOFdlYmtpdEFuaW1hdGlvbjo6dG9OYXRpdmUoaG9sZGVyKTsKKyAgICBp
bnQgY291bnQgPSBpbXAtPml0ZXJhdGlvbkNvdW50KCk7CisgICAgaWYgKGNvdW50ID09IEFuaW1h
dGlvbjo6SXRlcmF0aW9uQ291bnRJbmZpbml0ZSkKKyAgICAgICAgcmV0dXJuIHY4OjpOdW1iZXI6
Ok5ldyhJTkZJTklUWSk7CisgICAgcmV0dXJuIHY4OjpOdW1iZXI6Ok5ldyhjb3VudCk7Cit9CisK
K30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9t
L0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCmluZGV4IGI5Y2Iz
YWQuLjhmNTA4YTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKQEAgLTU1LDYgKzU1LDcgQEAKICNp
bmNsdWRlICJSZW5kZXJXaWRnZXQuaCIKICNpbmNsdWRlICJTZXR0aW5ncy5oIgogI2luY2x1ZGUg
IlRleHRJdGVyYXRvci5oIgorI2luY2x1ZGUgIldlYktpdEFuaW1hdGlvbkxpc3QuaCIKICNpbmNs
dWRlICJYTUxOYW1lcy5oIgogI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KIApAQCAtMTg3
NSw0ICsxODc2LDEyIEBAIGJvb2wgRWxlbWVudDo6aXNTcGVsbENoZWNraW5nRW5hYmxlZCgpIGNv
bnN0CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKK1Bhc3NSZWZQdHI8V2ViS2l0QW5pbWF0aW9uTGlz
dD4gRWxlbWVudDo6d2Via2l0R2V0QW5pbWF0aW9ucygpCit7CisgICAgaWYgKCFyZW5kZXJlcigp
KQorICAgICAgICByZXR1cm4gMDsKKworICAgIHJldHVybiByZW5kZXJlcigpLT5hbmltYXRpb25z
KCk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9FbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5oCmluZGV4IDVj
NTRjZTQuLmFiMjBhMDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmgK
KysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuaApAQCAtMzksNiArMzksNyBAQCBjbGFz
cyBET01TdHJpbmdNYXA7CiBjbGFzcyBET01Ub2tlbkxpc3Q7CiBjbGFzcyBFbGVtZW50UmFyZURh
dGE7CiBjbGFzcyBJbnRTaXplOworY2xhc3MgV2ViS2l0QW5pbWF0aW9uTGlzdDsKIAogZW51bSBT
cGVsbGNoZWNrQXR0cmlidXRlU3RhdGUgewogICAgIFNwZWxsY2hlY2tBdHRyaWJ1dGVUcnVlLApA
QCAtMzQ0LDYgKzM0NSw4IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgYm9vbCBpc1NwZWxsQ2hl
Y2tpbmdFbmFibGVkKCkgY29uc3Q7CiAKKyAgICBQYXNzUmVmUHRyPFdlYktpdEFuaW1hdGlvbkxp
c3Q+IHdlYmtpdEdldEFuaW1hdGlvbnMoKTsKKwogcHJvdGVjdGVkOgogICAgIEVsZW1lbnQoY29u
c3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQqIGRvY3VtZW50LCBDb25zdHJ1Y3Rp
b25UeXBlIHR5cGUpCiAgICAgICAgIDogQ29udGFpbmVyTm9kZShkb2N1bWVudCwgdHlwZSkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmlkbCBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9FbGVtZW50LmlkbAppbmRleCA2NTJhNzViLi5mYzI4NjQyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRWxlbWVudC5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1l
bnQuaWRsCkBAIC05Niw2ICs5Niw4IEBAIG1vZHVsZSBjb3JlIHsKICAgICAgICAgdm9pZCBzY3Jv
bGxCeUxpbmVzKGluIGxvbmcgbGluZXMpOwogICAgICAgICB2b2lkIHNjcm9sbEJ5UGFnZXMoaW4g
bG9uZyBwYWdlcyk7CiAKKyAgICAgICAgV2ViS2l0QW5pbWF0aW9uTGlzdCB3ZWJraXRHZXRBbmlt
YXRpb25zKCk7CisKICAgICAgICAgLy8gSFRNTCA1CiAgICAgICAgIE5vZGVMaXN0IGdldEVsZW1l
bnRzQnlDbGFzc05hbWUoaW4gRE9NU3RyaW5nIG5hbWUpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRv
dy5pZGwKaW5kZXggMGYxNDJhNi4uZDNhZDI0NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGFnZS9ET01XaW5kb3cuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93Lmlk
bApAQCAtNjA1LDYgKzYwNSw5IEBAIG1vZHVsZSB3aW5kb3cgewogICAgICAgICBhdHRyaWJ1dGUg
W0NvbmRpdGlvbmFsPVZJREVPLCBFbmFibGVkQXRSdW50aW1lXSBNZWRpYUVycm9yQ29uc3RydWN0
b3IgTWVkaWFFcnJvcjsKICAgICAgICAgYXR0cmlidXRlIFtDb25kaXRpb25hbD1WSURFTywgRW5h
YmxlZEF0UnVudGltZV0gVGltZVJhbmdlc0NvbnN0cnVjdG9yIFRpbWVSYW5nZXM7CiAKKyAgICAg
ICAgYXR0cmlidXRlIFdlYktpdEFuaW1hdGlvbkNvbnN0cnVjdG9yIFdlYktpdEFuaW1hdGlvbjsK
KyAgICAgICAgYXR0cmlidXRlIFdlYktpdEFuaW1hdGlvbkxpc3RDb25zdHJ1Y3RvciBXZWJLaXRB
bmltYXRpb25MaXN0OworCiAjaWYgZGVmaW5lZChFTkFCTEVfWFBBVEgpICYmIEVOQUJMRV9YUEFU
SAogICAgICAgICBhdHRyaWJ1dGUgWFBhdGhFdmFsdWF0b3JDb25zdHJ1Y3RvciBYUGF0aEV2YWx1
YXRvcjsKICAgICAgICAgYXR0cmlidXRlIFhQYXRoUmVzdWx0Q29uc3RydWN0b3IgWFBhdGhSZXN1
bHQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9BbmltYXRpb25C
YXNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0FuaW1hdGlvbkJhc2UuY3Bw
CmluZGV4IDlhOTA2ZTIuLjA0YzRiM2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
YW5pbWF0aW9uL0FuaW1hdGlvbkJhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5p
bWF0aW9uL0FuaW1hdGlvbkJhc2UuY3BwCkBAIC04MDgsOCArODA4LDExIEBAIEFuaW1hdGlvbkJh
c2U6OkFuaW1hdGlvbkJhc2UoY29uc3QgQW5pbWF0aW9uKiB0cmFuc2l0aW9uLCBSZW5kZXJPYmpl
Y3QqIHJlbmRlcmVyCiAKIEFuaW1hdGlvbkJhc2U6On5BbmltYXRpb25CYXNlKCkKIHsKLSAgICBt
X2NvbXBBbmltLT5hbmltYXRpb25Db250cm9sbGVyKCktPnJlbW92ZUZyb21TdHlsZUF2YWlsYWJs
ZVdhaXRMaXN0KHRoaXMpOwotICAgIG1fY29tcEFuaW0tPmFuaW1hdGlvbkNvbnRyb2xsZXIoKS0+
cmVtb3ZlRnJvbVN0YXJ0VGltZVJlc3BvbnNlV2FpdExpc3QodGhpcyk7CisgICAgLy8gUmVtb3Zl
IG91cnNlbHZlcyBmcm9tIHRoZSB3YWl0IGxpc3RzIGlmIHdlIHN0aWxsIGhhdmUgYSByZW5kZXJl
ci4KKyAgICBpZiAobV9vYmplY3QpIHsKKyAgICAgICAgbV9jb21wQW5pbS0+YW5pbWF0aW9uQ29u
dHJvbGxlcigpLT5yZW1vdmVGcm9tU3R5bGVBdmFpbGFibGVXYWl0TGlzdCh0aGlzKTsKKyAgICAg
ICAgbV9jb21wQW5pbS0+YW5pbWF0aW9uQ29udHJvbGxlcigpLT5yZW1vdmVGcm9tU3RhcnRUaW1l
UmVzcG9uc2VXYWl0TGlzdCh0aGlzKTsKKyAgICB9CiB9CiAKIGJvb2wgQW5pbWF0aW9uQmFzZTo6
cHJvcGVydGllc0VxdWFsKGludCBwcm9wLCBjb25zdCBSZW5kZXJTdHlsZSogYSwgY29uc3QgUmVu
ZGVyU3R5bGUqIGIpCkBAIC0xMzk3LDUgKzE0MDAsMjEgQEAgZG91YmxlIEFuaW1hdGlvbkJhc2U6
OmdldEVsYXBzZWRUaW1lKCkgY29uc3QKIAogICAgIHJldHVybiBiZWdpbkFuaW1hdGlvblVwZGF0
ZVRpbWUoKSAtIG1fc3RhcnRUaW1lOwogfQotICAgIAorCit2b2lkIEFuaW1hdGlvbkJhc2U6OnNl
dEVsYXBzZWRUaW1lKGRvdWJsZSB0aW1lKQoreworICAgIC8vIFRPRE8KKyAgICBVTlVTRURfUEFS
QU0odGltZSk7Cit9CisKK3ZvaWQgQW5pbWF0aW9uQmFzZTo6cGxheSgpCit7CisgICAgLy8gVE9E
TworfQorCit2b2lkIEFuaW1hdGlvbkJhc2U6OnBhdXNlKCkKK3sKKyAgICAvLyBUT0RPCit9CisK
IH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
YW5pbWF0aW9uL0FuaW1hdGlvbkJhc2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9u
L0FuaW1hdGlvbkJhc2UuaAppbmRleCA4NzdkNjQ5Li41Mzc0ZWM4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9BbmltYXRpb25CYXNlLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9hbmltYXRpb24vQW5pbWF0aW9uQmFzZS5oCkBAIC0xNjMsMTEgKzE2MywxNyBA
QCBwdWJsaWM6CiAgICAgCiAgICAgLy8gRnJlZXplIHRoZSBhbmltYXRpb247IHVzZWQgYnkgRHVt
cFJlbmRlclRyZWUuCiAgICAgdm9pZCBmcmVlemVBdFRpbWUoZG91YmxlIHQpOworCisgICAgLy8g
UGxheSBhbmQgcGF1c2UgQVBJCisgICAgdm9pZCBwbGF5KCk7CisgICAgdm9pZCBwYXVzZSgpOwog
ICAgIAogICAgIGRvdWJsZSBiZWdpbkFuaW1hdGlvblVwZGF0ZVRpbWUoKSBjb25zdDsKICAgICAK
ICAgICBkb3VibGUgZ2V0RWxhcHNlZFRpbWUoKSBjb25zdDsKLSAgICAKKyAgICAvLyBTZXR0aW5n
IHRoZSBlbGFwc2VkIHRpbWUgd2lsbCBhZGp1c3QgdGhlIHN0YXJ0IHRpbWUgYW5kIHBvc3NpYmx5
IHBhdXNlIHRpbWUuCisgICAgdm9pZCBzZXRFbGFwc2VkVGltZShkb3VibGUpOworCiAgICAgQW5p
bWF0aW9uQmFzZSogbmV4dCgpIGNvbnN0IHsgcmV0dXJuIG1fbmV4dDsgfQogICAgIHZvaWQgc2V0
TmV4dChBbmltYXRpb25CYXNlKiBhbmltYXRpb24pIHsgbV9uZXh0ID0gYW5pbWF0aW9uOyB9CiAg
ICAgCkBAIC0xODIsNyArMTg4LDkgQEAgcHVibGljOgogI2VuZGlmCiAKICAgICBzdGF0aWMgSGFz
aFNldDxpbnQ+IGFuaW1hdGFibGVTaG9ydGhhbmRzQWZmZWN0aW5nUHJvcGVydHkoaW50IHByb3Bl
cnR5KTsKLSAgICAKKworICAgIEFuaW1hdGlvbiogYW5pbWF0aW9uKCkgeyByZXR1cm4gbV9hbmlt
YXRpb24uZ2V0KCk7IH0KKwogcHJvdGVjdGVkOgogICAgIHZpcnR1YWwgdm9pZCBvdmVycmlkZUFu
aW1hdGlvbnMoKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgcmVzdW1lT3ZlcnJpZGRlbkFuaW1hdGlv
bnMoKSB7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0FuaW1h
dGlvbkNvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vQW5pbWF0
aW9uQ29udHJvbGxlci5jcHAKaW5kZXggZGNkZWEwMy4uYTczMDA2NSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vQW5pbWF0aW9uQ29udHJvbGxlci5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vQW5pbWF0aW9uQ29udHJvbGxlci5jcHAKQEAg
LTM3LDEyICszNywxNCBAQAogI2luY2x1ZGUgIkZyYW1lLmgiCiAjaW5jbHVkZSAiUmVuZGVyVmll
dy5oIgogI2luY2x1ZGUgIldlYktpdEFuaW1hdGlvbkV2ZW50LmgiCisjaW5jbHVkZSAiV2ViS2l0
QW5pbWF0aW9uTGlzdC5oIgogI2luY2x1ZGUgIldlYktpdFRyYW5zaXRpb25FdmVudC5oIgogI2lu
Y2x1ZGUgPHd0Zi9DdXJyZW50VGltZS5oPgogI2luY2x1ZGUgPHd0Zi9VbnVzZWRQYXJhbS5oPgog
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKKy8vIEZJWE1FOiBXaHkgaXNuJ3QgdGhpcyBzZXQgdG8g
NjBmcHMgb3Igc29tZXRoaW5nPwogc3RhdGljIGNvbnN0IGRvdWJsZSBjQW5pbWF0aW9uVGltZXJE
ZWxheSA9IDAuMDI1Owogc3RhdGljIGNvbnN0IGRvdWJsZSBjQmVnaW5BbmltYXRpb25VcGRhdGVU
aW1lTm90U2V0ID0gLTE7CiAKQEAgLTQ3OSw2ICs0ODEsMTYgQEAgdm9pZCBBbmltYXRpb25Db250
cm9sbGVyUHJpdmF0ZTo6c3RhcnRUaW1lUmVzcG9uc2UoZG91YmxlIHRpbWUpCiAgICAgbV9sYXN0
U3RhcnRUaW1lUmVzcG9uc2VXYWl0ZXIgPSAwOwogfQogCitQYXNzUmVmUHRyPFdlYktpdEFuaW1h
dGlvbkxpc3Q+IEFuaW1hdGlvbkNvbnRyb2xsZXJQcml2YXRlOjphbmltYXRpb25zRm9yUmVuZGVy
ZXIoUmVuZGVyT2JqZWN0KiByZW5kZXJlcikgY29uc3QKK3sKKyAgICBSZWZQdHI8Q29tcG9zaXRl
QW5pbWF0aW9uPiBhbmltYXRpb24gPSBtX2NvbXBvc2l0ZUFuaW1hdGlvbnMuZ2V0KHJlbmRlcmVy
KTsKKworICAgIGlmICghYW5pbWF0aW9uKQorICAgICAgICByZXR1cm4gMDsKKworICAgIHJldHVy
biBhbmltYXRpb24tPmFuaW1hdGlvbnMoKTsKK30KKwogQW5pbWF0aW9uQ29udHJvbGxlcjo6QW5p
bWF0aW9uQ29udHJvbGxlcihGcmFtZSogZnJhbWUpCiAgICAgOiBtX2RhdGEobmV3IEFuaW1hdGlv
bkNvbnRyb2xsZXJQcml2YXRlKGZyYW1lKSkKIHsKQEAgLTYxMiw0ICs2MjQsOSBAQCBib29sIEFu
aW1hdGlvbkNvbnRyb2xsZXI6OnN1cHBvcnRzQWNjZWxlcmF0ZWRBbmltYXRpb25PZlByb3BlcnR5
KENTU1Byb3BlcnR5SUQgcAogI2VuZGlmCiB9CiAKK1Bhc3NSZWZQdHI8V2ViS2l0QW5pbWF0aW9u
TGlzdD4gQW5pbWF0aW9uQ29udHJvbGxlcjo6YW5pbWF0aW9uc0ZvclJlbmRlcmVyKFJlbmRlck9i
amVjdCogcmVuZGVyZXIpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fZGF0YS0+YW5pbWF0aW9uc0Zv
clJlbmRlcmVyKHJlbmRlcmVyKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vQW5pbWF0aW9uQ29udHJvbGxlci5o
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vQW5pbWF0aW9uQ29udHJvbGxlci5oCmlu
ZGV4IDUyNzk0NjcuLmEzNTVmODcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5p
bWF0aW9uL0FuaW1hdGlvbkNvbnRyb2xsZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2Fu
aW1hdGlvbi9BbmltYXRpb25Db250cm9sbGVyLmgKQEAgLTQyLDYgKzQyLDcgQEAgY2xhc3MgRnJh
bWU7CiBjbGFzcyBOb2RlOwogY2xhc3MgUmVuZGVyT2JqZWN0OwogY2xhc3MgUmVuZGVyU3R5bGU7
CitjbGFzcyBXZWJLaXRBbmltYXRpb25MaXN0OwogCiBjbGFzcyBBbmltYXRpb25Db250cm9sbGVy
IHsKIHB1YmxpYzoKQEAgLTczLDYgKzc0LDggQEAgcHVibGljOgogICAgIAogICAgIHN0YXRpYyBi
b29sIHN1cHBvcnRzQWNjZWxlcmF0ZWRBbmltYXRpb25PZlByb3BlcnR5KENTU1Byb3BlcnR5SUQp
OwogCisgICAgUGFzc1JlZlB0cjxXZWJLaXRBbmltYXRpb25MaXN0PiBhbmltYXRpb25zRm9yUmVu
ZGVyZXIoUmVuZGVyT2JqZWN0KikgY29uc3Q7CisKIHByaXZhdGU6CiAgICAgQW5pbWF0aW9uQ29u
dHJvbGxlclByaXZhdGUqIG1fZGF0YTsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL2FuaW1hdGlvbi9BbmltYXRpb25Db250cm9sbGVyUHJpdmF0ZS5oIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9hbmltYXRpb24vQW5pbWF0aW9uQ29udHJvbGxlclByaXZhdGUuaAppbmRleCAxODZk
ZDdkLi44OGI4MmE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9B
bmltYXRpb25Db250cm9sbGVyUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5p
bWF0aW9uL0FuaW1hdGlvbkNvbnRyb2xsZXJQcml2YXRlLmgKQEAgLTQ4LDYgKzQ4LDcgQEAgY2xh
c3MgRnJhbWU7CiBjbGFzcyBOb2RlOwogY2xhc3MgUmVuZGVyT2JqZWN0OwogY2xhc3MgUmVuZGVy
U3R5bGU7CitjbGFzcyBXZWJLaXRBbmltYXRpb25MaXN0OwogCiBjbGFzcyBBbmltYXRpb25Db250
cm9sbGVyUHJpdmF0ZSB7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoQW5pbWF0aW9uQ29udHJv
bGxlclByaXZhdGUpOyBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKQEAgLTkzLDYgKzk0LDggQEAg
cHVibGljOgogICAgIHZvaWQgYWRkVG9TdGFydFRpbWVSZXNwb25zZVdhaXRMaXN0KEFuaW1hdGlv
bkJhc2UqLCBib29sIHdpbGxHZXRSZXNwb25zZSk7CiAgICAgdm9pZCByZW1vdmVGcm9tU3RhcnRU
aW1lUmVzcG9uc2VXYWl0TGlzdChBbmltYXRpb25CYXNlKik7ICAgIAogICAgIAorICAgIFBhc3NS
ZWZQdHI8V2ViS2l0QW5pbWF0aW9uTGlzdD4gYW5pbWF0aW9uc0ZvclJlbmRlcmVyKFJlbmRlck9i
amVjdCopIGNvbnN0OworICAgIAogcHJpdmF0ZToKICAgICB2b2lkIGFuaW1hdGlvblRpbWVyRmly
ZWQoVGltZXI8QW5pbWF0aW9uQ29udHJvbGxlclByaXZhdGU+Kik7CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0NvbXBvc2l0ZUFuaW1hdGlvbi5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9Db21wb3NpdGVBbmltYXRpb24uY3BwCmluZGV4IDYw
MjQ5MWUuLjdkZWJkMGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9u
L0NvbXBvc2l0ZUFuaW1hdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRp
b24vQ29tcG9zaXRlQW5pbWF0aW9uLmNwcApAQCAtMzYsNiArMzYsOCBAQAogI2luY2x1ZGUgIktl
eWZyYW1lQW5pbWF0aW9uLmgiCiAjaW5jbHVkZSAiUmVuZGVyT2JqZWN0LmgiCiAjaW5jbHVkZSAi
UmVuZGVyU3R5bGUuaCIKKyNpbmNsdWRlICJXZWJLaXRBbmltYXRpb24uaCIKKyNpbmNsdWRlICJX
ZWJLaXRBbmltYXRpb25MaXN0LmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtMjUyLDgg
KzI1NCwxMCBAQCB2b2lkIENvbXBvc2l0ZUFuaW1hdGlvbjo6dXBkYXRlS2V5ZnJhbWVBbmltYXRp
b25zKFJlbmRlck9iamVjdCogcmVuZGVyZXIsIFJlbmRlcgogICAgIGtmZW5kID0gbV9rZXlmcmFt
ZUFuaW1hdGlvbnMuZW5kKCk7CiAgICAgZm9yIChBbmltYXRpb25OYW1lTWFwOjpjb25zdF9pdGVy
YXRvciBpdCA9IG1fa2V5ZnJhbWVBbmltYXRpb25zLmJlZ2luKCk7IGl0ICE9IGtmZW5kOyArK2l0
KSB7CiAgICAgICAgIEtleWZyYW1lQW5pbWF0aW9uKiBrZXlmcmFtZUFuaW0gPSBpdC0+c2Vjb25k
LmdldCgpOwotICAgICAgICBpZiAoa2V5ZnJhbWVBbmltLT5pbmRleCgpIDwgMCkKKyAgICAgICAg
aWYgKGtleWZyYW1lQW5pbS0+aW5kZXgoKSA8IDApIHsKICAgICAgICAgICAgIGFuaW1zVG9CZVJl
bW92ZWQuYXBwZW5kKGtleWZyYW1lQW5pbS0+bmFtZSgpLmltcGwoKSk7CisgICAgICAgICAgICBr
ZXlmcmFtZUFuaW0tPmNsZWFyUmVuZGVyZXIoKTsKKyAgICAgICAgfQogICAgIH0KICAgICAKICAg
ICAvLyBOb3cgcmVtb3ZlIHRoZSBhbmltYXRpb25zIGZyb20gdGhlIGxpc3QuCkBAIC01NjAsNCAr
NTY0LDE5IEBAIHVuc2lnbmVkIENvbXBvc2l0ZUFuaW1hdGlvbjo6bnVtYmVyT2ZBY3RpdmVBbmlt
YXRpb25zKCkgY29uc3QKICAgICByZXR1cm4gY291bnQ7CiB9CiAKK1Bhc3NSZWZQdHI8V2ViS2l0
QW5pbWF0aW9uTGlzdD4gQ29tcG9zaXRlQW5pbWF0aW9uOjphbmltYXRpb25zKCkgY29uc3QKK3sK
KyAgICBSZWZQdHI8V2ViS2l0QW5pbWF0aW9uTGlzdD4gYW5pbWF0aW9ucyA9IFdlYktpdEFuaW1h
dGlvbkxpc3Q6OmNyZWF0ZSgpOworICAgIGlmICghbV9rZXlmcmFtZUFuaW1hdGlvbnMuaXNFbXB0
eSgpKSB7CisgICAgICAgIG1fa2V5ZnJhbWVBbmltYXRpb25zLmNoZWNrQ29uc2lzdGVuY3koKTsK
KyAgICAgICAgQW5pbWF0aW9uTmFtZU1hcDo6Y29uc3RfaXRlcmF0b3IgYW5pbWF0aW9uc0VuZCA9
IG1fa2V5ZnJhbWVBbmltYXRpb25zLmVuZCgpOworICAgICAgICBmb3IgKEFuaW1hdGlvbk5hbWVN
YXA6OmNvbnN0X2l0ZXJhdG9yIGl0ID0gbV9rZXlmcmFtZUFuaW1hdGlvbnMuYmVnaW4oKTsgaXQg
IT0gYW5pbWF0aW9uc0VuZDsgKytpdCkgeworICAgICAgICAgICAgS2V5ZnJhbWVBbmltYXRpb24q
IGtleWZyYW1lQW5pbWF0aW9uID0gaXQtPnNlY29uZC5nZXQoKTsKKyAgICAgICAgICAgIFJlZlB0
cjxXZWJLaXRBbmltYXRpb24+IGFuaW0gPSBXZWJLaXRBbmltYXRpb246OmNyZWF0ZShrZXlmcmFt
ZUFuaW1hdGlvbik7CisgICAgICAgICAgICBhbmltYXRpb25zLT5hcHBlbmQoYW5pbSk7CisgICAg
ICAgIH0KKyAgICB9CisgICAgcmV0dXJuIGFuaW1hdGlvbnM7Cit9CisKIH0gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0NvbXBv
c2l0ZUFuaW1hdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vQ29tcG9zaXRl
QW5pbWF0aW9uLmgKaW5kZXggMjQ5ZjRjMy4uMWJmZTU4NSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGFnZS9hbmltYXRpb24vQ29tcG9zaXRlQW5pbWF0aW9uLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9hbmltYXRpb24vQ29tcG9zaXRlQW5pbWF0aW9uLmgKQEAgLTQxLDYgKzQxLDcg
QEAgY2xhc3MgQW5pbWF0aW9uQ29udHJvbGxlclByaXZhdGU7CiBjbGFzcyBBbmltYXRpb25Db250
cm9sbGVyOwogY2xhc3MgUmVuZGVyT2JqZWN0OwogY2xhc3MgUmVuZGVyU3R5bGU7CitjbGFzcyBX
ZWJLaXRBbmltYXRpb25MaXN0OwogCiAvLyBBIENvbXBvc2l0ZUFuaW1hdGlvbiByZXByZXNlbnRz
IGEgY29sbGVjdGlvbiBvZiBhbmltYXRpb25zIHRoYXQgYXJlIHJ1bm5pbmcKIC8vIG9uIGEgc2lu
Z2xlIFJlbmRlck9iamVjdCwgc3VjaCBhcyBhIG51bWJlciBvZiBwcm9wZXJ0aWVzIHRyYW5zaXRp
b25pbmcgYXQgb25jZS4KQEAgLTgwLDYgKzgxLDggQEAgcHVibGljOgogICAgIGJvb2wgcGF1c2VU
cmFuc2l0aW9uQXRUaW1lKGludCBwcm9wZXJ0eSwgZG91YmxlIHQpOwogICAgIHVuc2lnbmVkIG51
bWJlck9mQWN0aXZlQW5pbWF0aW9ucygpIGNvbnN0OwogCisgICAgUGFzc1JlZlB0cjxXZWJLaXRB
bmltYXRpb25MaXN0PiBhbmltYXRpb25zKCkgY29uc3Q7CisKIHByaXZhdGU6CiAgICAgQ29tcG9z
aXRlQW5pbWF0aW9uKEFuaW1hdGlvbkNvbnRyb2xsZXJQcml2YXRlKiBhbmltYXRpb25Db250cm9s
bGVyKQogICAgICAgICA6IG1fYW5pbWF0aW9uQ29udHJvbGxlcihhbmltYXRpb25Db250cm9sbGVy
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vV2ViS2l0QW5pbWF0
aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL1dlYktpdEFuaW1hdGlvbi5j
cHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZmY3MTAyZgotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL1dlYktpdEFuaW1hdGlvbi5j
cHAKQEAgLTAsMCArMSwxMjAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5j
bHVkZSAiV2ViS2l0QW5pbWF0aW9uLmgiCisKKyNpbmNsdWRlICJBbmltYXRpb24uaCIKKyNpbmNs
dWRlICJBbmltYXRpb25CYXNlLmgiCisjaW5jbHVkZSAiUmVuZGVyU3R5bGUuaCIKKwordXNpbmcg
bmFtZXNwYWNlIHN0ZDsKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitXZWJLaXRBbmltYXRpb246
OldlYktpdEFuaW1hdGlvbihQYXNzUmVmUHRyPEtleWZyYW1lQW5pbWF0aW9uPiBrZXlmcmFtZUFu
aW1hdGlvbikKKyAgICA6IG1fa2V5ZnJhbWVBbmltYXRpb24oa2V5ZnJhbWVBbmltYXRpb24pCit7
Cit9CisKK1N0cmluZyBXZWJLaXRBbmltYXRpb246Om5hbWUoKSBjb25zdAoreworICAgIHJldHVy
biBtX2tleWZyYW1lQW5pbWF0aW9uLT5hbmltYXRpb24oKS0+bmFtZSgpOworfQorCitkb3VibGUg
V2ViS2l0QW5pbWF0aW9uOjpkdXJhdGlvbigpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fa2V5ZnJh
bWVBbmltYXRpb24tPmR1cmF0aW9uKCk7Cit9CisKK2RvdWJsZSBXZWJLaXRBbmltYXRpb246OmVs
YXBzZWRUaW1lKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9rZXlmcmFtZUFuaW1hdGlvbi0+Z2V0
RWxhcHNlZFRpbWUoKTsKK30KKwordm9pZCBXZWJLaXRBbmltYXRpb246OnNldEVsYXBzZWRUaW1l
KGRvdWJsZSB0aW1lKQoreworICAgIG1fa2V5ZnJhbWVBbmltYXRpb24tPnNldEVsYXBzZWRUaW1l
KHRpbWUpOworfQorCitkb3VibGUgV2ViS2l0QW5pbWF0aW9uOjpkZWxheSgpIGNvbnN0Cit7Cisg
ICAgcmV0dXJuIG1fa2V5ZnJhbWVBbmltYXRpb24tPmFuaW1hdGlvbigpLT5kZWxheSgpOworfQor
CitpbnQgV2ViS2l0QW5pbWF0aW9uOjppdGVyYXRpb25Db3VudCgpIGNvbnN0Cit7CisgICAgcmV0
dXJuIG1fa2V5ZnJhbWVBbmltYXRpb24tPmFuaW1hdGlvbigpLT5pdGVyYXRpb25Db3VudCgpOwor
fQorCitib29sIFdlYktpdEFuaW1hdGlvbjo6cGF1c2VkKCkgY29uc3QKK3sKKyAgICByZXR1cm4g
bV9rZXlmcmFtZUFuaW1hdGlvbi0+cGF1c2VkKCk7Cit9CisKK2Jvb2wgV2ViS2l0QW5pbWF0aW9u
OjplbmRlZCgpIGNvbnN0Cit7CisgICAgaW50IGl0ZXJhdGlvbnMgPSBpdGVyYXRpb25Db3VudCgp
OworICAgIGlmIChpdGVyYXRpb25zID09IEFuaW1hdGlvbjo6SXRlcmF0aW9uQ291bnRJbmZpbml0
ZSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIHJldHVybiBtX2tleWZyYW1lQW5pbWF0aW9u
LT5nZXRFbGFwc2VkVGltZSgpID4gKG1fa2V5ZnJhbWVBbmltYXRpb24tPmR1cmF0aW9uKCkgKiBp
dGVyYXRpb25zKTsKK30KKworV2ViS2l0QW5pbWF0aW9uOjpEaXJlY3Rpb24gV2ViS2l0QW5pbWF0
aW9uOjpkaXJlY3Rpb24oKSBjb25zdAoreworICAgIGlmIChtX2tleWZyYW1lQW5pbWF0aW9uLT5h
bmltYXRpb24oKS0+ZGlyZWN0aW9uKCkgPT0gQW5pbWF0aW9uOjpBbmltYXRpb25EaXJlY3Rpb25O
b3JtYWwpCisgICAgICAgIHJldHVybiBESVJFQ1RJT05fTk9STUFMOworICAgIHJldHVybiBESVJF
Q1RJT05fQUxURVJOQVRFOworfQorCitXZWJLaXRBbmltYXRpb246OkZpbGxNb2RlIFdlYktpdEFu
aW1hdGlvbjo6ZmlsbE1vZGUoKSBjb25zdAoreworICAgIHN3aXRjaCAobV9rZXlmcmFtZUFuaW1h
dGlvbi0+YW5pbWF0aW9uKCktPmZpbGxNb2RlKCkpIHsKKyAgICBjYXNlIEFuaW1hdGlvbkZpbGxN
b2RlTm9uZToKKyAgICAgICAgcmV0dXJuIEZJTExfTk9ORTsKKyAgICAgICAgYnJlYWs7CisgICAg
Y2FzZSBBbmltYXRpb25GaWxsTW9kZUZvcndhcmRzOgorICAgICAgICByZXR1cm4gRklMTF9GT1JX
QVJEUzsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBBbmltYXRpb25GaWxsTW9kZUJhY2t3YXJk
czoKKyAgICAgICAgcmV0dXJuIEZJTExfQkFDS1dBUkRTOworICAgICAgICBicmVhazsKKyAgICBk
ZWZhdWx0OgorICAgICAgICByZXR1cm4gRklMTF9CT1RIOworICAgICAgICBicmVhazsKKyAgICB9
Cit9CisKK3ZvaWQgV2ViS2l0QW5pbWF0aW9uOjpwYXVzZSgpCit7CisgICAgbV9rZXlmcmFtZUFu
aW1hdGlvbi0+cGF1c2UoKTsKK30KKwordm9pZCBXZWJLaXRBbmltYXRpb246OnBsYXkoKQorewor
ICAgIG1fa2V5ZnJhbWVBbmltYXRpb24tPnBsYXkoKTsKK30KKworfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vV2ViS2l0QW5pbWF0aW9uLmggYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL2FuaW1hdGlvbi9XZWJLaXRBbmltYXRpb24uaApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwLi42YmVhMWU1Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9hbmltYXRpb24vV2ViS2l0QW5pbWF0aW9uLmgKQEAgLTAsMCArMSw4MSBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAxMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRF
UiwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVS
LCBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgor
ICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAor
ICovCisKKyNpZm5kZWYgV2ViS2l0QW5pbWF0aW9uX2gKKyNkZWZpbmUgV2ViS2l0QW5pbWF0aW9u
X2gKKworI2luY2x1ZGUgIkFuaW1hdGlvbi5oIgorI2luY2x1ZGUgIkFuaW1hdGlvbkJhc2UuaCIK
KyNpbmNsdWRlICJLZXlmcmFtZUFuaW1hdGlvbi5oIgorI2luY2x1ZGUgIlJlbmRlclN0eWxlLmgi
CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgV2ViS2l0QW5pbWF0aW9uIDogcHVibGlj
IFJlZkNvdW50ZWQ8V2ViS2l0QW5pbWF0aW9uPiB7CitwdWJsaWM6CisKKyAgICBzdGF0aWMgUGFz
c1JlZlB0cjxXZWJLaXRBbmltYXRpb24+IGNyZWF0ZShQYXNzUmVmUHRyPEtleWZyYW1lQW5pbWF0
aW9uPiBrZXlmcmFtZUFuaW1hdGlvbikKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFJlZihu
ZXcgV2ViS2l0QW5pbWF0aW9uKGtleWZyYW1lQW5pbWF0aW9uKSk7CisgICAgfQorCisgICAgdmly
dHVhbCB+V2ViS2l0QW5pbWF0aW9uKCkgeyB9CisKKyAgICAvLyBET00gQVBJCisKKyAgICBTdHJp
bmcgbmFtZSgpIGNvbnN0OworCisgICAgZG91YmxlIGR1cmF0aW9uKCkgY29uc3Q7CisKKyAgICBk
b3VibGUgZWxhcHNlZFRpbWUoKSBjb25zdDsKKyAgICB2b2lkIHNldEVsYXBzZWRUaW1lKGRvdWJs
ZSk7CisKKyAgICBkb3VibGUgZGVsYXkoKSBjb25zdDsKKyAgICBpbnQgaXRlcmF0aW9uQ291bnQo
KSBjb25zdDsKKworICAgIGJvb2wgcGF1c2VkKCkgY29uc3Q7CisgICAgYm9vbCBlbmRlZCgpIGNv
bnN0OworCisgICAgLy8gZGlyZWN0aW9uCisgICAgZW51bSBEaXJlY3Rpb24geyBESVJFQ1RJT05f
Tk9STUFMLCBESVJFQ1RJT05fQUxURVJOQVRFIH07CisgICAgRGlyZWN0aW9uIGRpcmVjdGlvbigp
IGNvbnN0OworCisgICAgLy8gZmlsbCBtb2RlCisgICAgZW51bSBGaWxsTW9kZSB7IEZJTExfTk9O
RSwgRklMTF9CQUNLV0FSRFMsIEZJTExfRk9SV0FSRFMsIEZJTExfQk9USCB9OworICAgIEZpbGxN
b2RlIGZpbGxNb2RlKCkgY29uc3Q7CisKKyAgICB2b2lkIHBsYXkoKTsKKyAgICB2b2lkIHBhdXNl
KCk7CisKK3Byb3RlY3RlZDoKKyAgICBXZWJLaXRBbmltYXRpb24oUGFzc1JlZlB0cjxLZXlmcmFt
ZUFuaW1hdGlvbj4pOworCitwcml2YXRlOgorICAgIFJlZlB0cjxLZXlmcmFtZUFuaW1hdGlvbj4g
bV9rZXlmcmFtZUFuaW1hdGlvbjsKK307CisKK30gLy8gbmFtZXNwYWNlCisKKyNlbmRpZgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vV2ViS2l0QW5pbWF0aW9uLmlk
bCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL1dlYktpdEFuaW1hdGlvbi5pZGwKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODc4MDdjNwotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL1dlYktpdEFuaW1hdGlvbi5pZGwKQEAg
LTAsMCArMSw1OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKiAzLiAgTmVpdGhlciB0aGUgbmFt
ZSBvZiBBcHBsZSBDb21wdXRlciwgSW5jLiAoIkFwcGxlIikgbm9yIHRoZSBuYW1lcyBvZgorICog
ICAgIGl0cyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHBy
b2R1Y3RzIGRlcml2ZWQKKyAqICAgICBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZp
YyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkKKyAqIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyAq
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09O
U0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQKKyAqIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKKyAqIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworbW9kdWxlIGh0bWwgeworCisgICAgaW50ZXJmYWNlIFdlYktpdEFuaW1h
dGlvbiB7CisKKyAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyBuYW1lOworCisg
ICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBmbG9hdCBkdXJhdGlvbjsKKyAgICAgICAgYXR0cmli
dXRlIGZsb2F0IGVsYXBzZWRUaW1lOworCisgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBmbG9h
dCBkZWxheTsKKyAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFtDdXN0b21dIGludCBpdGVyYXRp
b25Db3VudDsKKworICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgYm9vbGVhbiBwYXVzZWQ7Cisg
ICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBib29sZWFuIGVuZGVkOworCisgICAgICAgIGNvbnN0
IHVuc2lnbmVkIHNob3J0IERJUkVDVElPTl9OT1JNQUwgPSAwOworICAgICAgICBjb25zdCB1bnNp
Z25lZCBzaG9ydCBESVJFQ1RJT05fQUxURVJOQVRFID0gMTsKKyAgICAgICAgcmVhZG9ubHkgYXR0
cmlidXRlIHVuc2lnbmVkIHNob3J0IGRpcmVjdGlvbjsKKworICAgICAgICBjb25zdCB1bnNpZ25l
ZCBzaG9ydCBGSUxMX05PTkUgPSAwOworICAgICAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCBGSUxM
X0JBQ0tXQVJEUyA9IDE7CisgICAgICAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IEZJTExfRk9SV0FS
RFMgPSAyOworICAgICAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCBGSUxMX0JPVEggPSAzOworICAg
ICAgICByZWFkb25seSBhdHRyaWJ1dGUgdW5zaWduZWQgc2hvcnQgZmlsbE1vZGU7CisKKyAgICAg
ICAgdm9pZCBwbGF5KCk7CisgICAgICAgIHZvaWQgcGF1c2UoKTsKKyAgICB9OworCit9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9XZWJLaXRBbmltYXRpb25MaXN0
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL1dlYktpdEFuaW1hdGlvbkxpc3Qu
Y3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjMxZTQ2ZDcKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9XZWJLaXRBbmltYXRpb25M
aXN0LmNwcApAQCAtMCwwICsxLDgyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisg
KiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAor
ICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgor
I2luY2x1ZGUgIldlYktpdEFuaW1hdGlvbkxpc3QuaCIKKworI2luY2x1ZGUgIkFuaW1hdGlvbi5o
IgorI2luY2x1ZGUgIkFuaW1hdGlvbkJhc2UuaCIKKyNpbmNsdWRlICJSZW5kZXJTdHlsZS5oIgor
I2luY2x1ZGUgIldlYktpdEFuaW1hdGlvbi5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisgICAg
CitXZWJLaXRBbmltYXRpb25MaXN0OjpXZWJLaXRBbmltYXRpb25MaXN0KCkKK3sKK30KKworV2Vi
S2l0QW5pbWF0aW9uTGlzdDo6fldlYktpdEFuaW1hdGlvbkxpc3QoKQoreworfQorCit1bnNpZ25l
ZCBXZWJLaXRBbmltYXRpb25MaXN0OjpsZW5ndGgoKSBjb25zdAoreworICAgIHJldHVybiBtX2Fu
aW1hdGlvbnMuc2l6ZSgpOworfQorCitXZWJLaXRBbmltYXRpb24qIFdlYktpdEFuaW1hdGlvbkxp
c3Q6Oml0ZW0odW5zaWduZWQgaW5kZXgpCit7CisgICAgaWYgKGluZGV4IDwgbV9hbmltYXRpb25z
LnNpemUoKSkKKyAgICAgICAgcmV0dXJuIG1fYW5pbWF0aW9uc1tpbmRleF0uZ2V0KCk7CisgICAg
cmV0dXJuIDA7Cit9CisKK3ZvaWQgV2ViS2l0QW5pbWF0aW9uTGlzdDo6ZGVsZXRlQW5pbWF0aW9u
KHVuc2lnbmVkIGluZGV4KQoreworICAgIGlmIChpbmRleCA+PSBtX2FuaW1hdGlvbnMuc2l6ZSgp
KQorICAgICAgICByZXR1cm47CisKKyAgICBtX2FuaW1hdGlvbnMucmVtb3ZlKGluZGV4KTsKK30K
Kwordm9pZCBXZWJLaXRBbmltYXRpb25MaXN0OjphcHBlbmQoUmVmUHRyPFdlYktpdEFuaW1hdGlv
bj4gYW5pbWF0aW9uKQoreworICAgIG1fYW5pbWF0aW9ucy5hcHBlbmQoYW5pbWF0aW9uKTsKK30K
KwordW5zaWduZWQgV2ViS2l0QW5pbWF0aW9uTGlzdDo6aW5zZXJ0QW5pbWF0aW9uKFJlZlB0cjxX
ZWJLaXRBbmltYXRpb24+IGFuaW1hdGlvbiwgdW5zaWduZWQgaW5kZXgpCit7CisgICAgaWYgKCFh
bmltYXRpb24pCisgICAgICAgIHJldHVybiAwOworCisgICAgaWYgKGluZGV4ID4gbV9hbmltYXRp
b25zLnNpemUoKSkKKyAgICAgICAgcmV0dXJuIDA7CisKKyAgICBtX2FuaW1hdGlvbnMuaW5zZXJ0
KGluZGV4LCBhbmltYXRpb24pOworICAgIHJldHVybiBpbmRleDsKK30KKworfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQorCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9X
ZWJLaXRBbmltYXRpb25MaXN0LmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9XZWJL
aXRBbmltYXRpb25MaXN0LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjgy
ZTM4YQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL1dl
YktpdEFuaW1hdGlvbkxpc3QuaApAQCAtMCwwICsxLDYxIEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDExIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMn
JyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKKyAqIENP
TlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBC
VVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisg
KiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2lmbmRlZiBX
ZWJLaXRBbmltYXRpb25MaXN0X2gKKyNkZWZpbmUgV2ViS2l0QW5pbWF0aW9uTGlzdF9oCisKKyNp
bmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+Cisj
aW5jbHVkZSA8d3RmL1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KKworbmFtZXNw
YWNlIFdlYkNvcmUgeworICAKK2NsYXNzIFdlYktpdEFuaW1hdGlvbjsKKworY2xhc3MgV2ViS2l0
QW5pbWF0aW9uTGlzdCA6IHB1YmxpYyBSZWZDb3VudGVkPFdlYktpdEFuaW1hdGlvbkxpc3Q+IHsK
K3B1YmxpYzoKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxXZWJLaXRBbmltYXRpb25MaXN0PiBjcmVh
dGUoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBXZWJLaXRBbmltYXRpb25M
aXN0KCkpOworICAgIH0KKyAgICB+V2ViS2l0QW5pbWF0aW9uTGlzdCgpOworCisgICAgdW5zaWdu
ZWQgbGVuZ3RoKCkgY29uc3Q7CisgICAgV2ViS2l0QW5pbWF0aW9uKiBpdGVtKHVuc2lnbmVkIGlu
ZGV4KTsKKworICAgIHVuc2lnbmVkIGluc2VydEFuaW1hdGlvbihSZWZQdHI8V2ViS2l0QW5pbWF0
aW9uPiwgdW5zaWduZWQgaW5kZXgpOworICAgIHZvaWQgZGVsZXRlQW5pbWF0aW9uKHVuc2lnbmVk
IGluZGV4KTsKKyAgICB2b2lkIGFwcGVuZChSZWZQdHI8V2ViS2l0QW5pbWF0aW9uPik7CisKK3By
aXZhdGU6CisgICAgV2ViS2l0QW5pbWF0aW9uTGlzdCgpOworCisgICAgVmVjdG9yPFJlZlB0cjxX
ZWJLaXRBbmltYXRpb24+ID4gbV9hbmltYXRpb25zOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQorCisjZW5kaWYgLy8gV2ViS2l0QW5pbWF0aW9uTGlzdF9oCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9XZWJLaXRBbmltYXRpb25MaXN0LmlkbCBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL1dlYktpdEFuaW1hdGlvbkxpc3QuaWRsCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjRjMzc2ZTYKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9XZWJLaXRBbmltYXRpb25MaXN0LmlkbApAQCAt
MCwwICsxLDM2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQor
ICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZ
LCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQor
ICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4gCisgKi8KKworbW9kdWxlIGh0bWwgeworCisgICAgaW50ZXJmYWNlIFsK
KyAgICAgICAgQ3VzdG9tTWFya0Z1bmN0aW9uLAorICAgICAgICBIYXNJbmRleEdldHRlcgorICAg
IF0gV2ViS2l0QW5pbWF0aW9uTGlzdCB7CisgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnNp
Z25lZCBsb25nIGxlbmd0aDsKKyAgICAgICAgV2ViS2l0QW5pbWF0aW9uIGl0ZW0oaW4gdW5zaWdu
ZWQgbG9uZyBpbmRleCk7CisgICAgfTsKKworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlck9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyT2JqZWN0LmNwcAppbmRleCBiMjE5OWQwLi5kODkxNWU3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNwcApAQCAtNTcsNiArNTcsNyBAQAogI2luY2x1ZGUgIlJl
bmRlclRoZW1lLmgiCiAjaW5jbHVkZSAiUmVuZGVyVmlldy5oIgogI2luY2x1ZGUgIlRyYW5zZm9y
bVN0YXRlLmgiCisjaW5jbHVkZSAiV2ViS2l0QW5pbWF0aW9uTGlzdC5oIgogI2luY2x1ZGUgImh0
bWxlZGl0aW5nLmgiCiAjaW5jbHVkZSA8YWxnb3JpdGhtPgogI2luY2x1ZGUgPHN0ZGlvLmg+CkBA
IC0yNTg1LDYgKzI1ODYsMTQgQEAgQW5pbWF0aW9uQ29udHJvbGxlciogUmVuZGVyT2JqZWN0Ojph
bmltYXRpb24oKSBjb25zdAogICAgIHJldHVybiBmcmFtZSgpLT5hbmltYXRpb24oKTsKIH0KIAor
UGFzc1JlZlB0cjxXZWJLaXRBbmltYXRpb25MaXN0PiBSZW5kZXJPYmplY3Q6OmFuaW1hdGlvbnMo
KQoreworICAgIEFuaW1hdGlvbkNvbnRyb2xsZXIqIGFuaW1Db250cm9sbGVyID0gYW5pbWF0aW9u
KCk7CisgICAgaWYgKCFhbmltQ29udHJvbGxlcikKKyAgICAgICAgcmV0dXJuIDA7CisgICAgcmV0
dXJuIGFuaW1Db250cm9sbGVyLT5hbmltYXRpb25zRm9yUmVuZGVyZXIodGhpcyk7Cit9CisKIHZv
aWQgUmVuZGVyT2JqZWN0OjppbWFnZUNoYW5nZWQoQ2FjaGVkSW1hZ2UqIGltYWdlLCBjb25zdCBJ
bnRSZWN0KiByZWN0KQogewogICAgIGltYWdlQ2hhbmdlZChzdGF0aWNfY2FzdDxXcmFwcGVkSW1h
Z2VQdHI+KGltYWdlKSwgcmVjdCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyT2JqZWN0LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0
LmgKaW5kZXggMGI0NGZmYS4uMThlZjdjOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlck9iamVjdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJPYmplY3QuaApAQCAtNTksNiArNTksNyBAQCBjbGFzcyBSZW5kZXJMYXllcjsKIGNsYXNzIFJl
bmRlclRoZW1lOwogY2xhc3MgVHJhbnNmb3JtU3RhdGU7CiBjbGFzcyBWaXNpYmxlUG9zaXRpb247
CitjbGFzcyBXZWJLaXRBbmltYXRpb25MaXN0OwogI2lmIEVOQUJMRShTVkcpCiBjbGFzcyBSZW5k
ZXJTVkdSZXNvdXJjZUNvbnRhaW5lcjsKICNlbmRpZgpAQCAtNzUwLDYgKzc1MSw3IEBAIHB1Ymxp
YzoKICAgICB2b2lkIHJlbW92ZSgpIHsgaWYgKHBhcmVudCgpKSBwYXJlbnQoKS0+cmVtb3ZlQ2hp
bGQodGhpcyk7IH0KIAogICAgIEFuaW1hdGlvbkNvbnRyb2xsZXIqIGFuaW1hdGlvbigpIGNvbnN0
OworICAgIFBhc3NSZWZQdHI8V2ViS2l0QW5pbWF0aW9uTGlzdD4gYW5pbWF0aW9ucygpOwogCiAg
ICAgYm9vbCB2aXNpYmxlVG9IaXRUZXN0aW5nKCkgY29uc3QgeyByZXR1cm4gc3R5bGUoKS0+dmlz
aWJpbGl0eSgpID09IFZJU0lCTEUgJiYgc3R5bGUoKS0+cG9pbnRlckV2ZW50cygpICE9IFBFX05P
TkU7IH0KIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>85410</attachid>
            <date>2011-03-10 16:53:03 -0800</date>
            <delta_ts>2011-03-10 21:12:28 -0800</delta_ts>
            <desc>Review changes</desc>
            <filename>animation-api-step-1.diff</filename>
            <type>text/plain</type>
            <size>85921</size>
            <attacher name="Dean Jackson">dino</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA0MzJlZjk4Li5iOTA5ZjRkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjQgQEAKKzIwMTEtMDMt
MTAgIERlYW4gSmFja3NvbiAgPGRpbm9AYXBwbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5
IFNpbW9uIEZyYXNlciBhbmQgQ2hyaXMgTWFycmluLgorCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01NDE1MQorICAgICAgICBJbXBsZW1lbnQgYW4gQVBJ
IHRvIHBsYXkvcGF1c2Uvc2NydWIgYW5pbWF0aW9ucworICAgICAgICAKKyAgICAgICAgVGhpcyBp
cyBQYXJ0IDEuIEFkZHMgdGhlIG5ldyBXZWJLaXRBbmltYXRpb24gYW5kIFdlYktpdEFuaW1hdGlv
bkxpc3QKKyAgICAgICAgQVBJcywgZXhwb3NlZCB2aWEgRWxlbWVudC5nZXRXZWJLaXRBbmltYXRp
b25zKCkuIFRoaXMgZmlyc3QgcGFzcworICAgICAgICBpcyByZWFkLW9ubHkuIE9uZSBuZXcgbGF5
b3V0IHRlc3QgdGhhdCBleGFtaW5lcyBhbmltYXRpb24KKyAgICAgICAgcHJvcGVydGllcy4gVXBk
YXRlIGV4aXN0aW5nIGxheW91dCB0ZXN0cyBmb3IgdGhlIG5ldyBpbnRlcmZhY2VzCisgICAgICAg
IG9uIFdpbmRvdy4KKworICAgICAgICAqIGFuaW1hdGlvbnMvYW5pbWF0aW9uLWFwaS0xLWV4cGVj
dGVkLnR4dDogQWRkZWQuCisgICAgICAgICogYW5pbWF0aW9ucy9hbmltYXRpb24tYXBpLTEuaHRt
bDogQWRkZWQuCisgICAgICAgICogZmFzdC9kb20vV2luZG93L3dpbmRvdy1wcm9wZXJ0aWVzLWV4
cGVjdGVkLnR4dDoKKyAgICAgICAgKiBmYXN0L2RvbS9XaW5kb3cvd2luZG93LXByb3BlcnR5LWRl
c2NyaXB0b3JzLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBmYXN0L2RvbS9wcm90b3R5cGUtaW5o
ZXJpdGFuY2UtMi1leHBlY3RlZC50eHQ6CisgICAgICAgICogZmFzdC9kb20vcHJvdG90eXBlLWlu
aGVyaXRhbmNlLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBmYXN0L2pzL2dsb2JhbC1jb25zdHJ1
Y3RvcnMtZXhwZWN0ZWQudHh0OgorCiAyMDExLTAzLTEwICBEYXZpZCBIeWF0dCAgPGh5YXR0QGFw
cGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBTaW1vbiBGcmFzZXIuCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9hbmltYXRpb25zL2FuaW1hdGlvbi1hcGktMS1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9hbmltYXRpb25zL2FuaW1hdGlvbi1hcGktMS1leHBlY3RlZC50eHQKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjFiMTlkNAotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2FuaW1hdGlvbnMvYW5pbWF0aW9uLWFwaS0xLWV4cGVjdGVkLnR4dApAQCAt
MCwwICsxLDc0IEBACitUaGlzIHRlc3RzIHRoZSBXZWJLaXRBbmltYXRpb24gaW50ZXJmYWNlLgor
CitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBm
b2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyB3aW5kb3cuV2ViS2l0QW5pbWF0
aW9uIGlzIGRlZmluZWQuCitQQVNTIHdpbmRvdy5XZWJLaXRBbmltYXRpb25MaXN0IGlzIGRlZmlu
ZWQuCisKK1Rlc3QgYW4gYWxtb3N0LWRlZmF1bHQgYW5pbWF0aW9uCitQQVNTIGFfYW5pbWF0aW9u
cy5sZW5ndGggaXMgMQorUEFTUyBhX2FuaW1hdGlvbl8wIGlzIGRlZmluZWQuCisKK1BBU1MgYV9h
bmltYXRpb25fMC5uYW1lIGlzICd0ZXN0MScKK1BBU1MgYV9hbmltYXRpb25fMC5kdXJhdGlvbiBp
cyAxCitQQVNTIGFfYW5pbWF0aW9uXzAuZGVsYXkgaXMgMAorUEFTUyBhX2FuaW1hdGlvbl8wLml0
ZXJhdGlvbkNvdW50IGlzIDEKK1BBU1MgYV9hbmltYXRpb25fMC5wYXVzZWQgaXMgZmFsc2UKK1BB
U1MgYV9hbmltYXRpb25fMC5lbmRlZCBpcyBmYWxzZQorUEFTUyBhX2FuaW1hdGlvbl8wLmRpcmVj
dGlvbiBpcyB3aW5kb3cuV2ViS2l0QW5pbWF0aW9uLkRJUkVDVElPTl9OT1JNQUwKK1BBU1MgYV9h
bmltYXRpb25fMC5maWxsTW9kZSBpcyB3aW5kb3cuV2ViS2l0QW5pbWF0aW9uLkZJTExfTk9ORQor
CitUZXN0IGEgc3BlY2lmaWVkIGFuaW1hdGlvbgorUEFTUyBiX2FuaW1hdGlvbnMubGVuZ3RoIGlz
IDEKK1BBU1MgYl9hbmltYXRpb25fMCBpcyBkZWZpbmVkLgorCitQQVNTIGJfYW5pbWF0aW9uXzAu
bmFtZSBpcyAndGVzdDEnCitQQVNTIGJfYW5pbWF0aW9uXzAuZHVyYXRpb24gaXMgMgorUEFTUyBi
X2FuaW1hdGlvbl8wLmRlbGF5IGlzIDMKK1BBU1MgYl9hbmltYXRpb25fMC5pdGVyYXRpb25Db3Vu
dCBpcyA0CitQQVNTIGJfYW5pbWF0aW9uXzAucGF1c2VkIGlzIGZhbHNlCitQQVNTIGJfYW5pbWF0
aW9uXzAuZW5kZWQgaXMgZmFsc2UKK1BBU1MgYl9hbmltYXRpb25fMC5kaXJlY3Rpb24gaXMgd2lu
ZG93LldlYktpdEFuaW1hdGlvbi5ESVJFQ1RJT05fTk9STUFMCitQQVNTIGJfYW5pbWF0aW9uXzAu
ZmlsbE1vZGUgaXMgd2luZG93LldlYktpdEFuaW1hdGlvbi5GSUxMX05PTkUKKworVGVzdCBuZWdh
dGl2ZSBkZWxheSwgZmlsbCBtb2RlLCBkaXJlY3Rpb24gYW5kIGluZmluaXRlIGl0ZXJhdGlvbnMK
K1BBU1MgY19hbmltYXRpb25zLmxlbmd0aCBpcyAxCitQQVNTIGNfYW5pbWF0aW9uXzAgaXMgZGVm
aW5lZC4KKworUEFTUyBjX2FuaW1hdGlvbl8wLm5hbWUgaXMgJ3Rlc3QyJworUEFTUyBjX2FuaW1h
dGlvbl8wLmR1cmF0aW9uIGlzIDUKK1BBU1MgY19hbmltYXRpb25fMC5kZWxheSBpcyAtMQorUEFT
UyBjX2FuaW1hdGlvbl8wLml0ZXJhdGlvbkNvdW50IGlzIE51bWJlci5QT1NJVElWRV9JTkZJTklU
WQorUEFTUyBjX2FuaW1hdGlvbl8wLnBhdXNlZCBpcyBmYWxzZQorUEFTUyBjX2FuaW1hdGlvbl8w
LmVuZGVkIGlzIGZhbHNlCitQQVNTIGNfYW5pbWF0aW9uXzAuZGlyZWN0aW9uIGlzIHdpbmRvdy5X
ZWJLaXRBbmltYXRpb24uRElSRUNUSU9OX0FMVEVSTkFURQorUEFTUyBjX2FuaW1hdGlvbl8wLmZp
bGxNb2RlIGlzIHdpbmRvdy5XZWJLaXRBbmltYXRpb24uRklMTF9GT1JXQVJEUworCitUZXN0IG11
bHRpcGxlIGFuaW1hdGlvbnMKK1BBU1MgZF9hbmltYXRpb25zLmxlbmd0aCBpcyAyCitQQVNTIGRf
YW5pbWF0aW9uXzAgaXMgZGVmaW5lZC4KKworUEFTUyBkX2FuaW1hdGlvbl8wLm5hbWUgaXMgJ3Rl
c3QxJworUEFTUyBkX2FuaW1hdGlvbl8wLmR1cmF0aW9uIGlzIDEKK1BBU1MgZF9hbmltYXRpb25f
MC5kZWxheSBpcyAwCitQQVNTIGRfYW5pbWF0aW9uXzAuaXRlcmF0aW9uQ291bnQgaXMgMTAKK1BB
U1MgZF9hbmltYXRpb25fMC5wYXVzZWQgaXMgZmFsc2UKK1BBU1MgZF9hbmltYXRpb25fMC5lbmRl
ZCBpcyBmYWxzZQorUEFTUyBkX2FuaW1hdGlvbl8wLmRpcmVjdGlvbiBpcyB3aW5kb3cuV2ViS2l0
QW5pbWF0aW9uLkRJUkVDVElPTl9OT1JNQUwKK1BBU1MgZF9hbmltYXRpb25fMC5maWxsTW9kZSBp
cyB3aW5kb3cuV2ViS2l0QW5pbWF0aW9uLkZJTExfQkFDS1dBUkRTCitQQVNTIGRfYW5pbWF0aW9u
XzEgaXMgZGVmaW5lZC4KKworUEFTUyBkX2FuaW1hdGlvbl8xLm5hbWUgaXMgJ3Rlc3QyJworUEFT
UyBkX2FuaW1hdGlvbl8xLmR1cmF0aW9uIGlzIDIKK1BBU1MgZF9hbmltYXRpb25fMS5kZWxheSBp
cyAxCitQQVNTIGRfYW5pbWF0aW9uXzEuaXRlcmF0aW9uQ291bnQgaXMgTnVtYmVyLlBPU0lUSVZF
X0lORklOSVRZCitQQVNTIGRfYW5pbWF0aW9uXzEucGF1c2VkIGlzIGZhbHNlCitQQVNTIGRfYW5p
bWF0aW9uXzEuZW5kZWQgaXMgZmFsc2UKK1BBU1MgZF9hbmltYXRpb25fMS5kaXJlY3Rpb24gaXMg
d2luZG93LldlYktpdEFuaW1hdGlvbi5ESVJFQ1RJT05fQUxURVJOQVRFCitQQVNTIGRfYW5pbWF0
aW9uXzEuZmlsbE1vZGUgaXMgd2luZG93LldlYktpdEFuaW1hdGlvbi5GSUxMX0JPVEgKKworUEFT
UyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2FuaW1hdGlvbnMvYW5pbWF0aW9uLWFwaS0xLmh0bWwgYi9MYXlvdXRU
ZXN0cy9hbmltYXRpb25zL2FuaW1hdGlvbi1hcGktMS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAuLjdkODRlNDIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9h
bmltYXRpb25zL2FuaW1hdGlvbi1hcGktMS5odG1sCkBAIC0wLDAgKzEsMTc1IEBACis8aHRtbD4K
KzxoZWFkPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi9mYXN0L2pzL3Jlc291cmNl
cy9qcy10ZXN0LXN0eWxlLmNzcyI+Cis8c3R5bGUgdHlwZT0idGV4dC9jc3MiIG1lZGlhPSJzY3Jl
ZW4iPgorICBALXdlYmtpdC1rZXlmcmFtZXMgdGVzdDEgeworICAgIGZyb20geyBsZWZ0OiAxMHB4
OyB9CisgICAgdG8geyBsZWZ0OiAyMHB4OyB9CisgIH0KKyAgQC13ZWJraXQta2V5ZnJhbWVzIHRl
c3QyIHsKKyAgICAwJSB7IGxlZnQ6IDEwcHg7IH0KKyAgICA1MCUgeyBsZWZ0OiAzMHB4OyB9Cisg
ICAgMTAwJSB7IGxlZnQ6IDIwcHg7IH0KKyAgfQorICAjYSB7CisgICAgLXdlYmtpdC1hbmltYXRp
b24tbmFtZTogdGVzdDE7CisgICAgLXdlYmtpdC1hbmltYXRpb24tZHVyYXRpb246IDFzOworICB9
CisgICNiIHsKKyAgICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiB0ZXN0MTsKKyAgICAtd2Via2l0
LWFuaW1hdGlvbi1kdXJhdGlvbjogMnM7CisgICAgLXdlYmtpdC1hbmltYXRpb24tZGVsYXk6IDNz
OworICAgIC13ZWJraXQtYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogNDsKKyAgICAtd2Via2l0
LWFuaW1hdGlvbi1kaXJlY3Rpb246IG5vcm1hbDsKKyAgICAtd2Via2l0LWFuaW1hdGlvbi1maWxs
LW1vZGU6IG5vbmU7CisgIH0KKyAgI2MgeworICAgIC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6IHRl
c3QyOworICAgIC13ZWJraXQtYW5pbWF0aW9uLWR1cmF0aW9uOiA1czsKKyAgICAtd2Via2l0LWFu
aW1hdGlvbi1kZWxheTogLTFzOworICAgIC13ZWJraXQtYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3Vu
dDogaW5maW5pdGU7CisgICAgLXdlYmtpdC1hbmltYXRpb24tZGlyZWN0aW9uOiBhbHRlcm5hdGU7
CisgICAgLXdlYmtpdC1hbmltYXRpb24tZmlsbC1tb2RlOiBmb3J3YXJkczsKKyAgfQorICAjZCB7
CisgICAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogdGVzdDEsIHRlc3QyOworICAgIC13ZWJraXQt
YW5pbWF0aW9uLWR1cmF0aW9uOiAxcywgMnM7CisgICAgLXdlYmtpdC1hbmltYXRpb24tZGVsYXk6
IDBzLCAxczsKKyAgICAtd2Via2l0LWFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IDEwLCBpbmZp
bml0ZTsKKyAgICAtd2Via2l0LWFuaW1hdGlvbi1kaXJlY3Rpb246IG5vcm1hbCwgYWx0ZXJuYXRl
OworICAgIC13ZWJraXQtYW5pbWF0aW9uLWZpbGwtbW9kZTogYmFja3dhcmRzLCBib3RoOworICB9
Cis8L3N0eWxlPgorPHNjcmlwdCBzcmM9Ii4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJl
LmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPGRpdiBpZD0iYSI+PC9kaXY+Cis8ZGl2
IGlkPSJiIj48L2Rpdj4KKzxkaXYgaWQ9ImMiPjwvZGl2PgorPGRpdiBpZD0iZCI+PC9kaXY+Cis8
cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlw
dD4KKworZGVzY3JpcHRpb24oIlRoaXMgdGVzdHMgdGhlIFdlYktpdEFuaW1hdGlvbiBpbnRlcmZh
Y2UuIik7CisKK3Nob3VsZEJlRGVmaW5lZCgid2luZG93LldlYktpdEFuaW1hdGlvbiIpOworc2hv
dWxkQmVEZWZpbmVkKCJ3aW5kb3cuV2ViS2l0QW5pbWF0aW9uTGlzdCIpOworCisvKiAqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAqLworCitkZWJ1ZygiIik7
CitkZWJ1ZygiVGVzdCBhbiBhbG1vc3QtZGVmYXVsdCBhbmltYXRpb24iKTsKKwordmFyIGEgPSBk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYSIpOwordmFyIGFfYW5pbWF0aW9ucyA9IGEud2Via2l0
R2V0QW5pbWF0aW9ucygpOworCitzaG91bGRCZSgiYV9hbmltYXRpb25zLmxlbmd0aCIsICIxIik7
CisKK3ZhciBhX2FuaW1hdGlvbl8wID0gYV9hbmltYXRpb25zWzBdOworCitzaG91bGRCZURlZmlu
ZWQoImFfYW5pbWF0aW9uXzAiKTsKK2RlYnVnKCIiKTsKKworc2hvdWxkQmUoImFfYW5pbWF0aW9u
XzAubmFtZSIsICIndGVzdDEnIik7CitzaG91bGRCZSgiYV9hbmltYXRpb25fMC5kdXJhdGlvbiIs
ICIxIik7CitzaG91bGRCZSgiYV9hbmltYXRpb25fMC5kZWxheSIsICIwIik7CitzaG91bGRCZSgi
YV9hbmltYXRpb25fMC5pdGVyYXRpb25Db3VudCIsICIxIik7CitzaG91bGRCZSgiYV9hbmltYXRp
b25fMC5wYXVzZWQiLCAiZmFsc2UiKTsKK3Nob3VsZEJlKCJhX2FuaW1hdGlvbl8wLmVuZGVkIiwg
ImZhbHNlIik7CitzaG91bGRCZSgiYV9hbmltYXRpb25fMC5kaXJlY3Rpb24iLCAid2luZG93Lldl
YktpdEFuaW1hdGlvbi5ESVJFQ1RJT05fTk9STUFMIik7CitzaG91bGRCZSgiYV9hbmltYXRpb25f
MC5maWxsTW9kZSIsICJ3aW5kb3cuV2ViS2l0QW5pbWF0aW9uLkZJTExfTk9ORSIpOworCisvKiAq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAqLworCitkZWJ1
ZygiIik7CitkZWJ1ZygiVGVzdCBhIHNwZWNpZmllZCBhbmltYXRpb24iKTsKKwordmFyIGIgPSBk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYiIpOwordmFyIGJfYW5pbWF0aW9ucyA9IGIud2Via2l0
R2V0QW5pbWF0aW9ucygpOworCitzaG91bGRCZSgiYl9hbmltYXRpb25zLmxlbmd0aCIsICIxIik7
CisKK3ZhciBiX2FuaW1hdGlvbl8wID0gYl9hbmltYXRpb25zWzBdOworCitzaG91bGRCZURlZmlu
ZWQoImJfYW5pbWF0aW9uXzAiKTsKK2RlYnVnKCIiKTsKKworc2hvdWxkQmUoImJfYW5pbWF0aW9u
XzAubmFtZSIsICIndGVzdDEnIik7CitzaG91bGRCZSgiYl9hbmltYXRpb25fMC5kdXJhdGlvbiIs
ICIyIik7CitzaG91bGRCZSgiYl9hbmltYXRpb25fMC5kZWxheSIsICIzIik7CitzaG91bGRCZSgi
Yl9hbmltYXRpb25fMC5pdGVyYXRpb25Db3VudCIsICI0Iik7CitzaG91bGRCZSgiYl9hbmltYXRp
b25fMC5wYXVzZWQiLCAiZmFsc2UiKTsKK3Nob3VsZEJlKCJiX2FuaW1hdGlvbl8wLmVuZGVkIiwg
ImZhbHNlIik7CitzaG91bGRCZSgiYl9hbmltYXRpb25fMC5kaXJlY3Rpb24iLCAid2luZG93Lldl
YktpdEFuaW1hdGlvbi5ESVJFQ1RJT05fTk9STUFMIik7CitzaG91bGRCZSgiYl9hbmltYXRpb25f
MC5maWxsTW9kZSIsICJ3aW5kb3cuV2ViS2l0QW5pbWF0aW9uLkZJTExfTk9ORSIpOworCisvKiAq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAqLworCitkZWJ1
ZygiIik7CitkZWJ1ZygiVGVzdCBuZWdhdGl2ZSBkZWxheSwgZmlsbCBtb2RlLCBkaXJlY3Rpb24g
YW5kIGluZmluaXRlIGl0ZXJhdGlvbnMiKTsKKwordmFyIGMgPSBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgiYyIpOwordmFyIGNfYW5pbWF0aW9ucyA9IGMud2Via2l0R2V0QW5pbWF0aW9ucygpOwor
CitzaG91bGRCZSgiY19hbmltYXRpb25zLmxlbmd0aCIsICIxIik7CisKK3ZhciBjX2FuaW1hdGlv
bl8wID0gY19hbmltYXRpb25zWzBdOworCitzaG91bGRCZURlZmluZWQoImNfYW5pbWF0aW9uXzAi
KTsKK2RlYnVnKCIiKTsKKworc2hvdWxkQmUoImNfYW5pbWF0aW9uXzAubmFtZSIsICIndGVzdDIn
Iik7CitzaG91bGRCZSgiY19hbmltYXRpb25fMC5kdXJhdGlvbiIsICI1Iik7CitzaG91bGRCZSgi
Y19hbmltYXRpb25fMC5kZWxheSIsICItMSIpOworc2hvdWxkQmUoImNfYW5pbWF0aW9uXzAuaXRl
cmF0aW9uQ291bnQiLCAiTnVtYmVyLlBPU0lUSVZFX0lORklOSVRZIik7CitzaG91bGRCZSgiY19h
bmltYXRpb25fMC5wYXVzZWQiLCAiZmFsc2UiKTsKK3Nob3VsZEJlKCJjX2FuaW1hdGlvbl8wLmVu
ZGVkIiwgImZhbHNlIik7CitzaG91bGRCZSgiY19hbmltYXRpb25fMC5kaXJlY3Rpb24iLCAid2lu
ZG93LldlYktpdEFuaW1hdGlvbi5ESVJFQ1RJT05fQUxURVJOQVRFIik7CitzaG91bGRCZSgiY19h
bmltYXRpb25fMC5maWxsTW9kZSIsICJ3aW5kb3cuV2ViS2l0QW5pbWF0aW9uLkZJTExfRk9SV0FS
RFMiKTsKKworLyogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KiogKi8KKworZGVidWcoIiIpOworZGVidWcoIlRlc3QgbXVsdGlwbGUgYW5pbWF0aW9ucyIpOwor
Cit2YXIgZCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJkIik7Cit2YXIgZF9hbmltYXRpb25z
ID0gZC53ZWJraXRHZXRBbmltYXRpb25zKCk7CisKK3Nob3VsZEJlKCJkX2FuaW1hdGlvbnMubGVu
Z3RoIiwgIjIiKTsKKwordmFyIGRfYW5pbWF0aW9uXzAgPSBkX2FuaW1hdGlvbnNbMF07CisKK3No
b3VsZEJlRGVmaW5lZCgiZF9hbmltYXRpb25fMCIpOworZGVidWcoIiIpOworCitzaG91bGRCZSgi
ZF9hbmltYXRpb25fMC5uYW1lIiwgIid0ZXN0MSciKTsKK3Nob3VsZEJlKCJkX2FuaW1hdGlvbl8w
LmR1cmF0aW9uIiwgIjEiKTsKK3Nob3VsZEJlKCJkX2FuaW1hdGlvbl8wLmRlbGF5IiwgIjAiKTsK
K3Nob3VsZEJlKCJkX2FuaW1hdGlvbl8wLml0ZXJhdGlvbkNvdW50IiwgIjEwIik7CitzaG91bGRC
ZSgiZF9hbmltYXRpb25fMC5wYXVzZWQiLCAiZmFsc2UiKTsKK3Nob3VsZEJlKCJkX2FuaW1hdGlv
bl8wLmVuZGVkIiwgImZhbHNlIik7CitzaG91bGRCZSgiZF9hbmltYXRpb25fMC5kaXJlY3Rpb24i
LCAid2luZG93LldlYktpdEFuaW1hdGlvbi5ESVJFQ1RJT05fTk9STUFMIik7CitzaG91bGRCZSgi
ZF9hbmltYXRpb25fMC5maWxsTW9kZSIsICJ3aW5kb3cuV2ViS2l0QW5pbWF0aW9uLkZJTExfQkFD
S1dBUkRTIik7CisKK3ZhciBkX2FuaW1hdGlvbl8xID0gZF9hbmltYXRpb25zWzFdOworCitzaG91
bGRCZURlZmluZWQoImRfYW5pbWF0aW9uXzEiKTsKK2RlYnVnKCIiKTsKKworc2hvdWxkQmUoImRf
YW5pbWF0aW9uXzEubmFtZSIsICIndGVzdDInIik7CitzaG91bGRCZSgiZF9hbmltYXRpb25fMS5k
dXJhdGlvbiIsICIyIik7CitzaG91bGRCZSgiZF9hbmltYXRpb25fMS5kZWxheSIsICIxIik7Citz
aG91bGRCZSgiZF9hbmltYXRpb25fMS5pdGVyYXRpb25Db3VudCIsICJOdW1iZXIuUE9TSVRJVkVf
SU5GSU5JVFkiKTsKK3Nob3VsZEJlKCJkX2FuaW1hdGlvbl8xLnBhdXNlZCIsICJmYWxzZSIpOwor
c2hvdWxkQmUoImRfYW5pbWF0aW9uXzEuZW5kZWQiLCAiZmFsc2UiKTsKK3Nob3VsZEJlKCJkX2Fu
aW1hdGlvbl8xLmRpcmVjdGlvbiIsICJ3aW5kb3cuV2ViS2l0QW5pbWF0aW9uLkRJUkVDVElPTl9B
TFRFUk5BVEUiKTsKK3Nob3VsZEJlKCJkX2FuaW1hdGlvbl8xLmZpbGxNb2RlIiwgIndpbmRvdy5X
ZWJLaXRBbmltYXRpb24uRklMTF9CT1RIIik7CisKK2RlYnVnKCIiKTsKK3N1Y2Nlc3NmdWxseVBh
cnNlZCA9IHRydWU7CisKKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL2Zhc3QvanMvcmVzb3Vy
Y2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvd2luZG93LXByb3BlcnRpZXMtZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L3dpbmRvdy1wcm9wZXJ0aWVzLWV4
cGVjdGVkLnR4dAppbmRleCA2NTgzMWM2Li5kNmY3NzQ4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9mYXN0L2RvbS9XaW5kb3cvd2luZG93LXByb3BlcnRpZXMtZXhwZWN0ZWQudHh0CisrKyBiL0xh
eW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy93aW5kb3ctcHJvcGVydGllcy1leHBlY3RlZC50eHQK
QEAgLTEyMyw2ICsxMjMsNyBAQCB3aW5kb3cuQXVkaW8ucHJvdG90eXBlLnNldEF0dHJpYnV0ZSBb
ZnVuY3Rpb25dCiB3aW5kb3cuQXVkaW8ucHJvdG90eXBlLnNldEF0dHJpYnV0ZU5TIFtmdW5jdGlv
bl0KIHdpbmRvdy5BdWRpby5wcm90b3R5cGUuc2V0QXR0cmlidXRlTm9kZSBbZnVuY3Rpb25dCiB3
aW5kb3cuQXVkaW8ucHJvdG90eXBlLnNldEF0dHJpYnV0ZU5vZGVOUyBbZnVuY3Rpb25dCit3aW5k
b3cuQXVkaW8ucHJvdG90eXBlLndlYmtpdEdldEFuaW1hdGlvbnMgW2Z1bmN0aW9uXQogd2luZG93
LkF1ZGlvLnByb3RvdHlwZS53ZWJraXRNYXRjaGVzU2VsZWN0b3IgW2Z1bmN0aW9uXQogd2luZG93
LkF1ZGlvLnByb3RvdHlwZS53ZWJraXRSZXF1ZXN0RnVsbFNjcmVlbiBbZnVuY3Rpb25dCiB3aW5k
b3cuQmVmb3JlTG9hZEV2ZW50IFtvYmplY3QgQmVmb3JlTG9hZEV2ZW50Q29uc3RydWN0b3JdCkBA
IC03ODQsNiArNzg1LDcgQEAgd2luZG93LkVsZW1lbnQucHJvdG90eXBlLnNldEF0dHJpYnV0ZSBb
ZnVuY3Rpb25dCiB3aW5kb3cuRWxlbWVudC5wcm90b3R5cGUuc2V0QXR0cmlidXRlTlMgW2Z1bmN0
aW9uXQogd2luZG93LkVsZW1lbnQucHJvdG90eXBlLnNldEF0dHJpYnV0ZU5vZGUgW2Z1bmN0aW9u
XQogd2luZG93LkVsZW1lbnQucHJvdG90eXBlLnNldEF0dHJpYnV0ZU5vZGVOUyBbZnVuY3Rpb25d
Cit3aW5kb3cuRWxlbWVudC5wcm90b3R5cGUud2Via2l0R2V0QW5pbWF0aW9ucyBbZnVuY3Rpb25d
CiB3aW5kb3cuRWxlbWVudC5wcm90b3R5cGUud2Via2l0TWF0Y2hlc1NlbGVjdG9yIFtmdW5jdGlv
bl0KIHdpbmRvdy5FbGVtZW50LnByb3RvdHlwZS53ZWJraXRSZXF1ZXN0RnVsbFNjcmVlbiBbZnVu
Y3Rpb25dCiB3aW5kb3cuRW50aXR5IFtvYmplY3QgRW50aXR5Q29uc3RydWN0b3JdCkBAIC0xOTYz
LDggKzE5NjUsMjcgQEAgd2luZG93LlR5cGVFcnJvciBbZnVuY3Rpb25dCiB3aW5kb3cuVUlFdmVu
dCBbb2JqZWN0IFVJRXZlbnRDb25zdHJ1Y3Rvcl0KIHdpbmRvdy5VSUV2ZW50LnByb3RvdHlwZSBb
cHJpbnRlZCBhYm92ZSBhcyB3aW5kb3cuRXZlbnQucHJvdG90eXBlXQogd2luZG93LlVSSUVycm9y
IFtmdW5jdGlvbl0KK3dpbmRvdy5XZWJLaXRBbmltYXRpb24gW29iamVjdCBXZWJLaXRBbmltYXRp
b25Db25zdHJ1Y3Rvcl0KK3dpbmRvdy5XZWJLaXRBbmltYXRpb24uRElSRUNUSU9OX0FMVEVSTkFU
RSBbbnVtYmVyXQord2luZG93LldlYktpdEFuaW1hdGlvbi5ESVJFQ1RJT05fTk9STUFMIFtudW1i
ZXJdCit3aW5kb3cuV2ViS2l0QW5pbWF0aW9uLkZJTExfQkFDS1dBUkRTIFtudW1iZXJdCit3aW5k
b3cuV2ViS2l0QW5pbWF0aW9uLkZJTExfQk9USCBbbnVtYmVyXQord2luZG93LldlYktpdEFuaW1h
dGlvbi5GSUxMX0ZPUldBUkRTIFtudW1iZXJdCit3aW5kb3cuV2ViS2l0QW5pbWF0aW9uLkZJTExf
Tk9ORSBbbnVtYmVyXQord2luZG93LldlYktpdEFuaW1hdGlvbi5wcm90b3R5cGUgW29iamVjdCBX
ZWJLaXRBbmltYXRpb25Qcm90b3R5cGVdCit3aW5kb3cuV2ViS2l0QW5pbWF0aW9uLnByb3RvdHlw
ZS5ESVJFQ1RJT05fQUxURVJOQVRFIFtudW1iZXJdCit3aW5kb3cuV2ViS2l0QW5pbWF0aW9uLnBy
b3RvdHlwZS5ESVJFQ1RJT05fTk9STUFMIFtudW1iZXJdCit3aW5kb3cuV2ViS2l0QW5pbWF0aW9u
LnByb3RvdHlwZS5GSUxMX0JBQ0tXQVJEUyBbbnVtYmVyXQord2luZG93LldlYktpdEFuaW1hdGlv
bi5wcm90b3R5cGUuRklMTF9CT1RIIFtudW1iZXJdCit3aW5kb3cuV2ViS2l0QW5pbWF0aW9uLnBy
b3RvdHlwZS5GSUxMX0ZPUldBUkRTIFtudW1iZXJdCit3aW5kb3cuV2ViS2l0QW5pbWF0aW9uLnBy
b3RvdHlwZS5GSUxMX05PTkUgW251bWJlcl0KK3dpbmRvdy5XZWJLaXRBbmltYXRpb24ucHJvdG90
eXBlLnBhdXNlIFtmdW5jdGlvbl0KK3dpbmRvdy5XZWJLaXRBbmltYXRpb24ucHJvdG90eXBlLnBs
YXkgW2Z1bmN0aW9uXQogd2luZG93LldlYktpdEFuaW1hdGlvbkV2ZW50IFtvYmplY3QgV2ViS2l0
QW5pbWF0aW9uRXZlbnRDb25zdHJ1Y3Rvcl0KIHdpbmRvdy5XZWJLaXRBbmltYXRpb25FdmVudC5w
cm90b3R5cGUgW3ByaW50ZWQgYWJvdmUgYXMgd2luZG93LkV2ZW50LnByb3RvdHlwZV0KK3dpbmRv
dy5XZWJLaXRBbmltYXRpb25MaXN0IFtvYmplY3QgV2ViS2l0QW5pbWF0aW9uTGlzdENvbnN0cnVj
dG9yXQord2luZG93LldlYktpdEFuaW1hdGlvbkxpc3QucHJvdG90eXBlIFtvYmplY3QgV2ViS2l0
QW5pbWF0aW9uTGlzdFByb3RvdHlwZV0KK3dpbmRvdy5XZWJLaXRBbmltYXRpb25MaXN0LnByb3Rv
dHlwZS5pdGVtIFtmdW5jdGlvbl0KIHdpbmRvdy5XZWJLaXRDU1NLZXlmcmFtZVJ1bGUgW29iamVj
dCBXZWJLaXRDU1NLZXlmcmFtZVJ1bGVDb25zdHJ1Y3Rvcl0KIHdpbmRvdy5XZWJLaXRDU1NLZXlm
cmFtZVJ1bGUucHJvdG90eXBlIFtwcmludGVkIGFib3ZlIGFzIHdpbmRvdy5DU1NSdWxlLnByb3Rv
dHlwZV0KIHdpbmRvdy5XZWJLaXRDU1NLZXlmcmFtZXNSdWxlIFtvYmplY3QgV2ViS2l0Q1NTS2V5
ZnJhbWVzUnVsZUNvbnN0cnVjdG9yXQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20v
V2luZG93L3dpbmRvdy1wcm9wZXJ0eS1kZXNjcmlwdG9ycy1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9mYXN0L2RvbS9XaW5kb3cvd2luZG93LXByb3BlcnR5LWRlc2NyaXB0b3JzLWV4cGVjdGVk
LnR4dAppbmRleCA2NTE0NGY2Li42Y2U3NDk5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0
L2RvbS9XaW5kb3cvd2luZG93LXByb3BlcnR5LWRlc2NyaXB0b3JzLWV4cGVjdGVkLnR4dAorKysg
Yi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvd2luZG93LXByb3BlcnR5LWRlc2NyaXB0b3Jz
LWV4cGVjdGVkLnR4dApAQCAtMzEwLDcgKzMxMCw5IEBAIFBBU1MgdHlwZW9mIE9iamVjdC5nZXRP
d25Qcm9wZXJ0eURlc2NyaXB0b3Iod2luZG93LCAnVGltZVJhbmdlcycpIGlzICdvYmplY3QnCiBQ
QVNTIHR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHdpbmRvdywgJ1R5cGVF
cnJvcicpIGlzICdvYmplY3QnCiBQQVNTIHR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNj
cmlwdG9yKHdpbmRvdywgJ1VJRXZlbnQnKSBpcyAnb2JqZWN0JwogUEFTUyB0eXBlb2YgT2JqZWN0
LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih3aW5kb3csICdVUklFcnJvcicpIGlzICdvYmplY3Qn
CitQQVNTIHR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHdpbmRvdywgJ1dl
YktpdEFuaW1hdGlvbicpIGlzICdvYmplY3QnCiBQQVNTIHR5cGVvZiBPYmplY3QuZ2V0T3duUHJv
cGVydHlEZXNjcmlwdG9yKHdpbmRvdywgJ1dlYktpdEFuaW1hdGlvbkV2ZW50JykgaXMgJ29iamVj
dCcKK1BBU1MgdHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iod2luZG93LCAn
V2ViS2l0QW5pbWF0aW9uTGlzdCcpIGlzICdvYmplY3QnCiBQQVNTIHR5cGVvZiBPYmplY3QuZ2V0
T3duUHJvcGVydHlEZXNjcmlwdG9yKHdpbmRvdywgJ1dlYktpdENTU0tleWZyYW1lUnVsZScpIGlz
ICdvYmplY3QnCiBQQVNTIHR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHdp
bmRvdywgJ1dlYktpdENTU0tleWZyYW1lc1J1bGUnKSBpcyAnb2JqZWN0JwogUEFTUyB0eXBlb2Yg
T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih3aW5kb3csICdXZWJLaXRDU1NNYXRyaXgn
KSBpcyAnb2JqZWN0JwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vcHJvdG90eXBl
LWluaGVyaXRhbmNlLTItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vcHJvdG90
eXBlLWluaGVyaXRhbmNlLTItZXhwZWN0ZWQudHh0CmluZGV4IDQ4NDYwZjEuLjQxZWIwMTUgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL3Byb3RvdHlwZS1pbmhlcml0YW5jZS0yLWV4
cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9wcm90b3R5cGUtaW5oZXJpdGFu
Y2UtMi1leHBlY3RlZC50eHQKQEAgLTQyOCw2ICs0MjgsOCBAQCBOZXZlciBmb3VuZCBTVkdWaWV3
RWxlbWVudAogTmV2ZXIgZm91bmQgU2hhcmVkV29ya2VyCiBOZXZlciBmb3VuZCBTdHlsZVNoZWV0
CiBOZXZlciBmb3VuZCBUZXh0TWV0cmljcworTmV2ZXIgZm91bmQgV2ViS2l0QW5pbWF0aW9uCitO
ZXZlciBmb3VuZCBXZWJLaXRBbmltYXRpb25MaXN0CiBOZXZlciBmb3VuZCBXZWJLaXRDU1NNYXRy
aXgKIE5ldmVyIGZvdW5kIFdlYktpdENTU1RyYW5zZm9ybVZhbHVlCiBOZXZlciBmb3VuZCBXZWJL
aXRQb2ludApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vcHJvdG90eXBlLWluaGVy
aXRhbmNlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL3Byb3RvdHlwZS1pbmhl
cml0YW5jZS1leHBlY3RlZC50eHQKaW5kZXggNzhhMDBhZi4uY2JiNTc3NCAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvZmFzdC9kb20vcHJvdG90eXBlLWluaGVyaXRhbmNlLWV4cGVjdGVkLnR4dAor
KysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9wcm90b3R5cGUtaW5oZXJpdGFuY2UtZXhwZWN0ZWQu
dHh0CkBAIC02MTMsOCArNjEzLDEyIEBAIFBBU1MgaW5uZXIuVUlFdmVudC5pc0lubmVyIGlzIHRy
dWUKIFBBU1MgaW5uZXIuVUlFdmVudC5jb25zdHJ1Y3Rvci5pc0lubmVyIGlzIHRydWUKIFBBU1Mg
aW5uZXIuVVJJRXJyb3IuaXNJbm5lciBpcyB0cnVlCiBQQVNTIGlubmVyLlVSSUVycm9yLmNvbnN0
cnVjdG9yLmlzSW5uZXIgaXMgdHJ1ZQorUEFTUyBpbm5lci5XZWJLaXRBbmltYXRpb24uaXNJbm5l
ciBpcyB0cnVlCitQQVNTIGlubmVyLldlYktpdEFuaW1hdGlvbi5jb25zdHJ1Y3Rvci5pc0lubmVy
IGlzIHRydWUKIFBBU1MgaW5uZXIuV2ViS2l0QW5pbWF0aW9uRXZlbnQuaXNJbm5lciBpcyB0cnVl
CiBQQVNTIGlubmVyLldlYktpdEFuaW1hdGlvbkV2ZW50LmNvbnN0cnVjdG9yLmlzSW5uZXIgaXMg
dHJ1ZQorUEFTUyBpbm5lci5XZWJLaXRBbmltYXRpb25MaXN0LmlzSW5uZXIgaXMgdHJ1ZQorUEFT
UyBpbm5lci5XZWJLaXRBbmltYXRpb25MaXN0LmNvbnN0cnVjdG9yLmlzSW5uZXIgaXMgdHJ1ZQog
UEFTUyBpbm5lci5XZWJLaXRDU1NLZXlmcmFtZVJ1bGUuaXNJbm5lciBpcyB0cnVlCiBQQVNTIGlu
bmVyLldlYktpdENTU0tleWZyYW1lUnVsZS5jb25zdHJ1Y3Rvci5pc0lubmVyIGlzIHRydWUKIFBB
U1MgaW5uZXIuV2ViS2l0Q1NTS2V5ZnJhbWVzUnVsZS5pc0lubmVyIGlzIHRydWUKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2Zhc3QvanMvZ2xvYmFsLWNvbnN0cnVjdG9ycy1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9mYXN0L2pzL2dsb2JhbC1jb25zdHJ1Y3RvcnMtZXhwZWN0ZWQudHh0Cmlu
ZGV4IGU4ZGFmZjkuLjUyN2Y3NGQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvanMvZ2xv
YmFsLWNvbnN0cnVjdG9ycy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9qcy9n
bG9iYWwtY29uc3RydWN0b3JzLWV4cGVjdGVkLnR4dApAQCAtMjkxLDcgKzI5MSw5IEBAIFBBU1Mg
VGV4dEV2ZW50LnRvU3RyaW5nKCkgaXMgJ1tvYmplY3QgVGV4dEV2ZW50Q29uc3RydWN0b3JdJwog
UEFTUyBUZXh0TWV0cmljcy50b1N0cmluZygpIGlzICdbb2JqZWN0IFRleHRNZXRyaWNzQ29uc3Ry
dWN0b3JdJwogUEFTUyBUaW1lUmFuZ2VzLnRvU3RyaW5nKCkgaXMgJ1tvYmplY3QgVGltZVJhbmdl
c0NvbnN0cnVjdG9yXScKIFBBU1MgVUlFdmVudC50b1N0cmluZygpIGlzICdbb2JqZWN0IFVJRXZl
bnRDb25zdHJ1Y3Rvcl0nCitQQVNTIFdlYktpdEFuaW1hdGlvbi50b1N0cmluZygpIGlzICdbb2Jq
ZWN0IFdlYktpdEFuaW1hdGlvbkNvbnN0cnVjdG9yXScKIFBBU1MgV2ViS2l0QW5pbWF0aW9uRXZl
bnQudG9TdHJpbmcoKSBpcyAnW29iamVjdCBXZWJLaXRBbmltYXRpb25FdmVudENvbnN0cnVjdG9y
XScKK1BBU1MgV2ViS2l0QW5pbWF0aW9uTGlzdC50b1N0cmluZygpIGlzICdbb2JqZWN0IFdlYktp
dEFuaW1hdGlvbkxpc3RDb25zdHJ1Y3Rvcl0nCiBQQVNTIFdlYktpdENTU0tleWZyYW1lUnVsZS50
b1N0cmluZygpIGlzICdbb2JqZWN0IFdlYktpdENTU0tleWZyYW1lUnVsZUNvbnN0cnVjdG9yXScK
IFBBU1MgV2ViS2l0Q1NTS2V5ZnJhbWVzUnVsZS50b1N0cmluZygpIGlzICdbb2JqZWN0IFdlYktp
dENTU0tleWZyYW1lc1J1bGVDb25zdHJ1Y3Rvcl0nCiBQQVNTIFdlYktpdENTU01hdHJpeC50b1N0
cmluZygpIGlzICdbb2JqZWN0IFdlYktpdENTU01hdHJpeENvbnN0cnVjdG9yXScKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL0FuZHJvaWQuZGVyaXZlZC5qc2NiaW5kaW5ncy5tayBiL1NvdXJj
ZS9XZWJDb3JlL0FuZHJvaWQuZGVyaXZlZC5qc2NiaW5kaW5ncy5tawppbmRleCA2ZDA2NGFlLi44
OWYwMTRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9BbmRyb2lkLmRlcml2ZWQuanNjYmlu
ZGluZ3MubWsKKysrIGIvU291cmNlL1dlYkNvcmUvQW5kcm9pZC5kZXJpdmVkLmpzY2JpbmRpbmdz
Lm1rCkBAIC0yOTgsNiArMjk4LDggQEAgR0VOIDo9IFwKICAgICAkKGludGVybWVkaWF0ZXMpL3Bh
Z2UvSlNOYXZpZ2F0b3IuaCBcCiAgICAgJChpbnRlcm1lZGlhdGVzKS9wYWdlL0pTUG9zaXRpb25F
cnJvci5oIFwKICAgICAkKGludGVybWVkaWF0ZXMpL3BhZ2UvSlNTY3JlZW4uaCBcCisgICAgJChp
bnRlcm1lZGlhdGVzKS9wYWdlL0pTV2ViS2l0QW5pbWF0aW9uLmggXAorICAgICQoaW50ZXJtZWRp
YXRlcykvcGFnZS9KU1dlYktpdEFuaW1hdGlvbkxpc3QuaCBcCiAgICAgJChpbnRlcm1lZGlhdGVz
KS9wYWdlL0pTV2ViS2l0UG9pbnQuaCBcCiAgICAgJChpbnRlcm1lZGlhdGVzKS9wYWdlL0pTV29y
a2VyTmF2aWdhdG9yLmgKIApAQCAtMzA3LDEwICszMDksNiBAQCAkKEdFTik6ICQoaW50ZXJtZWRp
YXRlcykvcGFnZS9KUyUuaCA6ICQoTE9DQUxfUEFUSCkvcGFnZS8lLmlkbCAkKGpzX2JpbmRpbmdf
c2NyaQogCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCiBMT0NBTF9HRU5FUkFURURfU09V
UkNFUyArPSAkKEdFTikgJChHRU46JS5oPSUuY3BwKQogCi0jIFdlIGFsc28gbmVlZCB0aGUgLmNw
cCBmaWxlcywgd2hpY2ggYXJlIGdlbmVyYXRlZCBhcyBzaWRlIGVmZmVjdHMgb2YgdGhlCi0jIGFi
b3ZlIHJ1bGVzLiAgU3BlY2lmeWluZyB0aGlzIGV4cGxpY2l0bHkgbWFrZXMgLWoyIHdvcmsuCi0k
KHBhdHN1YnN0ICUuaCwlLmNwcCwkKEdFTikpOiAkKGludGVybWVkaWF0ZXMpL3BhZ2UvJS5jcHAg
OiAkKGludGVybWVkaWF0ZXMpL3BhZ2UvJS5oCi0KIEdFTiA6PSBcCiAgICAgJChpbnRlcm1lZGlh
dGVzKS9wbHVnaW5zL0pTTWltZVR5cGUuaCBcCiAgICAgJChpbnRlcm1lZGlhdGVzKS9wbHVnaW5z
L0pTTWltZVR5cGVBcnJheS5oIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0FuZHJvaWQu
ZGVyaXZlZC52OGJpbmRpbmdzLm1rIGIvU291cmNlL1dlYkNvcmUvQW5kcm9pZC5kZXJpdmVkLnY4
YmluZGluZ3MubWsKaW5kZXggNTI0ZTI5YS4uNWEwZmVjZSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvQW5kcm9pZC5kZXJpdmVkLnY4YmluZGluZ3MubWsKKysrIGIvU291cmNlL1dlYkNvcmUv
QW5kcm9pZC5kZXJpdmVkLnY4YmluZGluZ3MubWsKQEAgLTI3OSw2ICsyNzksOCBAQCBHRU4gOj0g
XAogICAgICQoaW50ZXJtZWRpYXRlcykvYmluZGluZ3MvVjhOYXZpZ2F0b3IuaCBcCiAgICAgJChp
bnRlcm1lZGlhdGVzKS9iaW5kaW5ncy9WOFBvc2l0aW9uRXJyb3IuaCBcCiAgICAgJChpbnRlcm1l
ZGlhdGVzKS9iaW5kaW5ncy9WOFNjcmVlbi5oIFwKKyAgICAkKGludGVybWVkaWF0ZXMpL2JpbmRp
bmdzL1Y4V2ViS2l0QW5pbWF0aW9uLmggXAorICAgICQoaW50ZXJtZWRpYXRlcykvYmluZGluZ3Mv
VjhXZWJLaXRBbmltYXRpb25MaXN0LmggXAogICAgICQoaW50ZXJtZWRpYXRlcykvYmluZGluZ3Mv
VjhXZWJLaXRQb2ludC5oIFwKICAgICAkKGludGVybWVkaWF0ZXMpL2JpbmRpbmdzL1Y4V29ya2Vy
TmF2aWdhdG9yLmgKICQoR0VOKTogUFJJVkFURV9QQVRIIDo9ICQoTE9DQUxfUEFUSCkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL0FuZHJvaWQubWsgYi9Tb3VyY2UvV2ViQ29yZS9BbmRyb2lk
Lm1rCmluZGV4IDk4NTk4ZmUuLjE1OGU1OTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0Fu
ZHJvaWQubWsKKysrIGIvU291cmNlL1dlYkNvcmUvQW5kcm9pZC5tawpAQCAtNDQ5LDYgKzQ0OSw4
IEBAIExPQ0FMX1NSQ19GSUxFUyA6PSAkKExPQ0FMX1NSQ19GSUxFUykgXAogCXBhZ2UvU3BlZWNo
SW5wdXRSZXN1bHQuY3BwIFwKIAlwYWdlL1N1c3BlbmRhYmxlVGltZXIuY3BwIFwKIAlwYWdlL1Vz
ZXJDb250ZW50VVJMUGF0dGVybi5jcHAgXAorCXBhZ2UvV2ViS2l0QW5pbWF0aW9uLmNwcCBcCisJ
cGFnZS9XZWJLaXRBbmltYXRpb25MaXN0LmNwcCBcCiAJcGFnZS9XaW5kb3dGZWF0dXJlcy5jcHAg
XAogCXBhZ2UvV29ya2VyTmF2aWdhdG9yLmNwcCBcCiAJXApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvQW5kcm9pZC52OGJpbmRpbmdzLm1rIGIvU291cmNlL1dlYkNvcmUvQW5kcm9pZC52OGJp
bmRpbmdzLm1rCmluZGV4IDYyY2NjZjUuLjcwMDg5MGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL0FuZHJvaWQudjhiaW5kaW5ncy5taworKysgYi9Tb3VyY2UvV2ViQ29yZS9BbmRyb2lkLnY4
YmluZGluZ3MubWsKQEAgLTE2NCw2ICsxNjQsNyBAQCBMT0NBTF9TUkNfRklMRVMgKz0gXAogCWJp
bmRpbmdzL3Y4L2N1c3RvbS9WOFN0eWxlU2hlZXRDdXN0b20uY3BwIFwKIAliaW5kaW5ncy92OC9j
dXN0b20vVjhTdHlsZVNoZWV0TGlzdEN1c3RvbS5jcHAgXAogCWJpbmRpbmdzL3Y4L2N1c3RvbS9W
OFRyZWVXYWxrZXJDdXN0b20uY3BwIFwKKwliaW5kaW5ncy92OC9jdXN0b20vVjhXZWJLaXRBbmlt
YXRpb25DdXN0b20uY3BwIFwKIAliaW5kaW5ncy92OC9jdXN0b20vVjhXZWJLaXRDU1NNYXRyaXhD
b25zdHJ1Y3Rvci5jcHAgXAogCWJpbmRpbmdzL3Y4L2N1c3RvbS9WOFdlYktpdFBvaW50Q29uc3Ry
dWN0b3IuY3BwIFwKIAliaW5kaW5ncy92OC9jdXN0b20vVjhXb3JrZXJDb250ZXh0Q3VzdG9tLmNw
cCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9X
ZWJDb3JlL0NNYWtlTGlzdHMudHh0CmluZGV4IDQ4ZjIzN2EuLjcxNjgzNWIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL0NNYWtl
TGlzdHMudHh0CkBAIC0zNDMsNiArMzQzLDggQEAgU0VUKFdlYkNvcmVfSURMX0ZJTEVTCiAgICAg
cGFnZS9TcGVlY2hJbnB1dEV2ZW50LmlkbAogICAgIHBhZ2UvU3BlZWNoSW5wdXRSZXN1bHQuaWRs
CiAgICAgcGFnZS9TcGVlY2hJbnB1dFJlc3VsdExpc3QuaWRsCisgICAgcGFnZS9XZWJLaXRBbmlt
YXRpb24uaWRsCisgICAgcGFnZS9XZWJLaXRBbmltYXRpb25MaXN0LmlkbAogICAgIHBhZ2UvV2Vi
S2l0UG9pbnQuaWRsCiAgICAgcGFnZS9Xb3JrZXJOYXZpZ2F0b3IuaWRsCiAKQEAgLTU3NCw2ICs1
NzYsOCBAQCBTRVQoV2ViQ29yZV9TT1VSQ0VTCiAgICAgYmluZGluZ3MvanMvSlNVaW50MTZBcnJh
eUN1c3RvbS5jcHAgCiAgICAgYmluZGluZ3MvanMvSlNVaW50MzJBcnJheUN1c3RvbS5jcHAKICAg
ICBiaW5kaW5ncy9qcy9KU1VpbnQ4QXJyYXlDdXN0b20uY3BwCisgICAgYmluZGluZ3MvanMvSlNX
ZWJLaXRBbmltYXRpb25DdXN0b20uY3BwCisgICAgYmluZGluZ3MvanMvSlNXZWJLaXRBbmltYXRp
b25MaXN0Q3VzdG9tLmNwcAogICAgIGJpbmRpbmdzL2pzL0pTV2ViS2l0Q1NTS2V5ZnJhbWVSdWxl
Q3VzdG9tLmNwcAogICAgIGJpbmRpbmdzL2pzL0pTV2ViS2l0Q1NTS2V5ZnJhbWVzUnVsZUN1c3Rv
bS5jcHAKICAgICBiaW5kaW5ncy9qcy9KU1dlYktpdENTU01hdHJpeEN1c3RvbS5jcHAKQEAgLTEx
NzMsNiArMTE3Nyw4IEBAIFNFVChXZWJDb3JlX1NPVVJDRVMKICAgICBwYWdlL1NwYXRpYWxOYXZp
Z2F0aW9uLmNwcAogICAgIHBhZ2UvU3VzcGVuZGFibGVUaW1lci5jcHAKICAgICBwYWdlL1VzZXJD
b250ZW50VVJMUGF0dGVybi5jcHAKKyAgICBwYWdlL1dlYktpdEFuaW1hdGlvbi5jcHAKKyAgICBw
YWdlL1dlYktpdEFuaW1hdGlvbkxpc3QuY3BwCiAgICAgcGFnZS9XaW5kb3dGZWF0dXJlcy5jcHAK
ICAgICBwYWdlL1dvcmtlck5hdmlnYXRvci5jcHAKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDE4NWY3ODYuLjg0
MTBjZWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2Uv
V2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw5NCBAQAorMjAxMS0wMy0xMCAgRGVhbiBKYWNr
c29uICA8ZGlub0BhcHBsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgU2ltb24gRnJhc2Vy
IGFuZCBDaHJpcyBNYXJyaW4uCisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTU0MTUxCisgICAgICAgIEltcGxlbWVudCBhbiBBUEkgdG8gcGxheS9wYXVz
ZS9zY3J1YiBhbmltYXRpb25zCisKKyAgICAgICAgVGhpcyBpcyBQYXJ0IDEuIEFkZHMgdGhlIG5l
dyBXZWJLaXRBbmltYXRpb24gYW5kIFdlYktpdEFuaW1hdGlvbkxpc3QKKyAgICAgICAgQVBJcywg
ZXhwb3NlZCB2aWEgRWxlbWVudC5nZXRXZWJLaXRBbmltYXRpb25zKCkuIFRoaXMgZmlyc3QgcGFz
cworICAgICAgICBpcyBhIHJlYWQtb25seSBBUEkgLSBhIHN1YnNlcXVlbnQgY29tbWl0IHdpbGwg
YWRkIHRoZSBhYmlsaXR5CisgICAgICAgIHRvIHNjcnViIGFuaW1hdGlvbnMuCisKKyAgICAgICAg
VGVzdDogYW5pbWF0aW9ucy9hbmltYXRpb24tYXBpLTEuaHRtbAorCisgICAgICAgICogQW5kcm9p
ZC5kZXJpdmVkLmpzY2JpbmRpbmdzLm1rOgorICAgICAgICAqIEFuZHJvaWQuZGVyaXZlZC52OGJp
bmRpbmdzLm1rOgorICAgICAgICAqIEFuZHJvaWQubWs6CisgICAgICAgICogQW5kcm9pZC52OGJp
bmRpbmdzLm1rOgorICAgICAgICAqIENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIENvZGVHZW5l
cmF0b3JzLnByaToKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy5jcHA6CisgICAgICAgICogRGVy
aXZlZFNvdXJjZXMubWFrZToKKyAgICAgICAgKiBHTlVtYWtlZmlsZS5hbToKKyAgICAgICAgKiBX
ZWJDb3JlLmd5cGk6CisgICAgICAgICogV2ViQ29yZS5wcm86CisgICAgICAgICogV2ViQ29yZS52
Y3Byb2ovV2ViQ29yZS52Y3Byb2o6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qOgorICAgICAgICAtIEFsbCBidWlsZCBzZXR0aW5ncyB1cGRhdGVkIGZvciBuZXcg
ZmlsZXMKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU1dlYktpdEFuaW1hdGlvbkN1c3RvbS5jcHA6
IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6SlNXZWJLaXRBbmltYXRpb246Oml0ZXJhdGlvbkNv
dW50KToKKyAgICAgICAgLSBDdXN0b20gcHJvcGVydHkgZ2V0dGVyIHNvIHRoYXQgd2UgY2FuIHJl
dHVybiBJTkZJTklUWQorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTV2ViS2l0QW5pbWF0aW9uTGlz
dEN1c3RvbS5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6SlNXZWJLaXRBbmltYXRpb25M
aXN0OjptYXJrQ2hpbGRyZW4pOgorICAgICAgICAtIE1ha2Ugc3VyZSBXZWJLaXRBbmltYXRpb25z
IGFyZSBtYXJrZWQKKyAgICAgICAgKiBiaW5kaW5ncy92OC9jdXN0b20vVjhXZWJLaXRBbmltYXRp
b25DdXN0b20uY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlY4V2Via2l0QW5pbWF0aW9u
OjppdGVyYXRpb25Db3VudEFjY2Vzc29yR2V0dGVyKToKKyAgICAgICAgLSBDdXN0b20gcHJvcGVy
dHkgZ2V0dGVyIHNvIHRoYXQgd2UgY2FuIHJldHVybiBJTkZJTklUWQorICAgICAgICAqIGRvbS9F
bGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVsZW1lbnQ6OndlYmtpdEdldEFuaW1hdGlv
bnMpOgorICAgICAgICAqIGRvbS9FbGVtZW50Lmg6CisgICAgICAgICogZG9tL0VsZW1lbnQuaWRs
OgorICAgICAgICAtIE5ldyBBUEkgZW50cnkgcG9pbnQKKyAgICAgICAgKiBwYWdlL0RPTVdpbmRv
dy5pZGw6CisgICAgICAgIC0gQ29uc3RydWN0b3IgZGVmaW5pdGlvbnMgZm9yIFdlYktpdEFuaW1h
dGlvbiBhbmQgV2ViS2l0QW5pbWF0aW9uTGlzdAorICAgICAgICAqIHBhZ2UvYW5pbWF0aW9uL0Fu
aW1hdGlvbkJhc2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QW5pbWF0aW9uQmFzZTo6fkFuaW1h
dGlvbkJhc2UpOgorICAgICAgICAtIFNpbmNlIEFuaW1hdGlvbkJhc2UgY2FuIG5vdyBsaXZlIGxv
bmdlciAoaWYgYSBXZWJLaXRBbmltYXRpb24gaXMKKyAgICAgICAgaGVsZCBpbiBKYXZhc2NyaXB0
KSB3ZSBuZWVkIHRvIGd1YXJkIGZvciB0aGUgcmVuZGVyZXIgaGF2aW5nIGRpc2FwcGVhcmVkLgor
ICAgICAgICAoV2ViQ29yZTo6QW5pbWF0aW9uQmFzZTo6c2V0RWxhcHNlZFRpbWUpOgorICAgICAg
ICAoV2ViQ29yZTo6QW5pbWF0aW9uQmFzZTo6cGxheSk6CisgICAgICAgIChXZWJDb3JlOjpBbmlt
YXRpb25CYXNlOjpwYXVzZSk6CisgICAgICAgIC0gU3R1YiBpbXBsZW1lbnRhdGlvbnMgYXQgcHJl
c2VudAorICAgICAgICAqIHBhZ2UvYW5pbWF0aW9uL0FuaW1hdGlvbkJhc2UuaDoKKyAgICAgICAg
KFdlYkNvcmU6OkFuaW1hdGlvbkJhc2U6OmFuaW1hdGlvbik6CisgICAgICAgIC0gRXhwb3NlIHRo
ZSBBbmltYXRpb24gcHJvcGVydGllcworICAgICAgICAqIHBhZ2UvYW5pbWF0aW9uL0FuaW1hdGlv
bkNvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QW5pbWF0aW9uQ29udHJvbGxlclBy
aXZhdGU6OmFuaW1hdGlvbnNGb3JSZW5kZXJlcik6CisgICAgICAgIChXZWJDb3JlOjpBbmltYXRp
b25Db250cm9sbGVyOjphbmltYXRpb25zRm9yUmVuZGVyZXIpOgorICAgICAgICAtIEJ1aWxkcyB0
aGUgbGlzdCBvZiBXZWJLaXRBbmltYXRpb25zCisgICAgICAgICogcGFnZS9hbmltYXRpb24vQW5p
bWF0aW9uQ29udHJvbGxlci5oOgorICAgICAgICAqIHBhZ2UvYW5pbWF0aW9uL0FuaW1hdGlvbkNv
bnRyb2xsZXJQcml2YXRlLmg6CisgICAgICAgICogcGFnZS9hbmltYXRpb24vQ29tcG9zaXRlQW5p
bWF0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNvbXBvc2l0ZUFuaW1hdGlvbjo6dXBkYXRl
S2V5ZnJhbWVBbmltYXRpb25zKToKKyAgICAgICAgLSBNYWtlIHN1cmUgd2UgY2xlYXIgdGhlIHJl
bmRlcmVyIGlmIHdlIGFyZSByZW1vdmluZyB0aGUgYW5pbWF0aW9uCisgICAgICAgIChXZWJDb3Jl
OjpDb21wb3NpdGVBbmltYXRpb246OmFuaW1hdGlvbnMpOgorICAgICAgICAqIHBhZ2UvYW5pbWF0
aW9uL0NvbXBvc2l0ZUFuaW1hdGlvbi5oOgorICAgICAgICAqIHBhZ2UvYW5pbWF0aW9uL1dlYktp
dEFuaW1hdGlvbi5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6V2ViS2l0QW5pbWF0aW9u
OjpXZWJLaXRBbmltYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6V2ViS2l0QW5pbWF0aW9uOjpu
YW1lKToKKyAgICAgICAgKFdlYkNvcmU6OldlYktpdEFuaW1hdGlvbjo6ZHVyYXRpb24pOgorICAg
ICAgICAoV2ViQ29yZTo6V2ViS2l0QW5pbWF0aW9uOjplbGFwc2VkVGltZSk6CisgICAgICAgIChX
ZWJDb3JlOjpXZWJLaXRBbmltYXRpb246OnNldEVsYXBzZWRUaW1lKToKKyAgICAgICAgKFdlYkNv
cmU6OldlYktpdEFuaW1hdGlvbjo6ZGVsYXkpOgorICAgICAgICAoV2ViQ29yZTo6V2ViS2l0QW5p
bWF0aW9uOjppdGVyYXRpb25Db3VudCk6CisgICAgICAgIChXZWJDb3JlOjpXZWJLaXRBbmltYXRp
b246OnBhdXNlZCk6CisgICAgICAgIChXZWJDb3JlOjpXZWJLaXRBbmltYXRpb246OmVuZGVkKToK
KyAgICAgICAgKFdlYkNvcmU6OldlYktpdEFuaW1hdGlvbjo6ZGlyZWN0aW9uKToKKyAgICAgICAg
KFdlYkNvcmU6OldlYktpdEFuaW1hdGlvbjo6ZmlsbE1vZGUpOgorICAgICAgICAoV2ViQ29yZTo6
V2ViS2l0QW5pbWF0aW9uOjpwYXVzZSk6CisgICAgICAgIChXZWJDb3JlOjpXZWJLaXRBbmltYXRp
b246OnBsYXkpOgorICAgICAgICAtIFRoZSBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgbmV3IEFQSS4g
QWxsIHRoZSByZWFkLW9ubHkgcGFydHMgYXJlCisgICAgICAgIGRvbmUsIGJ1dCBlbGFwc2VkVGlt
ZSwgcGxheSgpIGFuZCBwYXVzZSgpIGFyZSBzdHVicy4KKyAgICAgICAgKiBwYWdlL2FuaW1hdGlv
bi9XZWJLaXRBbmltYXRpb24uaDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpXZWJLaXRBbmlt
YXRpb246OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpXZWJLaXRBbmltYXRpb246On5XZWJL
aXRBbmltYXRpb24pOgorICAgICAgICAqIHBhZ2UvYW5pbWF0aW9uL1dlYktpdEFuaW1hdGlvbi5p
ZGw6IEFkZGVkLgorICAgICAgICAqIHBhZ2UvYW5pbWF0aW9uL1dlYktpdEFuaW1hdGlvbkxpc3Qu
Y3BwOiBBZGRlZC4KKyAgICAgICAgKiBwYWdlL2FuaW1hdGlvbi9XZWJLaXRBbmltYXRpb25MaXN0
Lmg6IEFkZGVkLgorICAgICAgICAqIHBhZ2UvYW5pbWF0aW9uL1dlYktpdEFuaW1hdGlvbkxpc3Qu
aWRsOiBBZGRlZC4KKyAgICAgICAgLSBDb3BpZXMgTm9kZUxpc3QgaW1wbGVtZW50YXRpb24KKwog
MjAxMS0wMy0xMCAgRGF2aWQgSHlhdHQgIDxoeWF0dEBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2
aWV3ZWQgYnkgU2ltb24gRnJhc2VyLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ29kZUdl
bmVyYXRvcnMucHJpIGIvU291cmNlL1dlYkNvcmUvQ29kZUdlbmVyYXRvcnMucHJpCmluZGV4IDNl
NDU5YTYuLmYxMGM4MWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NvZGVHZW5lcmF0b3Jz
LnByaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9Db2RlR2VuZXJhdG9ycy5wcmkKQEAgLTMzNCw2ICsz
MzQsOCBAQCBJRExfQklORElOR1MgKz0gXAogICAgIHBhZ2UvU3BlZWNoSW5wdXRFdmVudC5pZGwg
XAogICAgIHBhZ2UvU3BlZWNoSW5wdXRSZXN1bHQuaWRsIFwKICAgICBwYWdlL1NwZWVjaElucHV0
UmVzdWx0TGlzdC5pZGwgXAorICAgIHBhZ2UvV2ViS2l0QW5pbWF0aW9uLmlkbCBcCisgICAgcGFn
ZS9XZWJLaXRBbmltYXRpb25MaXN0LmlkbCBcCiAgICAgcGFnZS9XZWJLaXRQb2ludC5pZGwgXAog
ICAgIHBhZ2UvV29ya2VyTmF2aWdhdG9yLmlkbCBcCiAgICAgcGx1Z2lucy9ET01QbHVnaW4uaWRs
IFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLmNwcAppbmRleCA5YWIzN2VjLi4yNDAyMmY3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvRGVyaXZlZFNvdXJjZXMuY3BwCkBAIC00MzUsNyArNDM1LDkgQEAKICNpbmNsdWRlICJK
U1VpbnQ4QXJyYXkuY3BwIgogI2luY2x1ZGUgIkpTVUlFdmVudC5jcHAiCiAjaW5jbHVkZSAiSlNW
YWxpZGl0eVN0YXRlLmNwcCIKKyNpbmNsdWRlICJKU1dlYktpdEFuaW1hdGlvbi5jcHAiCiAjaW5j
bHVkZSAiSlNXZWJLaXRBbmltYXRpb25FdmVudC5jcHAiCisjaW5jbHVkZSAiSlNXZWJLaXRBbmlt
YXRpb25MaXN0LmNwcCIKICNpbmNsdWRlICJKU1dlYktpdENTU0tleWZyYW1lUnVsZS5jcHAiCiAj
aW5jbHVkZSAiSlNXZWJLaXRDU1NLZXlmcmFtZXNSdWxlLmNwcCIKICNpbmNsdWRlICJKU1dlYktp
dENTU1RyYW5zZm9ybVZhbHVlLmNwcCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2
ZWRTb3VyY2VzLm1ha2UgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCmluZGV4
IDkxNTgwMTEuLmI2MjAwMmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3Vy
Y2VzLm1ha2UKKysrIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQpAQCAtNTEy
LDcgKzUxMiw5IEBAIERPTV9DTEFTU0VTID0gXAogICAgIFRyZWVXYWxrZXIgXAogICAgIFVJRXZl
bnQgXAogICAgIFZhbGlkaXR5U3RhdGUgXAorICAgIFdlYktpdEFuaW1hdGlvbiBcCiAgICAgV2Vi
S2l0QW5pbWF0aW9uRXZlbnQgXAorICAgIFdlYktpdEFuaW1hdGlvbkxpc3QgXAogICAgIFdlYktp
dENTU0tleWZyYW1lUnVsZSBcCiAgICAgV2ViS2l0Q1NTS2V5ZnJhbWVzUnVsZSBcCiAgICAgV2Vi
S2l0Q1NTTWF0cml4IFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmFt
IGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0KaW5kZXggYzNjZTlhNS4uZTY0NWJmOCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0KKysrIGIvU291cmNlL1dl
YkNvcmUvR05VbWFrZWZpbGUuYW0KQEAgLTU5OCw3ICs1OTgsMTEgQEAgd2ViY29yZV9idWlsdF9z
b3VyY2VzICs9IFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTV2ViR0xVbmlmb3JtTG9jYXRp
b24uaCBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1dlYkdMVmVydGV4QXJyYXlPYmplY3RP
RVMuY3BwIFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTV2ViR0xWZXJ0ZXhBcnJheU9iamVj
dE9FUy5oIFwKKwlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTV2ViS2l0QW5pbWF0aW9uLmNwcCBc
CisJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1dlYktpdEFuaW1hdGlvbi5oIFwKIAlEZXJpdmVk
U291cmNlcy9XZWJDb3JlL0pTV2ViS2l0QW5pbWF0aW9uRXZlbnQuY3BwIFwKKwlEZXJpdmVkU291
cmNlcy9XZWJDb3JlL0pTV2ViS2l0QW5pbWF0aW9uTGlzdC5oIFwKKwlEZXJpdmVkU291cmNlcy9X
ZWJDb3JlL0pTV2ViS2l0QW5pbWF0aW9uTGlzdC5jcHAgXAogCURlcml2ZWRTb3VyY2VzL1dlYkNv
cmUvSlNXZWJLaXRBbmltYXRpb25FdmVudC5oIFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pT
V2ViS2l0Q1NTS2V5ZnJhbWVSdWxlLmNwcCBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1dl
YktpdENTU0tleWZyYW1lUnVsZS5oIFwKQEAgLTg3MCw2ICs4NzQsOCBAQCB3ZWJjb3JlX3NvdXJj
ZXMgKz0gXAogCVNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTVWludDE2QXJyYXlDdXN0b20u
Y3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1VpbnQzMkFycmF5Q3VzdG9tLmNw
cCBcCiAJU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNVaW50OEFycmF5Q3VzdG9tLmNwcCBc
CisJU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNXZWJLaXRBbmltYXRpb25DdXN0b20uY3Bw
IFwKKwlTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dlYktpdEFuaW1hdGlvbkxpc3RDdXN0
b20uY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dlYktpdENTU0tleWZyYW1l
UnVsZUN1c3RvbS5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTV2ViS2l0Q1NT
S2V5ZnJhbWVzUnVsZUN1c3RvbS5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pT
V2ViR0xSZW5kZXJpbmdDb250ZXh0Q3VzdG9tLmNwcCBcCkBAIC0yMzA1LDYgKzIzMTEsMTAgQEAg
d2ViY29yZV9zb3VyY2VzICs9IFwKIAlTb3VyY2UvV2ViQ29yZS9wYWdlL1VzZXJTY3JpcHRUeXBl
cy5oIFwKIAlTb3VyY2UvV2ViQ29yZS9wYWdlL1VzZXJTdHlsZVNoZWV0LmggXAogCVNvdXJjZS9X
ZWJDb3JlL3BhZ2UvVXNlclN0eWxlU2hlZXRUeXBlcy5oIFwKKwlTb3VyY2UvV2ViQ29yZS9wYWdl
L1dlYktpdEFuaW1hdGlvbi5oIFwKKwlTb3VyY2UvV2ViQ29yZS9wYWdlL1dlYktpdEFuaW1hdGlv
bi5jcHAgXAorCVNvdXJjZS9XZWJDb3JlL3BhZ2UvV2ViS2l0QW5pbWF0aW9uTGlzdC5oIFwKKwlT
b3VyY2UvV2ViQ29yZS9wYWdlL1dlYktpdEFuaW1hdGlvbkxpc3QuY3BwIFwKIAlTb3VyY2UvV2Vi
Q29yZS9wYWdlL1dlYktpdFBvaW50LmggXAogCVNvdXJjZS9XZWJDb3JlL3BhZ2UvV2luZG93RmVh
dHVyZXMuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9wYWdlL1dpbmRvd0ZlYXR1cmVzLmggXApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpIGIvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS5neXBpCmluZGV4IGM4MzEzYjkuLjBiYTUzZGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUuZ3lwaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKQEAgLTI3
Niw2ICsyNzYsOCBAQAogICAgICAgICAgICAgJ3BhZ2UvU3BlZWNoSW5wdXRFdmVudC5pZGwnLAog
ICAgICAgICAgICAgJ3BhZ2UvU3BlZWNoSW5wdXRSZXN1bHQuaWRsJywKICAgICAgICAgICAgICdw
YWdlL1NwZWVjaElucHV0UmVzdWx0TGlzdC5pZGwnLAorICAgICAgICAgICAgJ3BhZ2UvV2ViS2l0
QW5pbWF0aW9uLmlkbCcsCisgICAgICAgICAgICAncGFnZS9XZWJLaXRBbmltYXRpb25MaXN0Lmlk
bCcsCiAgICAgICAgICAgICAncGFnZS9XZWJLaXRQb2ludC5pZGwnLAogICAgICAgICAgICAgJ3Bh
Z2UvV29ya2VyTmF2aWdhdG9yLmlkbCcsCiAgICAgICAgICAgICAncGx1Z2lucy9ET01NaW1lVHlw
ZS5pZGwnLApAQCAtNzg3LDYgKzc4OSw4IEBACiAgICAgICAgICAgICAnYmluZGluZ3MvanMvSlNV
aW50MzJBcnJheUN1c3RvbS5jcHAnLAogICAgICAgICAgICAgJ2JpbmRpbmdzL2pzL0pTVWludDhB
cnJheUN1c3RvbS5jcHAnLAogICAgICAgICAgICAgJ2JpbmRpbmdzL2pzL0pTV2ViR0xSZW5kZXJp
bmdDb250ZXh0Q3VzdG9tLmNwcCcsCisgICAgICAgICAgICAnYmluZGluZ3MvanMvSlNXZWJLaXRB
bmltYXRpb25DdXN0b20uY3BwJywKKyAgICAgICAgICAgICdiaW5kaW5ncy9qcy9KU1dlYktpdEFu
aW1hdGlvbkxpc3RDdXN0b20uY3BwJywKICAgICAgICAgICAgICdiaW5kaW5ncy9qcy9KU1dlYktp
dENTU0tleWZyYW1lUnVsZUN1c3RvbS5jcHAnLAogICAgICAgICAgICAgJ2JpbmRpbmdzL2pzL0pT
V2ViS2l0Q1NTS2V5ZnJhbWVzUnVsZUN1c3RvbS5jcHAnLAogICAgICAgICAgICAgJ2JpbmRpbmdz
L2pzL0pTV2ViS2l0Q1NTTWF0cml4Q3VzdG9tLmNwcCcsCkBAIC0xMTE4LDYgKzExMjIsNyBAQAog
ICAgICAgICAgICAgJ2JpbmRpbmdzL3Y4L2N1c3RvbS9WOFVpbnQzMkFycmF5Q3VzdG9tLmNwcCcs
CiAgICAgICAgICAgICAnYmluZGluZ3MvdjgvY3VzdG9tL1Y4VWludDhBcnJheUN1c3RvbS5jcHAn
LAogICAgICAgICAgICAgJ2JpbmRpbmdzL3Y4L2N1c3RvbS9WOFdlYkdMUmVuZGVyaW5nQ29udGV4
dEN1c3RvbS5jcHAnLAorICAgICAgICAgICAgJ2JpbmRpbmdzL3Y4L2N1c3RvbS9WOFdlYktpdEFu
aW1hdGlvbkN1c3RvbS5jcHAnLAogICAgICAgICAgICAgJ2JpbmRpbmdzL3Y4L2N1c3RvbS9WOFdl
YktpdENTU01hdHJpeENvbnN0cnVjdG9yLmNwcCcsCiAgICAgICAgICAgICAnYmluZGluZ3Mvdjgv
Y3VzdG9tL1Y4V2ViS2l0UG9pbnRDb25zdHJ1Y3Rvci5jcHAnLAogICAgICAgICAgICAgJ2JpbmRp
bmdzL3Y4L2N1c3RvbS9WOFdlYlNvY2tldEN1c3RvbS5jcHAnLApAQCAtMjUxMCw2ICsyNTE1LDEw
IEBACiAgICAgICAgICAgICAncGFnZS9Vc2VyU2NyaXB0VHlwZXMuaCcsCiAgICAgICAgICAgICAn
cGFnZS9Vc2VyU3R5bGVTaGVldC5oJywKICAgICAgICAgICAgICdwYWdlL1VzZXJTdHlsZVNoZWV0
VHlwZXMuaCcsCisgICAgICAgICAgICAncGFnZS9XZWJLaXRBbmltYXRpb24uY3BwJywKKyAgICAg
ICAgICAgICdwYWdlL1dlYktpdEFuaW1hdGlvbi5oJywKKyAgICAgICAgICAgICdwYWdlL1dlYktp
dEFuaW1hdGlvbkxpc3QuY3BwJywKKyAgICAgICAgICAgICdwYWdlL1dlYktpdEFuaW1hdGlvbkxp
c3QuaCcsCiAgICAgICAgICAgICAncGFnZS9XZWJLaXRQb2ludC5oJywKICAgICAgICAgICAgICdw
YWdlL1dpbmRvd0ZlYXR1cmVzLmNwcCcsCiAgICAgICAgICAgICAncGFnZS9XaW5kb3dGZWF0dXJl
cy5oJywKQEAgLTY4NTcsOSArNjg2NiwxMyBAQAogICAgICAgICAgICAgJzwoUFJPRFVDVF9ESVIp
L0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvRE9NV2ViR0xWZXJ0ZXhBcnJheU9iamVjdE9FUy5oJywK
ICAgICAgICAgICAgICc8KFBST0RVQ1RfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0RPTVdl
YkdMVmVydGV4QXJyYXlPYmplY3RPRVMubW0nLAogICAgICAgICAgICAgJzwoUFJPRFVDVF9ESVIp
L0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvRE9NV2ViR0xWZXJ0ZXhBcnJheU9iamVjdE9FU0ludGVy
bmFsLmgnLAorICAgICAgICAgICAgJzwoUFJPRFVDVF9ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNv
cmUvRE9NV2ViS2l0QW5pbWF0aW9uLmgnLAorICAgICAgICAgICAgJzwoUFJPRFVDVF9ESVIpL0Rl
cml2ZWRTb3VyY2VzL1dlYkNvcmUvRE9NV2ViS2l0QW5pbWF0aW9uLm1tJywKICAgICAgICAgICAg
ICc8KFBST0RVQ1RfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0RPTVdlYktpdEFuaW1hdGlv
bkV2ZW50LmgnLAogICAgICAgICAgICAgJzwoUFJPRFVDVF9ESVIpL0Rlcml2ZWRTb3VyY2VzL1dl
YkNvcmUvRE9NV2ViS2l0QW5pbWF0aW9uRXZlbnQubW0nLAogICAgICAgICAgICAgJzwoUFJPRFVD
VF9ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvRE9NV2ViS2l0QW5pbWF0aW9uRXZlbnRJbnRl
cm5hbC5oJywKKyAgICAgICAgICAgICc8KFBST0RVQ1RfRElSKS9EZXJpdmVkU291cmNlcy9XZWJD
b3JlL0RPTVdlYktpdEFuaW1hdGlvbkxpc3QuaCcsCisgICAgICAgICAgICAnPChQUk9EVUNUX0RJ
UikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9ET01XZWJLaXRBbmltYXRpb25MaXN0Lm1tJywKICAg
ICAgICAgICAgICc8KFBST0RVQ1RfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0RPTVdlYktp
dENTU0tleWZyYW1lUnVsZS5oJywKICAgICAgICAgICAgICc8KFBST0RVQ1RfRElSKS9EZXJpdmVk
U291cmNlcy9XZWJDb3JlL0RPTVdlYktpdENTU0tleWZyYW1lUnVsZS5tbScsCiAgICAgICAgICAg
ICAnPChQUk9EVUNUX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9ET01XZWJLaXRDU1NLZXlm
cmFtZVJ1bGVJbnRlcm5hbC5oJywKQEAgLTc5MDYsOCArNzkxOSwxMiBAQAogICAgICAgICAgICAg
JzwoUFJPRFVDVF9ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNXZWJHTFVuaWZvcm1Mb2Nh
dGlvbi5oJywKICAgICAgICAgICAgICc8KFBST0RVQ1RfRElSKS9EZXJpdmVkU291cmNlcy9XZWJD
b3JlL0pTV2ViR0xWZXJ0ZXhBcnJheU9iamVjdE9FUy5jcHAnLAogICAgICAgICAgICAgJzwoUFJP
RFVDVF9ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNXZWJHTFZlcnRleEFycmF5T2JqZWN0
T0VTLmgnLAorICAgICAgICAgICAgJzwoUFJPRFVDVF9ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNv
cmUvSlNXZWJLaXRBbmltYXRpb24uY3BwJywKKyAgICAgICAgICAgICc8KFBST0RVQ1RfRElSKS9E
ZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTV2ViS2l0QW5pbWF0aW9uLmgnLAogICAgICAgICAgICAg
JzwoUFJPRFVDVF9ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNXZWJLaXRBbmltYXRpb25F
dmVudC5jcHAnLAogICAgICAgICAgICAgJzwoUFJPRFVDVF9ESVIpL0Rlcml2ZWRTb3VyY2VzL1dl
YkNvcmUvSlNXZWJLaXRBbmltYXRpb25FdmVudC5oJywKKyAgICAgICAgICAgICc8KFBST0RVQ1Rf
RElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTV2ViS2l0QW5pbWF0aW9uTGlzdC5jcHAnLAor
ICAgICAgICAgICAgJzwoUFJPRFVDVF9ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNXZWJL
aXRBbmltYXRpb25MaXN0LmgnLAogICAgICAgICAgICAgJzwoUFJPRFVDVF9ESVIpL0Rlcml2ZWRT
b3VyY2VzL1dlYkNvcmUvSlNXZWJLaXRDU1NLZXlmcmFtZVJ1bGUuY3BwJywKICAgICAgICAgICAg
ICc8KFBST0RVQ1RfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTV2ViS2l0Q1NTS2V5ZnJh
bWVSdWxlLmgnLAogICAgICAgICAgICAgJzwoUFJPRFVDVF9ESVIpL0Rlcml2ZWRTb3VyY2VzL1dl
YkNvcmUvSlNXZWJLaXRDU1NLZXlmcmFtZXNSdWxlLmNwcCcsCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnBybyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUucHJvCmluZGV4IDE0
YTdkM2IuLmFlMjM2ZDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUucHJvCisr
KyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUucHJvCkBAIC0yMDMsNiArMjAzLDcgQEAgdjggewog
ICAgICAgICBiaW5kaW5ncy92OC9jdXN0b20vVjhTdG9yYWdlQ3VzdG9tLmNwcCBcCiAgICAgICAg
IGJpbmRpbmdzL3Y4L2N1c3RvbS9WOFN0eWxlU2hlZXRDdXN0b20uY3BwIFwKICAgICAgICAgYmlu
ZGluZ3MvdjgvY3VzdG9tL1Y4U3R5bGVTaGVldExpc3RDdXN0b20uY3BwIFwKKyAgICAgICAgYmlu
ZGluZ3MvdjgvY3VzdG9tL1Y4V2ViS2l0QW5pbWF0aW9uQ3VzdG9tLmNwcCBcCiAgICAgICAgIGJp
bmRpbmdzL3Y4L2N1c3RvbS9WOFdlYktpdENTU01hdHJpeENvbnN0cnVjdG9yLmNwcCBcCiAgICAg
ICAgIGJpbmRpbmdzL3Y4L2N1c3RvbS9WOFdlYktpdFBvaW50Q29uc3RydWN0b3IuY3BwIFwKICAg
ICAgICAgYmluZGluZ3MvdjgvY3VzdG9tL1Y4V29ya2VyQ29udGV4dEN1c3RvbS5jcHAgXApAQCAt
MzMyLDYgKzMzMyw4IEBAIHY4IHsKICAgICAgICAgYmluZGluZ3MvanMvSlNVaW50MTZBcnJheUN1
c3RvbS5jcHAgXAogICAgICAgICBiaW5kaW5ncy9qcy9KU1VpbnQzMkFycmF5Q3VzdG9tLmNwcCBc
CiAgICAgICAgIGJpbmRpbmdzL2pzL0pTVWludDhBcnJheUN1c3RvbS5jcHAgXAorICAgICAgICBi
aW5kaW5ncy9qcy9KU1dlYktpdEFuaW1hdGlvbkN1c3RvbS5jcHAgXAorICAgICAgICBiaW5kaW5n
cy9qcy9KU1dlYktpdEFuaW1hdGlvbkxpc3RDdXN0b20uY3BwIFwKICAgICAgICAgYmluZGluZ3Mv
anMvSlNXZWJLaXRDU1NLZXlmcmFtZVJ1bGVDdXN0b20uY3BwIFwKICAgICAgICAgYmluZGluZ3Mv
anMvSlNXZWJLaXRDU1NLZXlmcmFtZXNSdWxlQ3VzdG9tLmNwcCBcCiAgICAgICAgIGJpbmRpbmdz
L2pzL0pTV2ViS2l0Q1NTTWF0cml4Q3VzdG9tLmNwcCBcCkBAIC05MTIsNiArOTE1LDggQEAgU09V
UkNFUyArPSBcCiAgICAgcGFnZS9TcGF0aWFsTmF2aWdhdGlvbi5jcHAgXAogICAgIHBhZ2UvU3Vz
cGVuZGFibGVUaW1lci5jcHAgXAogICAgIHBhZ2UvVXNlckNvbnRlbnRVUkxQYXR0ZXJuLmNwcCBc
CisgICAgcGFnZS9XZWJLaXRBbmltYXRpb24uY3BwIFwKKyAgICBwYWdlL1dlYktpdEFuaW1hdGlv
bkxpc3QuY3BwIFwKICAgICBwYWdlL1dpbmRvd0ZlYXR1cmVzLmNwcCBcCiAgICAgcGx1Z2lucy9Q
bHVnaW5EYXRhLmNwcCBcCiAgICAgcGx1Z2lucy9ET01QbHVnaW5BcnJheS5jcHAgXApAQCAtMTgz
Myw2ICsxODM4LDggQEAgSEVBREVSUyArPSBcCiAgICAgcGFnZS9TcGVlY2hJbnB1dExpc3RlbmVy
LmggXAogICAgIHBhZ2UvU3BlZWNoSW5wdXRSZXN1bHQuaCBcCiAgICAgcGFnZS9TcGVlY2hJbnB1
dFJlc3VsdExpc3QuaCBcCisgICAgcGFnZS9XZWJLaXRBbmltYXRpb24uaCBcCisgICAgcGFnZS9X
ZWJLaXRBbmltYXRpb25MaXN0LmggXAogICAgIHBhZ2UvV2luZG93RmVhdHVyZXMuaCBcCiAgICAg
cGFnZS9Xb3JrZXJOYXZpZ2F0b3IuaCBcCiAgICAgcGxhdGZvcm0vYW5pbWF0aW9uL0FuaW1hdGlv
bi5oIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUu
dmNwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKaW5k
ZXggZDliYzc3MS4uZjZmMjU4MCAxMDA3NTUKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52
Y3Byb2ovV2ViQ29yZS52Y3Byb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ov
V2ViQ29yZS52Y3Byb2oKQEAgLTIxNjg2LDYgKzIxNjg2LDYyIEBACiAJCQkJPgogCQkJPC9GaWxl
PgogCQkJPEZpbGUKKwkJCQlSZWxhdGl2ZVBhdGg9IiQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxv
YmpcJChQcm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNcSlNXZWJLaXRBbmltYXRpb24uY3BwIgor
CQkJCT4KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJTmFtZT0iRGVidWd8V2luMzIiCisJ
CQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQk+CisJCQkJCTxUb29sCisJCQkJCQlO
YW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkvPgorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+
CisJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJCQkJCU5hbWU9IlJlbGVhc2V8V2luMzIiCisJCQkJ
CUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQk+CisJCQkJCTxUb29sCisJCQkJCQlOYW1l
PSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkvPgorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJ
CQkJPEZpbGVDb25maWd1cmF0aW9uCisJCQkJCU5hbWU9IkRlYnVnX0NhaXJvX0NGTGl0ZXxXaW4z
MiIKKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCT4KKwkJCQkJPFRvb2wKKwkJ
CQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCS8+CisJCQkJPC9GaWxlQ29uZmlndXJh
dGlvbj4KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJTmFtZT0iUmVsZWFzZV9DYWlyb19D
RkxpdGV8V2luMzIiCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQk+CisJCQkJ
CTxUb29sCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkvPgorCQkJCTwvRmls
ZUNvbmZpZ3VyYXRpb24+CisJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJCQkJCU5hbWU9IkRlYnVn
X0FsbHxXaW4zMiIKKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCT4KKwkJCQkJ
PFRvb2wKKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCS8+CisJCQkJPC9GaWxl
Q29uZmlndXJhdGlvbj4KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJTmFtZT0iUmVsZWFz
ZV9MVENHfFdpbjMyIgorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJPgorCQkJ
CQk8VG9vbAorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJLz4KKwkJCQk8L0Zp
bGVDb25maWd1cmF0aW9uPgorCQkJPC9GaWxlPgorCQkJPEZpbGUKKwkJCQlSZWxhdGl2ZVBhdGg9
IiQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxvYmpcJChQcm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJj
ZXNcSlNXZWJLaXRBbmltYXRpb24uaCIKKwkJCQk+CisJCQk8L0ZpbGU+CisJCQk8RmlsZQogCQkJ
CVJlbGF0aXZlUGF0aD0iJChDb25maWd1cmF0aW9uQnVpbGREaXIpXG9ialwkKFByb2plY3ROYW1l
KVxEZXJpdmVkU291cmNlc1xKU1dlYktpdEFuaW1hdGlvbkV2ZW50LmNwcCIKIAkJCQk+CiAJCQkJ
PEZpbGVDb25maWd1cmF0aW9uCkBAIC0yMTc0Miw2ICsyMTc5OCw2MiBAQAogCQkJCT4KIAkJCTwv
RmlsZT4KIAkJCTxGaWxlCisJCQkJUmVsYXRpdmVQYXRoPSIkKENvbmZpZ3VyYXRpb25CdWlsZERp
cilcb2JqXCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2VzXEpTV2ViS2l0QW5pbWF0aW9uTGlz
dC5jcHAiCisJCQkJPgorCQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQlOYW1lPSJEZWJ1Z3xX
aW4zMiIKKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCT4KKwkJCQkJPFRvb2wK
KwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCS8+CisJCQkJPC9GaWxlQ29uZmln
dXJhdGlvbj4KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJTmFtZT0iUmVsZWFzZXxXaW4z
MiIKKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCT4KKwkJCQkJPFRvb2wKKwkJ
CQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCS8+CisJCQkJPC9GaWxlQ29uZmlndXJh
dGlvbj4KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJTmFtZT0iRGVidWdfQ2Fpcm9fQ0ZM
aXRlfFdpbjMyIgorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJPgorCQkJCQk8
VG9vbAorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJLz4KKwkJCQk8L0ZpbGVD
b25maWd1cmF0aW9uPgorCQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQlOYW1lPSJSZWxlYXNl
X0NhaXJvX0NGTGl0ZXxXaW4zMiIKKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJ
CT4KKwkJCQkJPFRvb2wKKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCS8+CisJ
CQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJTmFt
ZT0iRGVidWdfQWxsfFdpbjMyIgorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJ
PgorCQkJCQk8VG9vbAorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJLz4KKwkJ
CQk8L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQlOYW1l
PSJSZWxlYXNlX0xUQ0d8V2luMzIiCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJ
CQk+CisJCQkJCTxUb29sCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkvPgor
CQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQk8L0ZpbGU+CisJCQk8RmlsZQorCQkJCVJlbGF0
aXZlUGF0aD0iJChDb25maWd1cmF0aW9uQnVpbGREaXIpXG9ialwkKFByb2plY3ROYW1lKVxEZXJp
dmVkU291cmNlc1xKU1dlYktpdEFuaW1hdGlvbkxpc3QuaCIKKwkJCQk+CisJCQk8L0ZpbGU+CisJ
CQk8RmlsZQogCQkJCVJlbGF0aXZlUGF0aD0iJChDb25maWd1cmF0aW9uQnVpbGREaXIpXG9ialwk
KFByb2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xKU1dlYktpdENTU0tleWZyYW1lUnVsZS5jcHAi
CiAJCQkJPgogCQkJCTxGaWxlQ29uZmlndXJhdGlvbgpAQCAtMjQ3MzQsNiArMjQ4NDYsMjIgQEAK
IAkJCQk+CiAJCQk8L0ZpbGU+CiAJCQk8RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0iLi5ccGFnZVxX
ZWJLaXRBbmltYXRpb24uY3BwIgorCQkJCT4KKwkJCTwvRmlsZT4KKwkJCTxGaWxlCisJCQkJUmVs
YXRpdmVQYXRoPSIuLlxwYWdlXFdlYktpdEFuaW1hdGlvbi5oIgorCQkJCT4KKwkJCTwvRmlsZT4K
KwkJCTxGaWxlCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxwYWdlXFdlYktpdEFuaW1hdGlvbkxpc3Qu
Y3BwIgorCQkJCT4KKwkJCTwvRmlsZT4KKwkJCTxGaWxlCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxw
YWdlXFdlYktpdEFuaW1hdGlvbkxpc3QuaCIKKwkJCQk+CisJCQk8L0ZpbGU+CisJCQk8RmlsZQog
CQkJCVJlbGF0aXZlUGF0aD0iLi5ccGFnZVxMb2NhdGlvbi5jcHAiCiAJCQkJPgogCQkJPC9GaWxl
PgpAQCAtNjIxMzMsNiArNjIyNjEsMTEwIEBACiAJCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CiAJ
CQkJPC9GaWxlPgogCQkJCTxGaWxlCisJCQkJCVJlbGF0aXZlUGF0aD0iLi5cYmluZGluZ3NcanNc
SlNXZWJLaXRBbmltYXRpb25DdXN0b20uY3BwIgorCQkJCQk+CisJCQkJCTxGaWxlQ29uZmlndXJh
dGlvbgorCQkJCQkJTmFtZT0iRGVidWd8V2luMzIiCisJCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0i
dHJ1ZSIKKwkJCQkJCT4KKwkJCQkJCTxUb29sCisJCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9v
bCIKKwkJCQkJCS8+CisJCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJCTxGaWxlQ29uZmln
dXJhdGlvbgorCQkJCQkJTmFtZT0iUmVsZWFzZXxXaW4zMiIKKwkJCQkJCUV4Y2x1ZGVkRnJvbUJ1
aWxkPSJ0cnVlIgorCQkJCQkJPgorCQkJCQkJPFRvb2wKKwkJCQkJCQlOYW1lPSJWQ0NMQ29tcGls
ZXJUb29sIgorCQkJCQkJLz4KKwkJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCQkJPEZpbGVD
b25maWd1cmF0aW9uCisJCQkJCQlOYW1lPSJEZWJ1Z19DYWlyb19DRkxpdGV8V2luMzIiCisJCQkJ
CQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJCT4KKwkJCQkJCTxUb29sCisJCQkJCQkJ
TmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJCS8+CisJCQkJCTwvRmlsZUNvbmZpZ3VyYXRp
b24+CisJCQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQkJTmFtZT0iUmVsZWFzZV9DYWlyb19D
RkxpdGV8V2luMzIiCisJCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJCT4KKwkJ
CQkJCTxUb29sCisJCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJCS8+CisJCQkJ
CTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQkJTmFt
ZT0iRGVidWdfQWxsfFdpbjMyIgorCQkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJ
CQk+CisJCQkJCQk8VG9vbAorCQkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCQkv
PgorCQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJ
CQkJCU5hbWU9IlJlbGVhc2VfTFRDR3xXaW4zMiIKKwkJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0
cnVlIgorCQkJCQkJPgorCQkJCQkJPFRvb2wKKwkJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29s
IgorCQkJCQkJLz4KKwkJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCQk8L0ZpbGU+CisJCQkJ
PEZpbGUKKwkJCQkJUmVsYXRpdmVQYXRoPSIuLlxiaW5kaW5nc1xqc1xKU1dlYktpdEFuaW1hdGlv
bkxpc3RDdXN0b20uY3BwIgorCQkJCQk+CisJCQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQkJ
TmFtZT0iRGVidWd8V2luMzIiCisJCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJ
CT4KKwkJCQkJCTxUb29sCisJCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJCS8+
CisJCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJ
CQkJTmFtZT0iUmVsZWFzZXxXaW4zMiIKKwkJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgor
CQkJCQkJPgorCQkJCQkJPFRvb2wKKwkJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJ
CQkJLz4KKwkJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCQkJPEZpbGVDb25maWd1cmF0aW9u
CisJCQkJCQlOYW1lPSJEZWJ1Z19DYWlyb19DRkxpdGV8V2luMzIiCisJCQkJCQlFeGNsdWRlZEZy
b21CdWlsZD0idHJ1ZSIKKwkJCQkJCT4KKwkJCQkJCTxUb29sCisJCQkJCQkJTmFtZT0iVkNDTENv
bXBpbGVyVG9vbCIKKwkJCQkJCS8+CisJCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJCTxG
aWxlQ29uZmlndXJhdGlvbgorCQkJCQkJTmFtZT0iUmVsZWFzZV9DYWlyb19DRkxpdGV8V2luMzIi
CisJCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJCT4KKwkJCQkJCTxUb29sCisJ
CQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJCS8+CisJCQkJCTwvRmlsZUNvbmZp
Z3VyYXRpb24+CisJCQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQkJTmFtZT0iRGVidWdfQWxs
fFdpbjMyIgorCQkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCQk+CisJCQkJCQk8
VG9vbAorCQkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCQkvPgorCQkJCQk8L0Zp
bGVDb25maWd1cmF0aW9uPgorCQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJCU5hbWU9IlJl
bGVhc2VfTFRDR3xXaW4zMiIKKwkJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQkJ
PgorCQkJCQkJPFRvb2wKKwkJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkJLz4K
KwkJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCQk8L0ZpbGU+CisJCQkJPEZpbGUKIAkJCQkJ
UmVsYXRpdmVQYXRoPSIuLlxiaW5kaW5nc1xqc1xKU1dlYktpdENTU0tleWZyYW1lUnVsZUN1c3Rv
bS5jcHAiCiAJCQkJCT4KIAkJCQkJPEZpbGVDb25maWd1cmF0aW9uCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggODg1ZGQ3MC4uZjg1
ZjQyNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagpAQCAtNzY5LDYgKzc2OSwyMCBAQAogCQkzMTZGRTExODBFNkUxREE3MDBCRjYwODgg
LyogSW1wbGljaXRBbmltYXRpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDMxNkZFMTBFMEU2RTFEQTcwMEJGNjA4OCAvKiBJbXBsaWNpdEFuaW1hdGlv
bi5oICovOyB9OwogCQkzMTZGRTExOTBFNkUxREE3MDBCRjYwODggLyogS2V5ZnJhbWVBbmltYXRp
b24uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzE2
RkUxMEYwRTZFMURBNzAwQkY2MDg4IC8qIEtleWZyYW1lQW5pbWF0aW9uLmNwcCAqLzsgfTsKIAkJ
MzE2RkUxMUEwRTZFMURBNzAwQkY2MDg4IC8qIEtleWZyYW1lQW5pbWF0aW9uLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMTZGRTExMDBFNkUxREE3MDBC
RjYwODggLyogS2V5ZnJhbWVBbmltYXRpb24uaCAqLzsgfTsKKwkJMzE5NDYxNjIxMzAyMEIyMDAw
NEJCM0Y4IC8qIEpTV2ViS2l0QW5pbWF0aW9uLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMxOTQ2MTYwMTMwMjBCMjAwMDRCQjNGOCAvKiBKU1dlYktp
dEFuaW1hdGlvbi5jcHAgKi87IH07CisJCTMxOTQ2MTYzMTMwMjBCMjAwMDRCQjNGOCAvKiBKU1dl
YktpdEFuaW1hdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMzE5NDYxNjExMzAyMEIyMDAwNEJCM0Y4IC8qIEpTV2ViS2l0QW5pbWF0aW9uLmggKi87
IH07CisJCTMxOTQ2MTZBMTMwMjBCNjYwMDRCQjNGOCAvKiBET01XZWJLaXRBbmltYXRpb24uaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMxOTQ2MTY4MTMw
MjBCNjYwMDRCQjNGOCAvKiBET01XZWJLaXRBbmltYXRpb24uaCAqLzsgfTsKKwkJMzE5NDYxNkIx
MzAyMEI2NjAwNEJCM0Y4IC8qIERPTVdlYktpdEFuaW1hdGlvbi5tbSBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMxOTQ2MTY5MTMwMjBCNjYwMDRCQjNGOCAv
KiBET01XZWJLaXRBbmltYXRpb24ubW0gKi87IH07CisJCTMxOTQ2MUZFMTMwMjJCQjgwMDRCQjNG
OCAvKiBKU1dlYktpdEFuaW1hdGlvbkxpc3QuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gMzE5NDYxRkMxMzAyMkJCODAwNEJCM0Y4IC8qIEpTV2ViS2l0
QW5pbWF0aW9uTGlzdC5jcHAgKi87IH07CisJCTMxOTQ2MUZGMTMwMjJCQjgwMDRCQjNGOCAvKiBK
U1dlYktpdEFuaW1hdGlvbkxpc3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDMxOTQ2MUZEMTMwMjJCQjgwMDRCQjNGOCAvKiBKU1dlYktpdEFuaW1hdGlv
bkxpc3QuaCAqLzsgfTsKKwkJMzE5NDYyMDQxMzAyMkJGMTAwNEJCM0Y4IC8qIERPTVdlYktpdEFu
aW1hdGlvbkxpc3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDMxOTQ2MjAyMTMwMjJCRjEwMDRCQjNGOCAvKiBET01XZWJLaXRBbmltYXRpb25MaXN0Lmgg
Ki87IH07CisJCTMxOTQ2MjA1MTMwMjJCRjEwMDRCQjNGOCAvKiBET01XZWJLaXRBbmltYXRpb25M
aXN0Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzE5
NDYyMDMxMzAyMkJGMTAwNEJCM0Y4IC8qIERPTVdlYktpdEFuaW1hdGlvbkxpc3QubW0gKi87IH07
CisJCTMxOTQ2MjMyMTMwMjJGNjUwMDRCQjNGOCAvKiBKU1dlYktpdEFuaW1hdGlvbkxpc3RDdXN0
b20uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzE5
NDYyMzExMzAyMkY2NTAwNEJCM0Y4IC8qIEpTV2ViS2l0QW5pbWF0aW9uTGlzdEN1c3RvbS5jcHAg
Ki87IH07CisJCTMxOUU2ODg3MTMyN0M5MTEwMDRBQzkxQSAvKiBKU1dlYktpdEFuaW1hdGlvbkN1
c3RvbS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAz
MTlFNjg4NjEzMjdDOTExMDA0QUM5MUEgLyogSlNXZWJLaXRBbmltYXRpb25DdXN0b20uY3BwICov
OyB9OworCQkzMTlFNjlCMjEzMjk5QkJEMDA0QUM5MUEgLyogV2ViS2l0QW5pbWF0aW9uLmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMxOUU2OUFDMTMy
OTlCQkQwMDRBQzkxQSAvKiBXZWJLaXRBbmltYXRpb24uY3BwICovOyB9OworCQkzMTlFNjlCMzEz
Mjk5QkJEMDA0QUM5MUEgLyogV2ViS2l0QW5pbWF0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMTlFNjlBRDEzMjk5QkJEMDA0QUM5MUEgLyogV2Vi
S2l0QW5pbWF0aW9uLmggKi87IH07CisJCTMxOUU2OUI1MTMyOTlCQkQwMDRBQzkxQSAvKiBXZWJL
aXRBbmltYXRpb25MaXN0LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDMxOUU2OUFGMTMyOTlCQkQwMDRBQzkxQSAvKiBXZWJLaXRBbmltYXRpb25MaXN0
LmNwcCAqLzsgfTsKKwkJMzE5RTY5QjYxMzI5OUJCRDAwNEFDOTFBIC8qIFdlYktpdEFuaW1hdGlv
bkxpc3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMx
OUU2OUIwMTMyOTlCQkQwMDRBQzkxQSAvKiBXZWJLaXRBbmltYXRpb25MaXN0LmggKi87IH07CiAJ
CTMxQzBGRjIxMEU0Q0VCNkUwMDdENkZFNSAvKiBXZWJLaXRBbmltYXRpb25FdmVudC5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMUMwRkYxQjBFNENF
QjZFMDA3RDZGRTUgLyogV2ViS2l0QW5pbWF0aW9uRXZlbnQuY3BwICovOyB9OwogCQkzMUMwRkYy
MjBFNENFQjZFMDA3RDZGRTUgLyogV2ViS2l0QW5pbWF0aW9uRXZlbnQuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMxQzBGRjFDMEU0Q0VCNkUwMDdENkZF
NSAvKiBXZWJLaXRBbmltYXRpb25FdmVudC5oICovOyB9OwogCQkzMUMwRkYyNDBFNENFQjZFMDA3
RDZGRTUgLyogV2ViS2l0VHJhbnNpdGlvbkV2ZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMxQzBGRjFFMEU0Q0VCNkUwMDdENkZFNSAvKiBXZWJL
aXRUcmFuc2l0aW9uRXZlbnQuY3BwICovOyB9OwpAQCAtNzE1MSw2ICs3MTY1LDIyIEBACiAJCTMx
NkZFMTBFMEU2RTFEQTcwMEJGNjA4OCAvKiBJbXBsaWNpdEFuaW1hdGlvbi5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IG5hbWUgPSBJbXBsaWNpdEFuaW1hdGlvbi5oOyBwYXRoID0gYW5pbWF0
aW9uL0ltcGxpY2l0QW5pbWF0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTMx
NkZFMTBGMEU2RTFEQTcwMEJGNjA4OCAvKiBLZXlmcmFtZUFuaW1hdGlvbi5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBLZXlmcmFtZUFuaW1hdGlvbi5jcHA7IHBhdGgg
PSBhbmltYXRpb24vS2V5ZnJhbWVBbmltYXRpb24uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQkzMTZGRTExMDBFNkUxREE3MDBCRjYwODggLyogS2V5ZnJhbWVBbmltYXRpb24uaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gS2V5ZnJhbWVBbmltYXRpb24uaDsgcGF0
aCA9IGFuaW1hdGlvbi9LZXlmcmFtZUFuaW1hdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQkzMTk0NjE2MDEzMDIwQjIwMDA0QkIzRjggLyogSlNXZWJLaXRBbmltYXRpb24uY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNXZWJLaXRBbmltYXRpb24u
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkzMTk0NjE2MTEzMDIwQjIwMDA0QkIz
RjggLyogSlNXZWJLaXRBbmltYXRpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gSlNXZWJLaXRBbmltYXRpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMzE5
NDYxNjgxMzAyMEI2NjAwNEJCM0Y4IC8qIERPTVdlYktpdEFuaW1hdGlvbi5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBET01XZWJLaXRBbmltYXRpb24uaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJMzE5NDYxNjkxMzAyMEI2NjAwNEJCM0Y4IC8qIERPTVdlYktpdEFu
aW1hdGlvbi5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IERPTVdl
YktpdEFuaW1hdGlvbi5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMzE5NDYxRkMx
MzAyMkJCODAwNEJCM0Y4IC8qIEpTV2ViS2l0QW5pbWF0aW9uTGlzdC5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1dlYktpdEFuaW1hdGlvbkxpc3QuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQkzMTk0NjFGRDEzMDIyQkI4MDA0QkIzRjggLyogSlNX
ZWJLaXRBbmltYXRpb25MaXN0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpT
V2ViS2l0QW5pbWF0aW9uTGlzdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkzMTk0
NjIwMjEzMDIyQkYxMDA0QkIzRjggLyogRE9NV2ViS2l0QW5pbWF0aW9uTGlzdC5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBET01XZWJLaXRBbmltYXRpb25MaXN0Lmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTMxOTQ2MjAzMTMwMjJCRjEwMDRCQjNGOCAvKiBET01X
ZWJLaXRBbmltYXRpb25MaXN0Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBw
YXRoID0gRE9NV2ViS2l0QW5pbWF0aW9uTGlzdC5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJMzE5NDYyMzExMzAyMkY2NTAwNEJCM0Y4IC8qIEpTV2ViS2l0QW5pbWF0aW9uTGlzdEN1
c3RvbS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1dlYktpdEFu
aW1hdGlvbkxpc3RDdXN0b20uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkzMTlF
Njg4NjEzMjdDOTExMDA0QUM5MUEgLyogSlNXZWJLaXRBbmltYXRpb25DdXN0b20uY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNXZWJLaXRBbmltYXRpb25DdXN0b20u
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkzMTlFNjlBQzEzMjk5QkJEMDA0QUM5
MUEgLyogV2ViS2l0QW5pbWF0aW9uLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IFdlYktpdEFuaW1hdGlvbi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CTMxOUU2OUFEMTMyOTlCQkQwMDRBQzkxQSAvKiBXZWJLaXRBbmltYXRpb24uaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViS2l0QW5pbWF0aW9uLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCTMxOUU2OUFFMTMyOTlCQkQwMDRBQzkxQSAvKiBXZWJLaXRBbmltYXRp
b24uaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFdlYktpdEFuaW1hdGlvbi5pZGw7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTMxOUU2OUFGMTMyOTlCQkQwMDRBQzkxQSAvKiBXZWJL
aXRBbmltYXRpb25MaXN0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IFdlYktpdEFuaW1hdGlvbkxpc3QuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkz
MTlFNjlCMDEzMjk5QkJEMDA0QUM5MUEgLyogV2ViS2l0QW5pbWF0aW9uTGlzdC5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJLaXRBbmltYXRpb25MaXN0Lmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTMxOUU2OUIxMTMyOTlCQkQwMDRBQzkxQSAvKiBXZWJLaXRB
bmltYXRpb25MaXN0LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBXZWJLaXRBbmltYXRpb25M
aXN0LmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMzFDMEZGMUIwRTRDRUI2RTAw
N0Q2RkU1IC8qIFdlYktpdEFuaW1hdGlvbkV2ZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IFdlYktpdEFuaW1hdGlvbkV2ZW50LmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJMzFDMEZGMUMwRTRDRUI2RTAwN0Q2RkU1IC8qIFdlYktpdEFuaW1hdGlv
bkV2ZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYktpdEFuaW1hdGlv
bkV2ZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTMxQzBGRjFEMEU0Q0VCNkUw
MDdENkZFNSAvKiBXZWJLaXRBbmltYXRpb25FdmVudC5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRo
ID0gV2ViS2l0QW5pbWF0aW9uRXZlbnQuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpA
QCAtMTQwMTYsOSArMTQwNDYsOCBAQAogCQk2NUJGMDIxODA5NzQ4MDYzMDBDNDMxOTYgLyogcGFn
ZSAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCi0JCQkJMzE2RkUx
MDYwRTZFMUQ4NDAwQkY2MDg4IC8qIGFuaW1hdGlvbiAqLywKLQkJCQk5M0MwOUE4MjBCMDY0RjA1
MDA1QUJENEQgLyogbWFjICovLAogCQkJCTg1MzhGMDAwMEFENzE3NzAwMDZBODFEMSAvKiBBYnN0
cmFjdFZpZXcuaWRsICovLAorCQkJCTMxNkZFMTA2MEU2RTFEODQwMEJGNjA4OCAvKiBhbmltYXRp
b24gKi8sCiAJCQkJQkMxMjRFRTQwQzI2NDFDRDAwOUUyMzQ5IC8qIEJhckluZm8uY3BwICovLAog
CQkJCUJDMTI0RUU1MEMyNjQxQ0QwMDlFMjM0OSAvKiBCYXJJbmZvLmggKi8sCiAJCQkJQkMxMjRF
RTYwQzI2NDFDRDAwOUUyMzQ5IC8qIEJhckluZm8uaWRsICovLApAQCAtMTQwOTAsNiArMTQxMTks
NyBAQAogCQkJCUJDRTFDNDFBMEQ5ODI5ODAwMDNCMDJGMiAvKiBMb2NhdGlvbi5jcHAgKi8sCiAJ
CQkJQkNFMUM0MTkwRDk4Mjk4MDAwM0IwMkYyIC8qIExvY2F0aW9uLmggKi8sCiAJCQkJQkNFMUM0
MjIwRDk4MjlGMjAwM0IwMkYyIC8qIExvY2F0aW9uLmlkbCAqLywKKwkJCQk5M0MwOUE4MjBCMDY0
RjA1MDA1QUJENEQgLyogbWFjICovLAogCQkJCTkzMUJDQzYwMTEyNERGQ0IwMEJFNzBERCAvKiBN
ZWRpYUNhblN0YXJ0TGlzdGVuZXIuaCAqLywKIAkJCQk5RkZFM0U3ODExQjU5QzVEMDAzNzg3NEUg
LyogTWVtb3J5SW5mby5jcHAgKi8sCiAJCQkJOUZGRTNFNzkxMUI1OUM1RDAwMzc4NzRFIC8qIE1l
bW9yeUluZm8uaCAqLywKQEAgLTE0MTYxLDYgKzE0MTkxLDEyIEBACiAJCQkJQkM4QkYxNTAxMDU4
MTNCRjAwQTQwQTA3IC8qIFVzZXJTdHlsZVNoZWV0LmggKi8sCiAJCQkJQkM4QkYxNTkxMDU4MTQx
ODAwQTQwQTA3IC8qIFVzZXJTdHlsZVNoZWV0VHlwZXMuaCAqLywKIAkJCQlCRTk4M0Q5NTA1MkEy
RTBBMDA4OTJEODUgLyogV2ViQ29yZUtleWJvYXJkVUlNb2RlLmggKi8sCisJCQkJMzE5RTY5QUMx
MzI5OUJCRDAwNEFDOTFBIC8qIFdlYktpdEFuaW1hdGlvbi5jcHAgKi8sCisJCQkJMzE5RTY5QUQx
MzI5OUJCRDAwNEFDOTFBIC8qIFdlYktpdEFuaW1hdGlvbi5oICovLAorCQkJCTMxOUU2OUFFMTMy
OTlCQkQwMDRBQzkxQSAvKiBXZWJLaXRBbmltYXRpb24uaWRsICovLAorCQkJCTMxOUU2OUFGMTMy
OTlCQkQwMDRBQzkxQSAvKiBXZWJLaXRBbmltYXRpb25MaXN0LmNwcCAqLywKKwkJCQkzMTlFNjlC
MDEzMjk5QkJEMDA0QUM5MUEgLyogV2ViS2l0QW5pbWF0aW9uTGlzdC5oICovLAorCQkJCTMxOUU2
OUIxMTMyOTlCQkQwMDRBQzkxQSAvKiBXZWJLaXRBbmltYXRpb25MaXN0LmlkbCAqLywKIAkJCQk0
OTRCRDc5MzBGNTVDOEVFMDA3NDc4MjggLyogV2ViS2l0UG9pbnQuaCAqLywKIAkJCQk0OTRCRDc5
NDBGNTVDOEVFMDA3NDc4MjggLyogV2ViS2l0UG9pbnQuaWRsICovLAogCQkJCUJDODI0M0U2MEQw
Q0ZENzUwMDQ2MEM4RiAvKiBXaW5kb3dGZWF0dXJlcy5jcHAgKi8sCkBAIC0xNTAxNCw2ICsxNTA1
MCwxMCBAQAogCQkJCTg1QkE0RDBBMEFBNjg4NjgwMDg4MDUyRCAvKiBET01IVE1MVUxpc3RFbGVt
ZW50Lm1tICovLAogCQkJCTE1Qzc3MEE0MTAwRDQxQ0QwMDVCQTI2NyAvKiBET01WYWxpZGl0eVN0
YXRlLmggKi8sCiAJCQkJMTVDNzcwQTMxMDBENDFDRDAwNUJBMjY3IC8qIERPTVZhbGlkaXR5U3Rh
dGUubW0gKi8sCisJCQkJMzE5NDYxNjgxMzAyMEI2NjAwNEJCM0Y4IC8qIERPTVdlYktpdEFuaW1h
dGlvbi5oICovLAorCQkJCTMxOTQ2MTY5MTMwMjBCNjYwMDRCQjNGOCAvKiBET01XZWJLaXRBbmlt
YXRpb24ubW0gKi8sCisJCQkJMzE5NDYyMDIxMzAyMkJGMTAwNEJCM0Y4IC8qIERPTVdlYktpdEFu
aW1hdGlvbkxpc3QuaCAqLywKKwkJCQkzMTk0NjIwMzEzMDIyQkYxMDA0QkIzRjggLyogRE9NV2Vi
S2l0QW5pbWF0aW9uTGlzdC5tbSAqLywKIAkJCSk7CiAJCQluYW1lID0gSFRNTDsKIAkJCXNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7CkBAIC0xNjM0MSw2ICsxNjM4MSwxMCBAQAogCQkJCTBDNDUzNDI2
MTBDREJCRkEwMDg2OTE1NyAvKiBKU1dlYkdMVW5pZm9ybUxvY2F0aW9uLmggKi8sCiAJCQkJNzdF
RjYyRjExMkY5REI3NDAwQzc3QkQyIC8qIEpTV2ViR0xWZXJ0ZXhBcnJheU9iamVjdE9FUy5jcHAg
Ki8sCiAJCQkJNzdFRjYyRjIxMkY5REI3NDAwQzc3QkQyIC8qIEpTV2ViR0xWZXJ0ZXhBcnJheU9i
amVjdE9FUy5oICovLAorCQkJCTMxOTQ2MTYwMTMwMjBCMjAwMDRCQjNGOCAvKiBKU1dlYktpdEFu
aW1hdGlvbi5jcHAgKi8sCisJCQkJMzE5NDYxNjExMzAyMEIyMDAwNEJCM0Y4IC8qIEpTV2ViS2l0
QW5pbWF0aW9uLmggKi8sCisJCQkJMzE5NDYxRkMxMzAyMkJCODAwNEJCM0Y4IC8qIEpTV2ViS2l0
QW5pbWF0aW9uTGlzdC5jcHAgKi8sCisJCQkJMzE5NDYxRkQxMzAyMkJCODAwNEJCM0Y4IC8qIEpT
V2ViS2l0QW5pbWF0aW9uTGlzdC5oICovLAogCQkJCTkzRjFENUJFMTJENTMzNTYwMDgzMkJFQyAv
KiBKU1dlYktpdExvc2VDb250ZXh0LmNwcCAqLywKIAkJCQk5M0YxRDVCRjEyRDUzMzU2MDA4MzJC
RUMgLyogSlNXZWJLaXRMb3NlQ29udGV4dC5oICovLAogCQkJKTsKQEAgLTE4MDQxLDYgKzE4MDg1
LDggQEAKIAkJCQk0OUVFQ0Y3NjEwNTA4RDlDMDAwOTlGQUIgLyogSlNVaW50MzJBcnJheUN1c3Rv
bS5jcHAgKi8sCiAJCQkJNDlFRUNGNzUxMDUwOEQ5QzAwMDk5RkFCIC8qIEpTVWludDhBcnJheUN1
c3RvbS5jcHAgKi8sCiAJCQkJNDlFRUQxNEMxMDUxOTcxQTAwMDk5RkFCIC8qIEpTV2ViR0xSZW5k
ZXJpbmdDb250ZXh0Q3VzdG9tLmNwcCAqLywKKwkJCQkzMTlFNjg4NjEzMjdDOTExMDA0QUM5MUEg
LyogSlNXZWJLaXRBbmltYXRpb25DdXN0b20uY3BwICovLAorCQkJCTMxOTQ2MjMxMTMwMjJGNjUw
MDRCQjNGOCAvKiBKU1dlYktpdEFuaW1hdGlvbkxpc3RDdXN0b20uY3BwICovLAogCQkJCUUxQUQx
NEM0MTI5NzM1NDkwMEFDQTk4OSAvKiBKU1dlYktpdENTU0tleWZyYW1lUnVsZUN1c3RvbS5jcHAg
Ki8sCiAJCQkJRTFBRDE0QjQxMjk3MzRDQTAwQUNBOTg5IC8qIEpTV2ViS2l0Q1NTS2V5ZnJhbWVz
UnVsZUN1c3RvbS5jcHAgKi8sCiAJCQkJQkMyNzVCN0MxMUM1RDIzNTAwQzkyMDZDIC8qIEpTV2Vi
S2l0Q1NTTWF0cml4Q3VzdG9tLmNwcCAqLywKQEAgLTIyNTc3LDYgKzIyNjIzLDEyIEBACiAJCQkJ
NTk4RDc3REYxMzI1NDFGQTAwNzYxQjIyIC8qIEphdmFBcnJheUpTQy5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJNTk4RDc3RTMxMzI1NDIwRTAwNzYxQjIyIC8qIEphdmFGaWVsZEpTQy5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJQkNEM0Y5ODMxMzI2QzkzNzAwMDk4QTYwIC8qIFRleHRPcmllbnRhdGlvbi5o
IGluIEhlYWRlcnMgKi8sCisJCQkJMzE5NDYxNjMxMzAyMEIyMDAwNEJCM0Y4IC8qIEpTV2ViS2l0
QW5pbWF0aW9uLmggaW4gSGVhZGVycyAqLywKKwkJCQkzMTk0NjE2QTEzMDIwQjY2MDA0QkIzRjgg
LyogRE9NV2ViS2l0QW5pbWF0aW9uLmggaW4gSGVhZGVycyAqLywKKwkJCQkzMTk0NjFGRjEzMDIy
QkI4MDA0QkIzRjggLyogSlNXZWJLaXRBbmltYXRpb25MaXN0LmggaW4gSGVhZGVycyAqLywKKwkJ
CQkzMTk0NjIwNDEzMDIyQkYxMDA0QkIzRjggLyogRE9NV2ViS2l0QW5pbWF0aW9uTGlzdC5oIGlu
IEhlYWRlcnMgKi8sCisJCQkJMzE5RTY5QjMxMzI5OUJCRDAwNEFDOTFBIC8qIFdlYktpdEFuaW1h
dGlvbi5oIGluIEhlYWRlcnMgKi8sCisJCQkJMzE5RTY5QjYxMzI5OUJCRDAwNEFDOTFBIC8qIFdl
YktpdEFuaW1hdGlvbkxpc3QuaCBpbiBIZWFkZXJzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JE
ZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpAQCAtMjUyMzIsNiArMjUyODQsMTQg
QEAKIAkJCQk4MTVFNjE2NzEzMjU4N0FBMDBCNjIyQjAgLyogRGF0YVRyYW5zZmVySXRlbS5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQk4MTAyQzU4ODEzMjVCQjExMDBEREU2N0EgLyogU3RyaW5nQ2Fs
bGJhY2suY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNUQ0RjUxREYxMzI3MjU0ODAwMTZGNTQxIC8q
IEhUTUxDb252ZXJ0ZXIubW0gaW4gU291cmNlcyAqLywKKwkJCQkzMTk0NjE2MjEzMDIwQjIwMDA0
QkIzRjggLyogSlNXZWJLaXRBbmltYXRpb24uY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMzE5NDYx
NkIxMzAyMEI2NjAwNEJCM0Y4IC8qIERPTVdlYktpdEFuaW1hdGlvbi5tbSBpbiBTb3VyY2VzICov
LAorCQkJCTMxOTQ2MUZFMTMwMjJCQjgwMDRCQjNGOCAvKiBKU1dlYktpdEFuaW1hdGlvbkxpc3Qu
Y3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMzE5NDYyMDUxMzAyMkJGMTAwNEJCM0Y4IC8qIERPTVdl
YktpdEFuaW1hdGlvbkxpc3QubW0gaW4gU291cmNlcyAqLywKKwkJCQkzMTk0NjIzMjEzMDIyRjY1
MDA0QkIzRjggLyogSlNXZWJLaXRBbmltYXRpb25MaXN0Q3VzdG9tLmNwcCBpbiBTb3VyY2VzICov
LAorCQkJCTMxOUU2ODg3MTMyN0M5MTEwMDRBQzkxQSAvKiBKU1dlYktpdEFuaW1hdGlvbkN1c3Rv
bS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkzMTlFNjlCMjEzMjk5QkJEMDA0QUM5MUEgLyogV2Vi
S2l0QW5pbWF0aW9uLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTMxOUU2OUI1MTMyOTlCQkQwMDRB
QzkxQSAvKiBXZWJLaXRBbmltYXRpb25MaXN0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJKTsKIAkJ
CXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNXZWJLaXRBbmltYXRpb25DdXN0b20uY3Bw
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNXZWJLaXRBbmltYXRpb25DdXN0b20uY3Bw
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjgzN2Q1MzUKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dlYktpdEFuaW1hdGlvbkN1c3Rv
bS5jcHAKQEAgLTAsMCArMSw0NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBBcHBsZSBJ
bmMuIEFsbCByaWdodCByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICog
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5j
bHVkZSAiSlNXZWJLaXRBbmltYXRpb24uaCIKKworI2luY2x1ZGUgIldlYktpdEFuaW1hdGlvbi5o
IgorCit1c2luZyBuYW1lc3BhY2UgSlNDOworCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK0pTVmFs
dWUgSlNXZWJLaXRBbmltYXRpb246Oml0ZXJhdGlvbkNvdW50KEV4ZWNTdGF0ZSopIGNvbnN0Cit7
CisgICAgV2ViS2l0QW5pbWF0aW9uKiBpbXAgPSBpbXBsKCk7CisgICAgaW50IGNvdW50ID0gaW1w
LT5pdGVyYXRpb25Db3VudCgpOworICAgIGlmIChjb3VudCA9PSBBbmltYXRpb246Okl0ZXJhdGlv
bkNvdW50SW5maW5pdGUpCisgICAgICAgIHJldHVybiBqc051bWJlcihJTkZJTklUWSk7CisgICAg
cmV0dXJuIGpzTnVtYmVyKGNvdW50KTsKK30KKworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvSlNXZWJLaXRBbmltYXRpb25MaXN0Q3VzdG9tLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTV2ViS2l0QW5pbWF0aW9uTGlzdEN1c3RvbS5jcHAKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZWFmNzdjZgotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTV2ViS2l0QW5pbWF0aW9uTGlzdEN1c3RvbS5j
cHAKQEAgLTAsMCArMSw0NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBBcHBsZSBJbmMu
IEFsbCByaWdodCByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVk
ZSAiSlNXZWJLaXRBbmltYXRpb25MaXN0LmgiCisKKyNpbmNsdWRlICJXZWJLaXRBbmltYXRpb25M
aXN0LmgiCisKK3VzaW5nIG5hbWVzcGFjZSBKU0M7CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwor
dm9pZCBKU1dlYktpdEFuaW1hdGlvbkxpc3Q6Om1hcmtDaGlsZHJlbihNYXJrU3RhY2smIG1hcmtT
dGFjaykKK3sKKyAgICBCYXNlOjptYXJrQ2hpbGRyZW4obWFya1N0YWNrKTsKKworICAgIFdlYktp
dEFuaW1hdGlvbkxpc3QqIGxpc3QgPSBpbXBsKCk7CisgICAgSlNHbG9iYWxEYXRhJiBnbG9iYWxE
YXRhID0gKkhlYXA6OmhlYXAodGhpcyktPmdsb2JhbERhdGEoKTsKKworICAgIHVuc2lnbmVkIGxl
bmd0aCA9IGxpc3QtPmxlbmd0aCgpOworICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBsZW5n
dGg7ICsraSkKKyAgICAgICAgbWFya0RPTU9iamVjdFdyYXBwZXIobWFya1N0YWNrLCBnbG9iYWxE
YXRhLCBsaXN0LT5pdGVtKGkpKTsKK30KKworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvdjgvY3VzdG9tL1Y4V2ViS2l0QW5pbWF0aW9uQ3VzdG9tLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOFdlYktpdEFuaW1hdGlvbkN1c3RvbS5jcHAKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjY3ODljYgotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOFdlYktpdEFuaW1hdGlvbkN1
c3RvbS5jcHAKQEAgLTAsMCArMSw1MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICogUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgYGBBUyBJUycnIEFORCBBTlkK
KyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJ
TiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUIE9XTkVSIE9SCisgKiBDT05UUklCVVRPUlMg
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwK
KyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgor
CisjaW5jbHVkZSAiVjhCaW5kaW5nLmgiCisjaW5jbHVkZSAiVjhCaW5kaW5nTWFjcm9zLmgiCisj
aW5jbHVkZSAiVjhQcm94eS5oIgorI2luY2x1ZGUgIlY4V2Via2l0QW5pbWF0aW9uLmgiCisjaW5j
bHVkZSAiV2Via2l0QW5pbWF0aW9uLmgiCisKKyNpbmNsdWRlIDx2OC5oPgorCituYW1lc3BhY2Ug
V2ViQ29yZSB7CisKK3Y4OjpIYW5kbGU8djg6OlZhbHVlPiBWOFdlYmtpdEFuaW1hdGlvbjo6aXRl
cmF0aW9uQ291bnRBY2Nlc3NvckdldHRlcih2ODo6TG9jYWw8djg6OlN0cmluZz4gbmFtZSwgY29u
c3Qgdjg6OkFjY2Vzc29ySW5mbyYgaW5mbykKK3sKKyAgICBJTkNfU1RBVFMoIkRPTS5XZWJraXRB
bmltYXRpb24uaXRlcmF0aW9uQ291bnQuX2dldCIpOworICAgIHY4OjpIYW5kbGU8djg6Ok9iamVj
dD4gaG9sZGVyID0gaW5mby5Ib2xkZXIoKTsKKyAgICBXZWJraXRBbmltYXRpb24qIGltcCA9IFY4
V2Via2l0QW5pbWF0aW9uOjp0b05hdGl2ZShob2xkZXIpOworICAgIGludCBjb3VudCA9IGltcC0+
aXRlcmF0aW9uQ291bnQoKTsKKyAgICBpZiAoY291bnQgPT0gQW5pbWF0aW9uOjpJdGVyYXRpb25D
b3VudEluZmluaXRlKQorICAgICAgICByZXR1cm4gdjg6Ok51bWJlcjo6TmV3KElORklOSVRZKTsK
KyAgICByZXR1cm4gdjg6Ok51bWJlcjo6TmV3KGNvdW50KTsKK30KKworfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQorCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKaW5kZXggNjRkMjk1Yi4uZTE4Yzc1NSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9FbGVtZW50LmNwcApAQCAtNTUsNiArNTUsNyBAQAogI2luY2x1ZGUgIlJlbmRlcldp
ZGdldC5oIgogI2luY2x1ZGUgIlNldHRpbmdzLmgiCiAjaW5jbHVkZSAiVGV4dEl0ZXJhdG9yLmgi
CisjaW5jbHVkZSAiV2ViS2l0QW5pbWF0aW9uTGlzdC5oIgogI2luY2x1ZGUgIlhNTE5hbWVzLmgi
CiAjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgogCkBAIC0xODc2LDQgKzE4NzcsMTcgQEAg
Ym9vbCBFbGVtZW50Ojppc1NwZWxsQ2hlY2tpbmdFbmFibGVkKCkgY29uc3QKICAgICByZXR1cm4g
dHJ1ZTsKIH0KIAorUGFzc1JlZlB0cjxXZWJLaXRBbmltYXRpb25MaXN0PiBFbGVtZW50Ojp3ZWJr
aXRHZXRBbmltYXRpb25zKCkgY29uc3QKK3sKKyAgICBpZiAoIXJlbmRlcmVyKCkpCisgICAgICAg
IHJldHVybiAwOworCisgICAgQW5pbWF0aW9uQ29udHJvbGxlciogYW5pbUNvbnRyb2xsZXIgPSBy
ZW5kZXJlcigpLT5hbmltYXRpb24oKTsKKworICAgIGlmICghYW5pbUNvbnRyb2xsZXIpCisgICAg
ICAgIHJldHVybiAwOworICAgIAorICAgIHJldHVybiBhbmltQ29udHJvbGxlci0+YW5pbWF0aW9u
c0ZvclJlbmRlcmVyKHJlbmRlcmVyKCkpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUv
ZG9tL0VsZW1lbnQuaAppbmRleCA1YzU0Y2U0Li5iYTA4NzBjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmgK
QEAgLTM5LDYgKzM5LDcgQEAgY2xhc3MgRE9NU3RyaW5nTWFwOwogY2xhc3MgRE9NVG9rZW5MaXN0
OwogY2xhc3MgRWxlbWVudFJhcmVEYXRhOwogY2xhc3MgSW50U2l6ZTsKK2NsYXNzIFdlYktpdEFu
aW1hdGlvbkxpc3Q7CiAKIGVudW0gU3BlbGxjaGVja0F0dHJpYnV0ZVN0YXRlIHsKICAgICBTcGVs
bGNoZWNrQXR0cmlidXRlVHJ1ZSwKQEAgLTM0NCw2ICszNDUsOCBAQCBwdWJsaWM6CiAKICAgICB2
aXJ0dWFsIGJvb2wgaXNTcGVsbENoZWNraW5nRW5hYmxlZCgpIGNvbnN0OwogCisgICAgUGFzc1Jl
ZlB0cjxXZWJLaXRBbmltYXRpb25MaXN0PiB3ZWJraXRHZXRBbmltYXRpb25zKCkgY29uc3Q7CisK
IHByb3RlY3RlZDoKICAgICBFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERv
Y3VtZW50KiBkb2N1bWVudCwgQ29uc3RydWN0aW9uVHlwZSB0eXBlKQogICAgICAgICA6IENvbnRh
aW5lck5vZGUoZG9jdW1lbnQsIHR5cGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20v
RWxlbWVudC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5pZGwKaW5kZXggNjUyYTc1
Yi4uZmMyODY0MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuaWRsCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmlkbApAQCAtOTYsNiArOTYsOCBAQCBtb2R1
bGUgY29yZSB7CiAgICAgICAgIHZvaWQgc2Nyb2xsQnlMaW5lcyhpbiBsb25nIGxpbmVzKTsKICAg
ICAgICAgdm9pZCBzY3JvbGxCeVBhZ2VzKGluIGxvbmcgcGFnZXMpOwogCisgICAgICAgIFdlYktp
dEFuaW1hdGlvbkxpc3Qgd2Via2l0R2V0QW5pbWF0aW9ucygpOworCiAgICAgICAgIC8vIEhUTUwg
NQogICAgICAgICBOb2RlTGlzdCBnZXRFbGVtZW50c0J5Q2xhc3NOYW1lKGluIERPTVN0cmluZyBu
YW1lKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaWRsIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaWRsCmluZGV4IDBmMTQyYTYuLmQzYWQyNDcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmlkbAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5pZGwKQEAgLTYwNSw2ICs2MDUsOSBAQCBtb2R1bGUg
d2luZG93IHsKICAgICAgICAgYXR0cmlidXRlIFtDb25kaXRpb25hbD1WSURFTywgRW5hYmxlZEF0
UnVudGltZV0gTWVkaWFFcnJvckNvbnN0cnVjdG9yIE1lZGlhRXJyb3I7CiAgICAgICAgIGF0dHJp
YnV0ZSBbQ29uZGl0aW9uYWw9VklERU8sIEVuYWJsZWRBdFJ1bnRpbWVdIFRpbWVSYW5nZXNDb25z
dHJ1Y3RvciBUaW1lUmFuZ2VzOwogCisgICAgICAgIGF0dHJpYnV0ZSBXZWJLaXRBbmltYXRpb25D
b25zdHJ1Y3RvciBXZWJLaXRBbmltYXRpb247CisgICAgICAgIGF0dHJpYnV0ZSBXZWJLaXRBbmlt
YXRpb25MaXN0Q29uc3RydWN0b3IgV2ViS2l0QW5pbWF0aW9uTGlzdDsKKwogI2lmIGRlZmluZWQo
RU5BQkxFX1hQQVRIKSAmJiBFTkFCTEVfWFBBVEgKICAgICAgICAgYXR0cmlidXRlIFhQYXRoRXZh
bHVhdG9yQ29uc3RydWN0b3IgWFBhdGhFdmFsdWF0b3I7CiAgICAgICAgIGF0dHJpYnV0ZSBYUGF0
aFJlc3VsdENvbnN0cnVjdG9yIFhQYXRoUmVzdWx0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGFnZS9XZWJLaXRBbmltYXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9XZWJLaXRB
bmltYXRpb24uY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmZmNzEwMmYK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1dlYktpdEFuaW1hdGlvbi5j
cHAKQEAgLTAsMCArMSwxMjAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5j
bHVkZSAiV2ViS2l0QW5pbWF0aW9uLmgiCisKKyNpbmNsdWRlICJBbmltYXRpb24uaCIKKyNpbmNs
dWRlICJBbmltYXRpb25CYXNlLmgiCisjaW5jbHVkZSAiUmVuZGVyU3R5bGUuaCIKKwordXNpbmcg
bmFtZXNwYWNlIHN0ZDsKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitXZWJLaXRBbmltYXRpb246
OldlYktpdEFuaW1hdGlvbihQYXNzUmVmUHRyPEtleWZyYW1lQW5pbWF0aW9uPiBrZXlmcmFtZUFu
aW1hdGlvbikKKyAgICA6IG1fa2V5ZnJhbWVBbmltYXRpb24oa2V5ZnJhbWVBbmltYXRpb24pCit7
Cit9CisKK1N0cmluZyBXZWJLaXRBbmltYXRpb246Om5hbWUoKSBjb25zdAoreworICAgIHJldHVy
biBtX2tleWZyYW1lQW5pbWF0aW9uLT5hbmltYXRpb24oKS0+bmFtZSgpOworfQorCitkb3VibGUg
V2ViS2l0QW5pbWF0aW9uOjpkdXJhdGlvbigpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fa2V5ZnJh
bWVBbmltYXRpb24tPmR1cmF0aW9uKCk7Cit9CisKK2RvdWJsZSBXZWJLaXRBbmltYXRpb246OmVs
YXBzZWRUaW1lKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9rZXlmcmFtZUFuaW1hdGlvbi0+Z2V0
RWxhcHNlZFRpbWUoKTsKK30KKwordm9pZCBXZWJLaXRBbmltYXRpb246OnNldEVsYXBzZWRUaW1l
KGRvdWJsZSB0aW1lKQoreworICAgIG1fa2V5ZnJhbWVBbmltYXRpb24tPnNldEVsYXBzZWRUaW1l
KHRpbWUpOworfQorCitkb3VibGUgV2ViS2l0QW5pbWF0aW9uOjpkZWxheSgpIGNvbnN0Cit7Cisg
ICAgcmV0dXJuIG1fa2V5ZnJhbWVBbmltYXRpb24tPmFuaW1hdGlvbigpLT5kZWxheSgpOworfQor
CitpbnQgV2ViS2l0QW5pbWF0aW9uOjppdGVyYXRpb25Db3VudCgpIGNvbnN0Cit7CisgICAgcmV0
dXJuIG1fa2V5ZnJhbWVBbmltYXRpb24tPmFuaW1hdGlvbigpLT5pdGVyYXRpb25Db3VudCgpOwor
fQorCitib29sIFdlYktpdEFuaW1hdGlvbjo6cGF1c2VkKCkgY29uc3QKK3sKKyAgICByZXR1cm4g
bV9rZXlmcmFtZUFuaW1hdGlvbi0+cGF1c2VkKCk7Cit9CisKK2Jvb2wgV2ViS2l0QW5pbWF0aW9u
OjplbmRlZCgpIGNvbnN0Cit7CisgICAgaW50IGl0ZXJhdGlvbnMgPSBpdGVyYXRpb25Db3VudCgp
OworICAgIGlmIChpdGVyYXRpb25zID09IEFuaW1hdGlvbjo6SXRlcmF0aW9uQ291bnRJbmZpbml0
ZSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIHJldHVybiBtX2tleWZyYW1lQW5pbWF0aW9u
LT5nZXRFbGFwc2VkVGltZSgpID4gKG1fa2V5ZnJhbWVBbmltYXRpb24tPmR1cmF0aW9uKCkgKiBp
dGVyYXRpb25zKTsKK30KKworV2ViS2l0QW5pbWF0aW9uOjpEaXJlY3Rpb24gV2ViS2l0QW5pbWF0
aW9uOjpkaXJlY3Rpb24oKSBjb25zdAoreworICAgIGlmIChtX2tleWZyYW1lQW5pbWF0aW9uLT5h
bmltYXRpb24oKS0+ZGlyZWN0aW9uKCkgPT0gQW5pbWF0aW9uOjpBbmltYXRpb25EaXJlY3Rpb25O
b3JtYWwpCisgICAgICAgIHJldHVybiBESVJFQ1RJT05fTk9STUFMOworICAgIHJldHVybiBESVJF
Q1RJT05fQUxURVJOQVRFOworfQorCitXZWJLaXRBbmltYXRpb246OkZpbGxNb2RlIFdlYktpdEFu
aW1hdGlvbjo6ZmlsbE1vZGUoKSBjb25zdAoreworICAgIHN3aXRjaCAobV9rZXlmcmFtZUFuaW1h
dGlvbi0+YW5pbWF0aW9uKCktPmZpbGxNb2RlKCkpIHsKKyAgICBjYXNlIEFuaW1hdGlvbkZpbGxN
b2RlTm9uZToKKyAgICAgICAgcmV0dXJuIEZJTExfTk9ORTsKKyAgICAgICAgYnJlYWs7CisgICAg
Y2FzZSBBbmltYXRpb25GaWxsTW9kZUZvcndhcmRzOgorICAgICAgICByZXR1cm4gRklMTF9GT1JX
QVJEUzsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBBbmltYXRpb25GaWxsTW9kZUJhY2t3YXJk
czoKKyAgICAgICAgcmV0dXJuIEZJTExfQkFDS1dBUkRTOworICAgICAgICBicmVhazsKKyAgICBk
ZWZhdWx0OgorICAgICAgICByZXR1cm4gRklMTF9CT1RIOworICAgICAgICBicmVhazsKKyAgICB9
Cit9CisKK3ZvaWQgV2ViS2l0QW5pbWF0aW9uOjpwYXVzZSgpCit7CisgICAgbV9rZXlmcmFtZUFu
aW1hdGlvbi0+cGF1c2UoKTsKK30KKwordm9pZCBXZWJLaXRBbmltYXRpb246OnBsYXkoKQorewor
ICAgIG1fa2V5ZnJhbWVBbmltYXRpb24tPnBsYXkoKTsKK30KKworfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGFnZS9XZWJLaXRBbmltYXRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
V2ViS2l0QW5pbWF0aW9uLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNmJl
YTFlNQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvV2ViS2l0QW5pbWF0
aW9uLmgKQEAgLTAsMCArMSw4MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICog
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAq
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpZm5kZWYgV2ViS2l0QW5pbWF0aW9u
X2gKKyNkZWZpbmUgV2ViS2l0QW5pbWF0aW9uX2gKKworI2luY2x1ZGUgIkFuaW1hdGlvbi5oIgor
I2luY2x1ZGUgIkFuaW1hdGlvbkJhc2UuaCIKKyNpbmNsdWRlICJLZXlmcmFtZUFuaW1hdGlvbi5o
IgorI2luY2x1ZGUgIlJlbmRlclN0eWxlLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xh
c3MgV2ViS2l0QW5pbWF0aW9uIDogcHVibGljIFJlZkNvdW50ZWQ8V2ViS2l0QW5pbWF0aW9uPiB7
CitwdWJsaWM6CisKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxXZWJLaXRBbmltYXRpb24+IGNyZWF0
ZShQYXNzUmVmUHRyPEtleWZyYW1lQW5pbWF0aW9uPiBrZXlmcmFtZUFuaW1hdGlvbikKKyAgICB7
CisgICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgV2ViS2l0QW5pbWF0aW9uKGtleWZyYW1lQW5p
bWF0aW9uKSk7CisgICAgfQorCisgICAgdmlydHVhbCB+V2ViS2l0QW5pbWF0aW9uKCkgeyB9CisK
KyAgICAvLyBET00gQVBJCisKKyAgICBTdHJpbmcgbmFtZSgpIGNvbnN0OworCisgICAgZG91Ymxl
IGR1cmF0aW9uKCkgY29uc3Q7CisKKyAgICBkb3VibGUgZWxhcHNlZFRpbWUoKSBjb25zdDsKKyAg
ICB2b2lkIHNldEVsYXBzZWRUaW1lKGRvdWJsZSk7CisKKyAgICBkb3VibGUgZGVsYXkoKSBjb25z
dDsKKyAgICBpbnQgaXRlcmF0aW9uQ291bnQoKSBjb25zdDsKKworICAgIGJvb2wgcGF1c2VkKCkg
Y29uc3Q7CisgICAgYm9vbCBlbmRlZCgpIGNvbnN0OworCisgICAgLy8gZGlyZWN0aW9uCisgICAg
ZW51bSBEaXJlY3Rpb24geyBESVJFQ1RJT05fTk9STUFMLCBESVJFQ1RJT05fQUxURVJOQVRFIH07
CisgICAgRGlyZWN0aW9uIGRpcmVjdGlvbigpIGNvbnN0OworCisgICAgLy8gZmlsbCBtb2RlCisg
ICAgZW51bSBGaWxsTW9kZSB7IEZJTExfTk9ORSwgRklMTF9CQUNLV0FSRFMsIEZJTExfRk9SV0FS
RFMsIEZJTExfQk9USCB9OworICAgIEZpbGxNb2RlIGZpbGxNb2RlKCkgY29uc3Q7CisKKyAgICB2
b2lkIHBsYXkoKTsKKyAgICB2b2lkIHBhdXNlKCk7CisKK3Byb3RlY3RlZDoKKyAgICBXZWJLaXRB
bmltYXRpb24oUGFzc1JlZlB0cjxLZXlmcmFtZUFuaW1hdGlvbj4pOworCitwcml2YXRlOgorICAg
IFJlZlB0cjxLZXlmcmFtZUFuaW1hdGlvbj4gbV9rZXlmcmFtZUFuaW1hdGlvbjsKK307CisKK30g
Ly8gbmFtZXNwYWNlCisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9X
ZWJLaXRBbmltYXRpb24uaWRsIGIvU291cmNlL1dlYkNvcmUvcGFnZS9XZWJLaXRBbmltYXRpb24u
aWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjg3ODA3YzcKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1dlYktpdEFuaW1hdGlvbi5pZGwKQEAgLTAs
MCArMSw1OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKiAzLiAgTmVpdGhlciB0aGUgbmFtZSBv
ZiBBcHBsZSBDb21wdXRlciwgSW5jLiAoIkFwcGxlIikgbm9yIHRoZSBuYW1lcyBvZgorICogICAg
IGl0cyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1
Y3RzIGRlcml2ZWQKKyAqICAgICBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBw
cmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkKKyAqIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
VEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VR
VUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQKKyAqIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKKyAqIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworbW9kdWxlIGh0bWwgeworCisgICAgaW50ZXJmYWNlIFdlYktpdEFuaW1hdGlv
biB7CisKKyAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyBuYW1lOworCisgICAg
ICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBmbG9hdCBkdXJhdGlvbjsKKyAgICAgICAgYXR0cmlidXRl
IGZsb2F0IGVsYXBzZWRUaW1lOworCisgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBmbG9hdCBk
ZWxheTsKKyAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFtDdXN0b21dIGludCBpdGVyYXRpb25D
b3VudDsKKworICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgYm9vbGVhbiBwYXVzZWQ7CisgICAg
ICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBib29sZWFuIGVuZGVkOworCisgICAgICAgIGNvbnN0IHVu
c2lnbmVkIHNob3J0IERJUkVDVElPTl9OT1JNQUwgPSAwOworICAgICAgICBjb25zdCB1bnNpZ25l
ZCBzaG9ydCBESVJFQ1RJT05fQUxURVJOQVRFID0gMTsKKyAgICAgICAgcmVhZG9ubHkgYXR0cmli
dXRlIHVuc2lnbmVkIHNob3J0IGRpcmVjdGlvbjsKKworICAgICAgICBjb25zdCB1bnNpZ25lZCBz
aG9ydCBGSUxMX05PTkUgPSAwOworICAgICAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCBGSUxMX0JB
Q0tXQVJEUyA9IDE7CisgICAgICAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IEZJTExfRk9SV0FSRFMg
PSAyOworICAgICAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCBGSUxMX0JPVEggPSAzOworICAgICAg
ICByZWFkb25seSBhdHRyaWJ1dGUgdW5zaWduZWQgc2hvcnQgZmlsbE1vZGU7CisKKyAgICAgICAg
dm9pZCBwbGF5KCk7CisgICAgICAgIHZvaWQgcGF1c2UoKTsKKyAgICB9OworCit9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1dlYktpdEFuaW1hdGlvbkxpc3QuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9XZWJLaXRBbmltYXRpb25MaXN0LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwLi4zMWU0NmQ3Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9XZWJLaXRBbmltYXRpb25MaXN0LmNwcApAQCAtMCwwICsxLDgyIEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDExIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJ
TkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElO
Qy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0Yg
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8K
KworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYktpdEFuaW1hdGlvbkxpc3QuaCIK
KworI2luY2x1ZGUgIkFuaW1hdGlvbi5oIgorI2luY2x1ZGUgIkFuaW1hdGlvbkJhc2UuaCIKKyNp
bmNsdWRlICJSZW5kZXJTdHlsZS5oIgorI2luY2x1ZGUgIldlYktpdEFuaW1hdGlvbi5oIgorCitu
YW1lc3BhY2UgV2ViQ29yZSB7CisgICAgCitXZWJLaXRBbmltYXRpb25MaXN0OjpXZWJLaXRBbmlt
YXRpb25MaXN0KCkKK3sKK30KKworV2ViS2l0QW5pbWF0aW9uTGlzdDo6fldlYktpdEFuaW1hdGlv
bkxpc3QoKQoreworfQorCit1bnNpZ25lZCBXZWJLaXRBbmltYXRpb25MaXN0OjpsZW5ndGgoKSBj
b25zdAoreworICAgIHJldHVybiBtX2FuaW1hdGlvbnMuc2l6ZSgpOworfQorCitXZWJLaXRBbmlt
YXRpb24qIFdlYktpdEFuaW1hdGlvbkxpc3Q6Oml0ZW0odW5zaWduZWQgaW5kZXgpCit7CisgICAg
aWYgKGluZGV4IDwgbV9hbmltYXRpb25zLnNpemUoKSkKKyAgICAgICAgcmV0dXJuIG1fYW5pbWF0
aW9uc1tpbmRleF0uZ2V0KCk7CisgICAgcmV0dXJuIDA7Cit9CisKK3ZvaWQgV2ViS2l0QW5pbWF0
aW9uTGlzdDo6ZGVsZXRlQW5pbWF0aW9uKHVuc2lnbmVkIGluZGV4KQoreworICAgIGlmIChpbmRl
eCA+PSBtX2FuaW1hdGlvbnMuc2l6ZSgpKQorICAgICAgICByZXR1cm47CisKKyAgICBtX2FuaW1h
dGlvbnMucmVtb3ZlKGluZGV4KTsKK30KKwordm9pZCBXZWJLaXRBbmltYXRpb25MaXN0OjphcHBl
bmQoUmVmUHRyPFdlYktpdEFuaW1hdGlvbj4gYW5pbWF0aW9uKQoreworICAgIG1fYW5pbWF0aW9u
cy5hcHBlbmQoYW5pbWF0aW9uKTsKK30KKwordW5zaWduZWQgV2ViS2l0QW5pbWF0aW9uTGlzdDo6
aW5zZXJ0QW5pbWF0aW9uKFJlZlB0cjxXZWJLaXRBbmltYXRpb24+IGFuaW1hdGlvbiwgdW5zaWdu
ZWQgaW5kZXgpCit7CisgICAgaWYgKCFhbmltYXRpb24pCisgICAgICAgIHJldHVybiAwOworCisg
ICAgaWYgKGluZGV4ID4gbV9hbmltYXRpb25zLnNpemUoKSkKKyAgICAgICAgcmV0dXJuIDA7CisK
KyAgICBtX2FuaW1hdGlvbnMuaW5zZXJ0KGluZGV4LCBhbmltYXRpb24pOworICAgIHJldHVybiBp
bmRleDsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL1dlYktpdEFuaW1hdGlvbkxpc3QuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
V2ViS2l0QW5pbWF0aW9uTGlzdC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAu
LmI4MmUzOGEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1dlYktpdEFu
aW1hdGlvbkxpc3QuaApAQCAtMCwwICsxLDYxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEx
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQg
QU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKKyAqIENPTlRSSUJV
VE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVT
UyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQK
KyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2lmbmRlZiBXZWJLaXRB
bmltYXRpb25MaXN0X2gKKyNkZWZpbmUgV2ViS2l0QW5pbWF0aW9uTGlzdF9oCisKKyNpbmNsdWRl
IDx3dGYvUGFzc1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CisjaW5jbHVk
ZSA8d3RmL1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KKworbmFtZXNwYWNlIFdl
YkNvcmUgeworICAKK2NsYXNzIFdlYktpdEFuaW1hdGlvbjsKKworY2xhc3MgV2ViS2l0QW5pbWF0
aW9uTGlzdCA6IHB1YmxpYyBSZWZDb3VudGVkPFdlYktpdEFuaW1hdGlvbkxpc3Q+IHsKK3B1Ymxp
YzoKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxXZWJLaXRBbmltYXRpb25MaXN0PiBjcmVhdGUoKQor
ICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBXZWJLaXRBbmltYXRpb25MaXN0KCkp
OworICAgIH0KKyAgICB+V2ViS2l0QW5pbWF0aW9uTGlzdCgpOworCisgICAgdW5zaWduZWQgbGVu
Z3RoKCkgY29uc3Q7CisgICAgV2ViS2l0QW5pbWF0aW9uKiBpdGVtKHVuc2lnbmVkIGluZGV4KTsK
KworICAgIHVuc2lnbmVkIGluc2VydEFuaW1hdGlvbihSZWZQdHI8V2ViS2l0QW5pbWF0aW9uPiwg
dW5zaWduZWQgaW5kZXgpOworICAgIHZvaWQgZGVsZXRlQW5pbWF0aW9uKHVuc2lnbmVkIGluZGV4
KTsKKyAgICB2b2lkIGFwcGVuZChSZWZQdHI8V2ViS2l0QW5pbWF0aW9uPik7CisKK3ByaXZhdGU6
CisgICAgV2ViS2l0QW5pbWF0aW9uTGlzdCgpOworCisgICAgVmVjdG9yPFJlZlB0cjxXZWJLaXRB
bmltYXRpb24+ID4gbV9hbmltYXRpb25zOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQor
CisjZW5kaWYgLy8gV2ViS2l0QW5pbWF0aW9uTGlzdF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL1dlYktpdEFuaW1hdGlvbkxpc3QuaWRsIGIvU291cmNlL1dlYkNvcmUvcGFnZS9X
ZWJLaXRBbmltYXRpb25MaXN0LmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
Li40YzM3NmU2Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9XZWJLaXRB
bmltYXRpb25MaXN0LmlkbApAQCAtMCwwICsxLDM2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDExIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBB
TkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKKyAqIENPTlRS
SUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworbW9kdWxlIGh0bWwg
eworCisgICAgaW50ZXJmYWNlIFsKKyAgICAgICAgQ3VzdG9tTWFya0Z1bmN0aW9uLAorICAgICAg
ICBIYXNJbmRleEdldHRlcgorICAgIF0gV2ViS2l0QW5pbWF0aW9uTGlzdCB7CisgICAgICAgIHJl
YWRvbmx5IGF0dHJpYnV0ZSB1bnNpZ25lZCBsb25nIGxlbmd0aDsKKyAgICAgICAgV2ViS2l0QW5p
bWF0aW9uIGl0ZW0oaW4gdW5zaWduZWQgbG9uZyBpbmRleCk7CisgICAgfTsKKworfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vQW5pbWF0aW9uQmFzZS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9BbmltYXRpb25CYXNlLmNwcAppbmRleCA5YTkw
NmUyLi4zODIyZDM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9B
bmltYXRpb25CYXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9Bbmlt
YXRpb25CYXNlLmNwcApAQCAtODA4LDggKzgwOCwxMyBAQCBBbmltYXRpb25CYXNlOjpBbmltYXRp
b25CYXNlKGNvbnN0IEFuaW1hdGlvbiogdHJhbnNpdGlvbiwgUmVuZGVyT2JqZWN0KiByZW5kZXJl
cgogCiBBbmltYXRpb25CYXNlOjp+QW5pbWF0aW9uQmFzZSgpCiB7Ci0gICAgbV9jb21wQW5pbS0+
YW5pbWF0aW9uQ29udHJvbGxlcigpLT5yZW1vdmVGcm9tU3R5bGVBdmFpbGFibGVXYWl0TGlzdCh0
aGlzKTsKLSAgICBtX2NvbXBBbmltLT5hbmltYXRpb25Db250cm9sbGVyKCktPnJlbW92ZUZyb21T
dGFydFRpbWVSZXNwb25zZVdhaXRMaXN0KHRoaXMpOworICAgIC8vIElmIHdlIGhhdmUgYSByZW5k
ZXJlciwgcmVtb3ZlIG91cnNlbHZlcyBmcm9tIHRoZSB3YWl0IGxpc3RzLiBXZSBjYW4gZ2V0IGlu
dG8KKyAgICAvLyB0aGUgc2l0dWF0aW9uIHdoZXJlIHRoZXJlIGlzIG5vIHJlbmRlcmVyIHdoZW4g
dGhlIGJpbmRpbmcgaGFzIGEgcmVmZXJlbmNlIHRvCisgICAgLy8gdGhpcyBvYmplY3QsIGJ1dCB0
aGUgZWxlbWVudCBoYXMgc2luY2UgYmVlbiByZW1vdmVkIGZyb20gdGhlIGRvY3VtZW50LgorICAg
IGlmIChtX29iamVjdCkgeworICAgICAgICBtX2NvbXBBbmltLT5hbmltYXRpb25Db250cm9sbGVy
KCktPnJlbW92ZUZyb21TdHlsZUF2YWlsYWJsZVdhaXRMaXN0KHRoaXMpOworICAgICAgICBtX2Nv
bXBBbmltLT5hbmltYXRpb25Db250cm9sbGVyKCktPnJlbW92ZUZyb21TdGFydFRpbWVSZXNwb25z
ZVdhaXRMaXN0KHRoaXMpOworICAgIH0KIH0KIAogYm9vbCBBbmltYXRpb25CYXNlOjpwcm9wZXJ0
aWVzRXF1YWwoaW50IHByb3AsIGNvbnN0IFJlbmRlclN0eWxlKiBhLCBjb25zdCBSZW5kZXJTdHls
ZSogYikKQEAgLTEzOTcsNSArMTQwMiwyMSBAQCBkb3VibGUgQW5pbWF0aW9uQmFzZTo6Z2V0RWxh
cHNlZFRpbWUoKSBjb25zdAogCiAgICAgcmV0dXJuIGJlZ2luQW5pbWF0aW9uVXBkYXRlVGltZSgp
IC0gbV9zdGFydFRpbWU7CiB9Ci0gICAgCisKK3ZvaWQgQW5pbWF0aW9uQmFzZTo6c2V0RWxhcHNl
ZFRpbWUoZG91YmxlIHRpbWUpCit7CisgICAgLy8gRklYTUU6IGltcGxlbWVudCB0aGlzIG1ldGhv
ZAorICAgIFVOVVNFRF9QQVJBTSh0aW1lKTsKK30KKwordm9pZCBBbmltYXRpb25CYXNlOjpwbGF5
KCkKK3sKKyAgICAvLyBGSVhNRTogaW1wbGVtZW50IHRoaXMgbWV0aG9kCit9CisKK3ZvaWQgQW5p
bWF0aW9uQmFzZTo6cGF1c2UoKQoreworICAgIC8vIEZJWE1FOiBpbXBsZW1lbnQgdGhpcyBtZXRo
b2QKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGFnZS9hbmltYXRpb24vQW5pbWF0aW9uQmFzZS5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9h
bmltYXRpb24vQW5pbWF0aW9uQmFzZS5oCmluZGV4IDg3N2Q2NDkuLmM1YWYwYTAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0FuaW1hdGlvbkJhc2UuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9BbmltYXRpb25CYXNlLmgKQEAgLTE2MywxMSAr
MTYzLDE3IEBAIHB1YmxpYzoKICAgICAKICAgICAvLyBGcmVlemUgdGhlIGFuaW1hdGlvbjsgdXNl
ZCBieSBEdW1wUmVuZGVyVHJlZS4KICAgICB2b2lkIGZyZWV6ZUF0VGltZShkb3VibGUgdCk7CisK
KyAgICAvLyBQbGF5IGFuZCBwYXVzZSBBUEkKKyAgICB2b2lkIHBsYXkoKTsKKyAgICB2b2lkIHBh
dXNlKCk7CiAgICAgCiAgICAgZG91YmxlIGJlZ2luQW5pbWF0aW9uVXBkYXRlVGltZSgpIGNvbnN0
OwogICAgIAogICAgIGRvdWJsZSBnZXRFbGFwc2VkVGltZSgpIGNvbnN0OwotICAgIAorICAgIC8v
IFNldHRpbmcgdGhlIGVsYXBzZWQgdGltZSB3aWxsIGFkanVzdCB0aGUgc3RhcnQgdGltZSBhbmQg
cG9zc2libHkgcGF1c2UgdGltZS4KKyAgICB2b2lkIHNldEVsYXBzZWRUaW1lKGRvdWJsZSk7CisK
ICAgICBBbmltYXRpb25CYXNlKiBuZXh0KCkgY29uc3QgeyByZXR1cm4gbV9uZXh0OyB9CiAgICAg
dm9pZCBzZXROZXh0KEFuaW1hdGlvbkJhc2UqIGFuaW1hdGlvbikgeyBtX25leHQgPSBhbmltYXRp
b247IH0KICAgICAKQEAgLTE4Miw3ICsxODgsOSBAQCBwdWJsaWM6CiAjZW5kaWYKIAogICAgIHN0
YXRpYyBIYXNoU2V0PGludD4gYW5pbWF0YWJsZVNob3J0aGFuZHNBZmZlY3RpbmdQcm9wZXJ0eShp
bnQgcHJvcGVydHkpOwotICAgIAorCisgICAgY29uc3QgQW5pbWF0aW9uKiBhbmltYXRpb24oKSBj
b25zdCB7IHJldHVybiBtX2FuaW1hdGlvbi5nZXQoKTsgfQorCiBwcm90ZWN0ZWQ6CiAgICAgdmly
dHVhbCB2b2lkIG92ZXJyaWRlQW5pbWF0aW9ucygpIHsgfQogICAgIHZpcnR1YWwgdm9pZCByZXN1
bWVPdmVycmlkZGVuQW5pbWF0aW9ucygpIHsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGFnZS9hbmltYXRpb24vQW5pbWF0aW9uQ29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL2FuaW1hdGlvbi9BbmltYXRpb25Db250cm9sbGVyLmNwcAppbmRleCBkY2RlYTAzLi5hNzMw
MDY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9BbmltYXRpb25D
b250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9BbmltYXRp
b25Db250cm9sbGVyLmNwcApAQCAtMzcsMTIgKzM3LDE0IEBACiAjaW5jbHVkZSAiRnJhbWUuaCIK
ICNpbmNsdWRlICJSZW5kZXJWaWV3LmgiCiAjaW5jbHVkZSAiV2ViS2l0QW5pbWF0aW9uRXZlbnQu
aCIKKyNpbmNsdWRlICJXZWJLaXRBbmltYXRpb25MaXN0LmgiCiAjaW5jbHVkZSAiV2ViS2l0VHJh
bnNpdGlvbkV2ZW50LmgiCiAjaW5jbHVkZSA8d3RmL0N1cnJlbnRUaW1lLmg+CiAjaW5jbHVkZSA8
d3RmL1VudXNlZFBhcmFtLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorLy8gRklYTUU6IFdo
eSBpc24ndCB0aGlzIHNldCB0byA2MGZwcyBvciBzb21ldGhpbmc/CiBzdGF0aWMgY29uc3QgZG91
YmxlIGNBbmltYXRpb25UaW1lckRlbGF5ID0gMC4wMjU7CiBzdGF0aWMgY29uc3QgZG91YmxlIGNC
ZWdpbkFuaW1hdGlvblVwZGF0ZVRpbWVOb3RTZXQgPSAtMTsKIApAQCAtNDc5LDYgKzQ4MSwxNiBA
QCB2b2lkIEFuaW1hdGlvbkNvbnRyb2xsZXJQcml2YXRlOjpzdGFydFRpbWVSZXNwb25zZShkb3Vi
bGUgdGltZSkKICAgICBtX2xhc3RTdGFydFRpbWVSZXNwb25zZVdhaXRlciA9IDA7CiB9CiAKK1Bh
c3NSZWZQdHI8V2ViS2l0QW5pbWF0aW9uTGlzdD4gQW5pbWF0aW9uQ29udHJvbGxlclByaXZhdGU6
OmFuaW1hdGlvbnNGb3JSZW5kZXJlcihSZW5kZXJPYmplY3QqIHJlbmRlcmVyKSBjb25zdAorewor
ICAgIFJlZlB0cjxDb21wb3NpdGVBbmltYXRpb24+IGFuaW1hdGlvbiA9IG1fY29tcG9zaXRlQW5p
bWF0aW9ucy5nZXQocmVuZGVyZXIpOworCisgICAgaWYgKCFhbmltYXRpb24pCisgICAgICAgIHJl
dHVybiAwOworCisgICAgcmV0dXJuIGFuaW1hdGlvbi0+YW5pbWF0aW9ucygpOworfQorCiBBbmlt
YXRpb25Db250cm9sbGVyOjpBbmltYXRpb25Db250cm9sbGVyKEZyYW1lKiBmcmFtZSkKICAgICA6
IG1fZGF0YShuZXcgQW5pbWF0aW9uQ29udHJvbGxlclByaXZhdGUoZnJhbWUpKQogewpAQCAtNjEy
LDQgKzYyNCw5IEBAIGJvb2wgQW5pbWF0aW9uQ29udHJvbGxlcjo6c3VwcG9ydHNBY2NlbGVyYXRl
ZEFuaW1hdGlvbk9mUHJvcGVydHkoQ1NTUHJvcGVydHlJRCBwCiAjZW5kaWYKIH0KIAorUGFzc1Jl
ZlB0cjxXZWJLaXRBbmltYXRpb25MaXN0PiBBbmltYXRpb25Db250cm9sbGVyOjphbmltYXRpb25z
Rm9yUmVuZGVyZXIoUmVuZGVyT2JqZWN0KiByZW5kZXJlcikgY29uc3QKK3sKKyAgICByZXR1cm4g
bV9kYXRhLT5hbmltYXRpb25zRm9yUmVuZGVyZXIocmVuZGVyZXIpOworfQorCiB9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9B
bmltYXRpb25Db250cm9sbGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9Bbmlt
YXRpb25Db250cm9sbGVyLmgKaW5kZXggNTI3OTQ2Ny4uYTM1NWY4NyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vQW5pbWF0aW9uQ29udHJvbGxlci5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0FuaW1hdGlvbkNvbnRyb2xsZXIuaApAQCAtNDIs
NiArNDIsNyBAQCBjbGFzcyBGcmFtZTsKIGNsYXNzIE5vZGU7CiBjbGFzcyBSZW5kZXJPYmplY3Q7
CiBjbGFzcyBSZW5kZXJTdHlsZTsKK2NsYXNzIFdlYktpdEFuaW1hdGlvbkxpc3Q7CiAKIGNsYXNz
IEFuaW1hdGlvbkNvbnRyb2xsZXIgewogcHVibGljOgpAQCAtNzMsNiArNzQsOCBAQCBwdWJsaWM6
CiAgICAgCiAgICAgc3RhdGljIGJvb2wgc3VwcG9ydHNBY2NlbGVyYXRlZEFuaW1hdGlvbk9mUHJv
cGVydHkoQ1NTUHJvcGVydHlJRCk7CiAKKyAgICBQYXNzUmVmUHRyPFdlYktpdEFuaW1hdGlvbkxp
c3Q+IGFuaW1hdGlvbnNGb3JSZW5kZXJlcihSZW5kZXJPYmplY3QqKSBjb25zdDsKKwogcHJpdmF0
ZToKICAgICBBbmltYXRpb25Db250cm9sbGVyUHJpdmF0ZSogbV9kYXRhOwogfTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0FuaW1hdGlvbkNvbnRyb2xsZXJQcml2
YXRlLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9BbmltYXRpb25Db250cm9sbGVy
UHJpdmF0ZS5oCmluZGV4IDE4NmRkN2QuLjg4YjgyYTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvYW5pbWF0aW9uL0FuaW1hdGlvbkNvbnRyb2xsZXJQcml2YXRlLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vQW5pbWF0aW9uQ29udHJvbGxlclByaXZhdGUuaApA
QCAtNDgsNiArNDgsNyBAQCBjbGFzcyBGcmFtZTsKIGNsYXNzIE5vZGU7CiBjbGFzcyBSZW5kZXJP
YmplY3Q7CiBjbGFzcyBSZW5kZXJTdHlsZTsKK2NsYXNzIFdlYktpdEFuaW1hdGlvbkxpc3Q7CiAK
IGNsYXNzIEFuaW1hdGlvbkNvbnRyb2xsZXJQcml2YXRlIHsKICAgICBXVEZfTUFLRV9OT05DT1BZ
QUJMRShBbmltYXRpb25Db250cm9sbGVyUHJpdmF0ZSk7IFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVE
OwpAQCAtOTMsNiArOTQsOCBAQCBwdWJsaWM6CiAgICAgdm9pZCBhZGRUb1N0YXJ0VGltZVJlc3Bv
bnNlV2FpdExpc3QoQW5pbWF0aW9uQmFzZSosIGJvb2wgd2lsbEdldFJlc3BvbnNlKTsKICAgICB2
b2lkIHJlbW92ZUZyb21TdGFydFRpbWVSZXNwb25zZVdhaXRMaXN0KEFuaW1hdGlvbkJhc2UqKTsg
ICAgCiAgICAgCisgICAgUGFzc1JlZlB0cjxXZWJLaXRBbmltYXRpb25MaXN0PiBhbmltYXRpb25z
Rm9yUmVuZGVyZXIoUmVuZGVyT2JqZWN0KikgY29uc3Q7CisgICAgCiBwcml2YXRlOgogICAgIHZv
aWQgYW5pbWF0aW9uVGltZXJGaXJlZChUaW1lcjxBbmltYXRpb25Db250cm9sbGVyUHJpdmF0ZT4q
KTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vQ29tcG9zaXRl
QW5pbWF0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0NvbXBvc2l0ZUFu
aW1hdGlvbi5jcHAKaW5kZXggNjAyNDkxZS4uN2RlYmQwYSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGFnZS9hbmltYXRpb24vQ29tcG9zaXRlQW5pbWF0aW9uLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9Db21wb3NpdGVBbmltYXRpb24uY3BwCkBAIC0zNiw2ICsz
Niw4IEBACiAjaW5jbHVkZSAiS2V5ZnJhbWVBbmltYXRpb24uaCIKICNpbmNsdWRlICJSZW5kZXJP
YmplY3QuaCIKICNpbmNsdWRlICJSZW5kZXJTdHlsZS5oIgorI2luY2x1ZGUgIldlYktpdEFuaW1h
dGlvbi5oIgorI2luY2x1ZGUgIldlYktpdEFuaW1hdGlvbkxpc3QuaCIKIAogbmFtZXNwYWNlIFdl
YkNvcmUgewogCkBAIC0yNTIsOCArMjU0LDEwIEBAIHZvaWQgQ29tcG9zaXRlQW5pbWF0aW9uOjp1
cGRhdGVLZXlmcmFtZUFuaW1hdGlvbnMoUmVuZGVyT2JqZWN0KiByZW5kZXJlciwgUmVuZGVyCiAg
ICAga2ZlbmQgPSBtX2tleWZyYW1lQW5pbWF0aW9ucy5lbmQoKTsKICAgICBmb3IgKEFuaW1hdGlv
bk5hbWVNYXA6OmNvbnN0X2l0ZXJhdG9yIGl0ID0gbV9rZXlmcmFtZUFuaW1hdGlvbnMuYmVnaW4o
KTsgaXQgIT0ga2ZlbmQ7ICsraXQpIHsKICAgICAgICAgS2V5ZnJhbWVBbmltYXRpb24qIGtleWZy
YW1lQW5pbSA9IGl0LT5zZWNvbmQuZ2V0KCk7Ci0gICAgICAgIGlmIChrZXlmcmFtZUFuaW0tPmlu
ZGV4KCkgPCAwKQorICAgICAgICBpZiAoa2V5ZnJhbWVBbmltLT5pbmRleCgpIDwgMCkgewogICAg
ICAgICAgICAgYW5pbXNUb0JlUmVtb3ZlZC5hcHBlbmQoa2V5ZnJhbWVBbmltLT5uYW1lKCkuaW1w
bCgpKTsKKyAgICAgICAgICAgIGtleWZyYW1lQW5pbS0+Y2xlYXJSZW5kZXJlcigpOworICAgICAg
ICB9CiAgICAgfQogICAgIAogICAgIC8vIE5vdyByZW1vdmUgdGhlIGFuaW1hdGlvbnMgZnJvbSB0
aGUgbGlzdC4KQEAgLTU2MCw0ICs1NjQsMTkgQEAgdW5zaWduZWQgQ29tcG9zaXRlQW5pbWF0aW9u
OjpudW1iZXJPZkFjdGl2ZUFuaW1hdGlvbnMoKSBjb25zdAogICAgIHJldHVybiBjb3VudDsKIH0K
IAorUGFzc1JlZlB0cjxXZWJLaXRBbmltYXRpb25MaXN0PiBDb21wb3NpdGVBbmltYXRpb246OmFu
aW1hdGlvbnMoKSBjb25zdAoreworICAgIFJlZlB0cjxXZWJLaXRBbmltYXRpb25MaXN0PiBhbmlt
YXRpb25zID0gV2ViS2l0QW5pbWF0aW9uTGlzdDo6Y3JlYXRlKCk7CisgICAgaWYgKCFtX2tleWZy
YW1lQW5pbWF0aW9ucy5pc0VtcHR5KCkpIHsKKyAgICAgICAgbV9rZXlmcmFtZUFuaW1hdGlvbnMu
Y2hlY2tDb25zaXN0ZW5jeSgpOworICAgICAgICBBbmltYXRpb25OYW1lTWFwOjpjb25zdF9pdGVy
YXRvciBhbmltYXRpb25zRW5kID0gbV9rZXlmcmFtZUFuaW1hdGlvbnMuZW5kKCk7CisgICAgICAg
IGZvciAoQW5pbWF0aW9uTmFtZU1hcDo6Y29uc3RfaXRlcmF0b3IgaXQgPSBtX2tleWZyYW1lQW5p
bWF0aW9ucy5iZWdpbigpOyBpdCAhPSBhbmltYXRpb25zRW5kOyArK2l0KSB7CisgICAgICAgICAg
ICBLZXlmcmFtZUFuaW1hdGlvbioga2V5ZnJhbWVBbmltYXRpb24gPSBpdC0+c2Vjb25kLmdldCgp
OworICAgICAgICAgICAgUmVmUHRyPFdlYktpdEFuaW1hdGlvbj4gYW5pbSA9IFdlYktpdEFuaW1h
dGlvbjo6Y3JlYXRlKGtleWZyYW1lQW5pbWF0aW9uKTsKKyAgICAgICAgICAgIGFuaW1hdGlvbnMt
PmFwcGVuZChhbmltKTsKKyAgICAgICAgfQorICAgIH0KKyAgICByZXR1cm4gYW5pbWF0aW9uczsK
K30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGFnZS9hbmltYXRpb24vQ29tcG9zaXRlQW5pbWF0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L2FuaW1hdGlvbi9Db21wb3NpdGVBbmltYXRpb24uaAppbmRleCAyNDlmNGMzLi4xYmZlNTg1IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9Db21wb3NpdGVBbmltYXRp
b24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9Db21wb3NpdGVBbmltYXRp
b24uaApAQCAtNDEsNiArNDEsNyBAQCBjbGFzcyBBbmltYXRpb25Db250cm9sbGVyUHJpdmF0ZTsK
IGNsYXNzIEFuaW1hdGlvbkNvbnRyb2xsZXI7CiBjbGFzcyBSZW5kZXJPYmplY3Q7CiBjbGFzcyBS
ZW5kZXJTdHlsZTsKK2NsYXNzIFdlYktpdEFuaW1hdGlvbkxpc3Q7CiAKIC8vIEEgQ29tcG9zaXRl
QW5pbWF0aW9uIHJlcHJlc2VudHMgYSBjb2xsZWN0aW9uIG9mIGFuaW1hdGlvbnMgdGhhdCBhcmUg
cnVubmluZwogLy8gb24gYSBzaW5nbGUgUmVuZGVyT2JqZWN0LCBzdWNoIGFzIGEgbnVtYmVyIG9m
IHByb3BlcnRpZXMgdHJhbnNpdGlvbmluZyBhdCBvbmNlLgpAQCAtODAsNiArODEsOCBAQCBwdWJs
aWM6CiAgICAgYm9vbCBwYXVzZVRyYW5zaXRpb25BdFRpbWUoaW50IHByb3BlcnR5LCBkb3VibGUg
dCk7CiAgICAgdW5zaWduZWQgbnVtYmVyT2ZBY3RpdmVBbmltYXRpb25zKCkgY29uc3Q7CiAKKyAg
ICBQYXNzUmVmUHRyPFdlYktpdEFuaW1hdGlvbkxpc3Q+IGFuaW1hdGlvbnMoKSBjb25zdDsKKwog
cHJpdmF0ZToKICAgICBDb21wb3NpdGVBbmltYXRpb24oQW5pbWF0aW9uQ29udHJvbGxlclByaXZh
dGUqIGFuaW1hdGlvbkNvbnRyb2xsZXIpCiAgICAgICAgIDogbV9hbmltYXRpb25Db250cm9sbGVy
KGFuaW1hdGlvbkNvbnRyb2xsZXIpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>85435</attachid>
            <date>2011-03-10 21:12:28 -0800</date>
            <delta_ts>2011-03-11 04:41:27 -0800</delta_ts>
            <desc>Build fixes for Windows and Cr-Linux</desc>
            <filename>animation-api-step-1.diff</filename>
            <type>text/plain</type>
            <size>86112</size>
            <attacher name="Dean Jackson">dino</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA0MzJlZjk4Li5iOTA5ZjRkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjQgQEAKKzIwMTEtMDMt
MTAgIERlYW4gSmFja3NvbiAgPGRpbm9AYXBwbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5
IFNpbW9uIEZyYXNlciBhbmQgQ2hyaXMgTWFycmluLgorCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01NDE1MQorICAgICAgICBJbXBsZW1lbnQgYW4gQVBJ
IHRvIHBsYXkvcGF1c2Uvc2NydWIgYW5pbWF0aW9ucworICAgICAgICAKKyAgICAgICAgVGhpcyBp
cyBQYXJ0IDEuIEFkZHMgdGhlIG5ldyBXZWJLaXRBbmltYXRpb24gYW5kIFdlYktpdEFuaW1hdGlv
bkxpc3QKKyAgICAgICAgQVBJcywgZXhwb3NlZCB2aWEgRWxlbWVudC5nZXRXZWJLaXRBbmltYXRp
b25zKCkuIFRoaXMgZmlyc3QgcGFzcworICAgICAgICBpcyByZWFkLW9ubHkuIE9uZSBuZXcgbGF5
b3V0IHRlc3QgdGhhdCBleGFtaW5lcyBhbmltYXRpb24KKyAgICAgICAgcHJvcGVydGllcy4gVXBk
YXRlIGV4aXN0aW5nIGxheW91dCB0ZXN0cyBmb3IgdGhlIG5ldyBpbnRlcmZhY2VzCisgICAgICAg
IG9uIFdpbmRvdy4KKworICAgICAgICAqIGFuaW1hdGlvbnMvYW5pbWF0aW9uLWFwaS0xLWV4cGVj
dGVkLnR4dDogQWRkZWQuCisgICAgICAgICogYW5pbWF0aW9ucy9hbmltYXRpb24tYXBpLTEuaHRt
bDogQWRkZWQuCisgICAgICAgICogZmFzdC9kb20vV2luZG93L3dpbmRvdy1wcm9wZXJ0aWVzLWV4
cGVjdGVkLnR4dDoKKyAgICAgICAgKiBmYXN0L2RvbS9XaW5kb3cvd2luZG93LXByb3BlcnR5LWRl
c2NyaXB0b3JzLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBmYXN0L2RvbS9wcm90b3R5cGUtaW5o
ZXJpdGFuY2UtMi1leHBlY3RlZC50eHQ6CisgICAgICAgICogZmFzdC9kb20vcHJvdG90eXBlLWlu
aGVyaXRhbmNlLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBmYXN0L2pzL2dsb2JhbC1jb25zdHJ1
Y3RvcnMtZXhwZWN0ZWQudHh0OgorCiAyMDExLTAzLTEwICBEYXZpZCBIeWF0dCAgPGh5YXR0QGFw
cGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBTaW1vbiBGcmFzZXIuCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9hbmltYXRpb25zL2FuaW1hdGlvbi1hcGktMS1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9hbmltYXRpb25zL2FuaW1hdGlvbi1hcGktMS1leHBlY3RlZC50eHQKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjFiMTlkNAotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2FuaW1hdGlvbnMvYW5pbWF0aW9uLWFwaS0xLWV4cGVjdGVkLnR4dApAQCAt
MCwwICsxLDc0IEBACitUaGlzIHRlc3RzIHRoZSBXZWJLaXRBbmltYXRpb24gaW50ZXJmYWNlLgor
CitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBm
b2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyB3aW5kb3cuV2ViS2l0QW5pbWF0
aW9uIGlzIGRlZmluZWQuCitQQVNTIHdpbmRvdy5XZWJLaXRBbmltYXRpb25MaXN0IGlzIGRlZmlu
ZWQuCisKK1Rlc3QgYW4gYWxtb3N0LWRlZmF1bHQgYW5pbWF0aW9uCitQQVNTIGFfYW5pbWF0aW9u
cy5sZW5ndGggaXMgMQorUEFTUyBhX2FuaW1hdGlvbl8wIGlzIGRlZmluZWQuCisKK1BBU1MgYV9h
bmltYXRpb25fMC5uYW1lIGlzICd0ZXN0MScKK1BBU1MgYV9hbmltYXRpb25fMC5kdXJhdGlvbiBp
cyAxCitQQVNTIGFfYW5pbWF0aW9uXzAuZGVsYXkgaXMgMAorUEFTUyBhX2FuaW1hdGlvbl8wLml0
ZXJhdGlvbkNvdW50IGlzIDEKK1BBU1MgYV9hbmltYXRpb25fMC5wYXVzZWQgaXMgZmFsc2UKK1BB
U1MgYV9hbmltYXRpb25fMC5lbmRlZCBpcyBmYWxzZQorUEFTUyBhX2FuaW1hdGlvbl8wLmRpcmVj
dGlvbiBpcyB3aW5kb3cuV2ViS2l0QW5pbWF0aW9uLkRJUkVDVElPTl9OT1JNQUwKK1BBU1MgYV9h
bmltYXRpb25fMC5maWxsTW9kZSBpcyB3aW5kb3cuV2ViS2l0QW5pbWF0aW9uLkZJTExfTk9ORQor
CitUZXN0IGEgc3BlY2lmaWVkIGFuaW1hdGlvbgorUEFTUyBiX2FuaW1hdGlvbnMubGVuZ3RoIGlz
IDEKK1BBU1MgYl9hbmltYXRpb25fMCBpcyBkZWZpbmVkLgorCitQQVNTIGJfYW5pbWF0aW9uXzAu
bmFtZSBpcyAndGVzdDEnCitQQVNTIGJfYW5pbWF0aW9uXzAuZHVyYXRpb24gaXMgMgorUEFTUyBi
X2FuaW1hdGlvbl8wLmRlbGF5IGlzIDMKK1BBU1MgYl9hbmltYXRpb25fMC5pdGVyYXRpb25Db3Vu
dCBpcyA0CitQQVNTIGJfYW5pbWF0aW9uXzAucGF1c2VkIGlzIGZhbHNlCitQQVNTIGJfYW5pbWF0
aW9uXzAuZW5kZWQgaXMgZmFsc2UKK1BBU1MgYl9hbmltYXRpb25fMC5kaXJlY3Rpb24gaXMgd2lu
ZG93LldlYktpdEFuaW1hdGlvbi5ESVJFQ1RJT05fTk9STUFMCitQQVNTIGJfYW5pbWF0aW9uXzAu
ZmlsbE1vZGUgaXMgd2luZG93LldlYktpdEFuaW1hdGlvbi5GSUxMX05PTkUKKworVGVzdCBuZWdh
dGl2ZSBkZWxheSwgZmlsbCBtb2RlLCBkaXJlY3Rpb24gYW5kIGluZmluaXRlIGl0ZXJhdGlvbnMK
K1BBU1MgY19hbmltYXRpb25zLmxlbmd0aCBpcyAxCitQQVNTIGNfYW5pbWF0aW9uXzAgaXMgZGVm
aW5lZC4KKworUEFTUyBjX2FuaW1hdGlvbl8wLm5hbWUgaXMgJ3Rlc3QyJworUEFTUyBjX2FuaW1h
dGlvbl8wLmR1cmF0aW9uIGlzIDUKK1BBU1MgY19hbmltYXRpb25fMC5kZWxheSBpcyAtMQorUEFT
UyBjX2FuaW1hdGlvbl8wLml0ZXJhdGlvbkNvdW50IGlzIE51bWJlci5QT1NJVElWRV9JTkZJTklU
WQorUEFTUyBjX2FuaW1hdGlvbl8wLnBhdXNlZCBpcyBmYWxzZQorUEFTUyBjX2FuaW1hdGlvbl8w
LmVuZGVkIGlzIGZhbHNlCitQQVNTIGNfYW5pbWF0aW9uXzAuZGlyZWN0aW9uIGlzIHdpbmRvdy5X
ZWJLaXRBbmltYXRpb24uRElSRUNUSU9OX0FMVEVSTkFURQorUEFTUyBjX2FuaW1hdGlvbl8wLmZp
bGxNb2RlIGlzIHdpbmRvdy5XZWJLaXRBbmltYXRpb24uRklMTF9GT1JXQVJEUworCitUZXN0IG11
bHRpcGxlIGFuaW1hdGlvbnMKK1BBU1MgZF9hbmltYXRpb25zLmxlbmd0aCBpcyAyCitQQVNTIGRf
YW5pbWF0aW9uXzAgaXMgZGVmaW5lZC4KKworUEFTUyBkX2FuaW1hdGlvbl8wLm5hbWUgaXMgJ3Rl
c3QxJworUEFTUyBkX2FuaW1hdGlvbl8wLmR1cmF0aW9uIGlzIDEKK1BBU1MgZF9hbmltYXRpb25f
MC5kZWxheSBpcyAwCitQQVNTIGRfYW5pbWF0aW9uXzAuaXRlcmF0aW9uQ291bnQgaXMgMTAKK1BB
U1MgZF9hbmltYXRpb25fMC5wYXVzZWQgaXMgZmFsc2UKK1BBU1MgZF9hbmltYXRpb25fMC5lbmRl
ZCBpcyBmYWxzZQorUEFTUyBkX2FuaW1hdGlvbl8wLmRpcmVjdGlvbiBpcyB3aW5kb3cuV2ViS2l0
QW5pbWF0aW9uLkRJUkVDVElPTl9OT1JNQUwKK1BBU1MgZF9hbmltYXRpb25fMC5maWxsTW9kZSBp
cyB3aW5kb3cuV2ViS2l0QW5pbWF0aW9uLkZJTExfQkFDS1dBUkRTCitQQVNTIGRfYW5pbWF0aW9u
XzEgaXMgZGVmaW5lZC4KKworUEFTUyBkX2FuaW1hdGlvbl8xLm5hbWUgaXMgJ3Rlc3QyJworUEFT
UyBkX2FuaW1hdGlvbl8xLmR1cmF0aW9uIGlzIDIKK1BBU1MgZF9hbmltYXRpb25fMS5kZWxheSBp
cyAxCitQQVNTIGRfYW5pbWF0aW9uXzEuaXRlcmF0aW9uQ291bnQgaXMgTnVtYmVyLlBPU0lUSVZF
X0lORklOSVRZCitQQVNTIGRfYW5pbWF0aW9uXzEucGF1c2VkIGlzIGZhbHNlCitQQVNTIGRfYW5p
bWF0aW9uXzEuZW5kZWQgaXMgZmFsc2UKK1BBU1MgZF9hbmltYXRpb25fMS5kaXJlY3Rpb24gaXMg
d2luZG93LldlYktpdEFuaW1hdGlvbi5ESVJFQ1RJT05fQUxURVJOQVRFCitQQVNTIGRfYW5pbWF0
aW9uXzEuZmlsbE1vZGUgaXMgd2luZG93LldlYktpdEFuaW1hdGlvbi5GSUxMX0JPVEgKKworUEFT
UyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2FuaW1hdGlvbnMvYW5pbWF0aW9uLWFwaS0xLmh0bWwgYi9MYXlvdXRU
ZXN0cy9hbmltYXRpb25zL2FuaW1hdGlvbi1hcGktMS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAuLjdkODRlNDIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9h
bmltYXRpb25zL2FuaW1hdGlvbi1hcGktMS5odG1sCkBAIC0wLDAgKzEsMTc1IEBACis8aHRtbD4K
KzxoZWFkPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi9mYXN0L2pzL3Jlc291cmNl
cy9qcy10ZXN0LXN0eWxlLmNzcyI+Cis8c3R5bGUgdHlwZT0idGV4dC9jc3MiIG1lZGlhPSJzY3Jl
ZW4iPgorICBALXdlYmtpdC1rZXlmcmFtZXMgdGVzdDEgeworICAgIGZyb20geyBsZWZ0OiAxMHB4
OyB9CisgICAgdG8geyBsZWZ0OiAyMHB4OyB9CisgIH0KKyAgQC13ZWJraXQta2V5ZnJhbWVzIHRl
c3QyIHsKKyAgICAwJSB7IGxlZnQ6IDEwcHg7IH0KKyAgICA1MCUgeyBsZWZ0OiAzMHB4OyB9Cisg
ICAgMTAwJSB7IGxlZnQ6IDIwcHg7IH0KKyAgfQorICAjYSB7CisgICAgLXdlYmtpdC1hbmltYXRp
b24tbmFtZTogdGVzdDE7CisgICAgLXdlYmtpdC1hbmltYXRpb24tZHVyYXRpb246IDFzOworICB9
CisgICNiIHsKKyAgICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiB0ZXN0MTsKKyAgICAtd2Via2l0
LWFuaW1hdGlvbi1kdXJhdGlvbjogMnM7CisgICAgLXdlYmtpdC1hbmltYXRpb24tZGVsYXk6IDNz
OworICAgIC13ZWJraXQtYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogNDsKKyAgICAtd2Via2l0
LWFuaW1hdGlvbi1kaXJlY3Rpb246IG5vcm1hbDsKKyAgICAtd2Via2l0LWFuaW1hdGlvbi1maWxs
LW1vZGU6IG5vbmU7CisgIH0KKyAgI2MgeworICAgIC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6IHRl
c3QyOworICAgIC13ZWJraXQtYW5pbWF0aW9uLWR1cmF0aW9uOiA1czsKKyAgICAtd2Via2l0LWFu
aW1hdGlvbi1kZWxheTogLTFzOworICAgIC13ZWJraXQtYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3Vu
dDogaW5maW5pdGU7CisgICAgLXdlYmtpdC1hbmltYXRpb24tZGlyZWN0aW9uOiBhbHRlcm5hdGU7
CisgICAgLXdlYmtpdC1hbmltYXRpb24tZmlsbC1tb2RlOiBmb3J3YXJkczsKKyAgfQorICAjZCB7
CisgICAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogdGVzdDEsIHRlc3QyOworICAgIC13ZWJraXQt
YW5pbWF0aW9uLWR1cmF0aW9uOiAxcywgMnM7CisgICAgLXdlYmtpdC1hbmltYXRpb24tZGVsYXk6
IDBzLCAxczsKKyAgICAtd2Via2l0LWFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IDEwLCBpbmZp
bml0ZTsKKyAgICAtd2Via2l0LWFuaW1hdGlvbi1kaXJlY3Rpb246IG5vcm1hbCwgYWx0ZXJuYXRl
OworICAgIC13ZWJraXQtYW5pbWF0aW9uLWZpbGwtbW9kZTogYmFja3dhcmRzLCBib3RoOworICB9
Cis8L3N0eWxlPgorPHNjcmlwdCBzcmM9Ii4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJl
LmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPGRpdiBpZD0iYSI+PC9kaXY+Cis8ZGl2
IGlkPSJiIj48L2Rpdj4KKzxkaXYgaWQ9ImMiPjwvZGl2PgorPGRpdiBpZD0iZCI+PC9kaXY+Cis8
cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlw
dD4KKworZGVzY3JpcHRpb24oIlRoaXMgdGVzdHMgdGhlIFdlYktpdEFuaW1hdGlvbiBpbnRlcmZh
Y2UuIik7CisKK3Nob3VsZEJlRGVmaW5lZCgid2luZG93LldlYktpdEFuaW1hdGlvbiIpOworc2hv
dWxkQmVEZWZpbmVkKCJ3aW5kb3cuV2ViS2l0QW5pbWF0aW9uTGlzdCIpOworCisvKiAqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAqLworCitkZWJ1ZygiIik7
CitkZWJ1ZygiVGVzdCBhbiBhbG1vc3QtZGVmYXVsdCBhbmltYXRpb24iKTsKKwordmFyIGEgPSBk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYSIpOwordmFyIGFfYW5pbWF0aW9ucyA9IGEud2Via2l0
R2V0QW5pbWF0aW9ucygpOworCitzaG91bGRCZSgiYV9hbmltYXRpb25zLmxlbmd0aCIsICIxIik7
CisKK3ZhciBhX2FuaW1hdGlvbl8wID0gYV9hbmltYXRpb25zWzBdOworCitzaG91bGRCZURlZmlu
ZWQoImFfYW5pbWF0aW9uXzAiKTsKK2RlYnVnKCIiKTsKKworc2hvdWxkQmUoImFfYW5pbWF0aW9u
XzAubmFtZSIsICIndGVzdDEnIik7CitzaG91bGRCZSgiYV9hbmltYXRpb25fMC5kdXJhdGlvbiIs
ICIxIik7CitzaG91bGRCZSgiYV9hbmltYXRpb25fMC5kZWxheSIsICIwIik7CitzaG91bGRCZSgi
YV9hbmltYXRpb25fMC5pdGVyYXRpb25Db3VudCIsICIxIik7CitzaG91bGRCZSgiYV9hbmltYXRp
b25fMC5wYXVzZWQiLCAiZmFsc2UiKTsKK3Nob3VsZEJlKCJhX2FuaW1hdGlvbl8wLmVuZGVkIiwg
ImZhbHNlIik7CitzaG91bGRCZSgiYV9hbmltYXRpb25fMC5kaXJlY3Rpb24iLCAid2luZG93Lldl
YktpdEFuaW1hdGlvbi5ESVJFQ1RJT05fTk9STUFMIik7CitzaG91bGRCZSgiYV9hbmltYXRpb25f
MC5maWxsTW9kZSIsICJ3aW5kb3cuV2ViS2l0QW5pbWF0aW9uLkZJTExfTk9ORSIpOworCisvKiAq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAqLworCitkZWJ1
ZygiIik7CitkZWJ1ZygiVGVzdCBhIHNwZWNpZmllZCBhbmltYXRpb24iKTsKKwordmFyIGIgPSBk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYiIpOwordmFyIGJfYW5pbWF0aW9ucyA9IGIud2Via2l0
R2V0QW5pbWF0aW9ucygpOworCitzaG91bGRCZSgiYl9hbmltYXRpb25zLmxlbmd0aCIsICIxIik7
CisKK3ZhciBiX2FuaW1hdGlvbl8wID0gYl9hbmltYXRpb25zWzBdOworCitzaG91bGRCZURlZmlu
ZWQoImJfYW5pbWF0aW9uXzAiKTsKK2RlYnVnKCIiKTsKKworc2hvdWxkQmUoImJfYW5pbWF0aW9u
XzAubmFtZSIsICIndGVzdDEnIik7CitzaG91bGRCZSgiYl9hbmltYXRpb25fMC5kdXJhdGlvbiIs
ICIyIik7CitzaG91bGRCZSgiYl9hbmltYXRpb25fMC5kZWxheSIsICIzIik7CitzaG91bGRCZSgi
Yl9hbmltYXRpb25fMC5pdGVyYXRpb25Db3VudCIsICI0Iik7CitzaG91bGRCZSgiYl9hbmltYXRp
b25fMC5wYXVzZWQiLCAiZmFsc2UiKTsKK3Nob3VsZEJlKCJiX2FuaW1hdGlvbl8wLmVuZGVkIiwg
ImZhbHNlIik7CitzaG91bGRCZSgiYl9hbmltYXRpb25fMC5kaXJlY3Rpb24iLCAid2luZG93Lldl
YktpdEFuaW1hdGlvbi5ESVJFQ1RJT05fTk9STUFMIik7CitzaG91bGRCZSgiYl9hbmltYXRpb25f
MC5maWxsTW9kZSIsICJ3aW5kb3cuV2ViS2l0QW5pbWF0aW9uLkZJTExfTk9ORSIpOworCisvKiAq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAqLworCitkZWJ1
ZygiIik7CitkZWJ1ZygiVGVzdCBuZWdhdGl2ZSBkZWxheSwgZmlsbCBtb2RlLCBkaXJlY3Rpb24g
YW5kIGluZmluaXRlIGl0ZXJhdGlvbnMiKTsKKwordmFyIGMgPSBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgiYyIpOwordmFyIGNfYW5pbWF0aW9ucyA9IGMud2Via2l0R2V0QW5pbWF0aW9ucygpOwor
CitzaG91bGRCZSgiY19hbmltYXRpb25zLmxlbmd0aCIsICIxIik7CisKK3ZhciBjX2FuaW1hdGlv
bl8wID0gY19hbmltYXRpb25zWzBdOworCitzaG91bGRCZURlZmluZWQoImNfYW5pbWF0aW9uXzAi
KTsKK2RlYnVnKCIiKTsKKworc2hvdWxkQmUoImNfYW5pbWF0aW9uXzAubmFtZSIsICIndGVzdDIn
Iik7CitzaG91bGRCZSgiY19hbmltYXRpb25fMC5kdXJhdGlvbiIsICI1Iik7CitzaG91bGRCZSgi
Y19hbmltYXRpb25fMC5kZWxheSIsICItMSIpOworc2hvdWxkQmUoImNfYW5pbWF0aW9uXzAuaXRl
cmF0aW9uQ291bnQiLCAiTnVtYmVyLlBPU0lUSVZFX0lORklOSVRZIik7CitzaG91bGRCZSgiY19h
bmltYXRpb25fMC5wYXVzZWQiLCAiZmFsc2UiKTsKK3Nob3VsZEJlKCJjX2FuaW1hdGlvbl8wLmVu
ZGVkIiwgImZhbHNlIik7CitzaG91bGRCZSgiY19hbmltYXRpb25fMC5kaXJlY3Rpb24iLCAid2lu
ZG93LldlYktpdEFuaW1hdGlvbi5ESVJFQ1RJT05fQUxURVJOQVRFIik7CitzaG91bGRCZSgiY19h
bmltYXRpb25fMC5maWxsTW9kZSIsICJ3aW5kb3cuV2ViS2l0QW5pbWF0aW9uLkZJTExfRk9SV0FS
RFMiKTsKKworLyogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KiogKi8KKworZGVidWcoIiIpOworZGVidWcoIlRlc3QgbXVsdGlwbGUgYW5pbWF0aW9ucyIpOwor
Cit2YXIgZCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJkIik7Cit2YXIgZF9hbmltYXRpb25z
ID0gZC53ZWJraXRHZXRBbmltYXRpb25zKCk7CisKK3Nob3VsZEJlKCJkX2FuaW1hdGlvbnMubGVu
Z3RoIiwgIjIiKTsKKwordmFyIGRfYW5pbWF0aW9uXzAgPSBkX2FuaW1hdGlvbnNbMF07CisKK3No
b3VsZEJlRGVmaW5lZCgiZF9hbmltYXRpb25fMCIpOworZGVidWcoIiIpOworCitzaG91bGRCZSgi
ZF9hbmltYXRpb25fMC5uYW1lIiwgIid0ZXN0MSciKTsKK3Nob3VsZEJlKCJkX2FuaW1hdGlvbl8w
LmR1cmF0aW9uIiwgIjEiKTsKK3Nob3VsZEJlKCJkX2FuaW1hdGlvbl8wLmRlbGF5IiwgIjAiKTsK
K3Nob3VsZEJlKCJkX2FuaW1hdGlvbl8wLml0ZXJhdGlvbkNvdW50IiwgIjEwIik7CitzaG91bGRC
ZSgiZF9hbmltYXRpb25fMC5wYXVzZWQiLCAiZmFsc2UiKTsKK3Nob3VsZEJlKCJkX2FuaW1hdGlv
bl8wLmVuZGVkIiwgImZhbHNlIik7CitzaG91bGRCZSgiZF9hbmltYXRpb25fMC5kaXJlY3Rpb24i
LCAid2luZG93LldlYktpdEFuaW1hdGlvbi5ESVJFQ1RJT05fTk9STUFMIik7CitzaG91bGRCZSgi
ZF9hbmltYXRpb25fMC5maWxsTW9kZSIsICJ3aW5kb3cuV2ViS2l0QW5pbWF0aW9uLkZJTExfQkFD
S1dBUkRTIik7CisKK3ZhciBkX2FuaW1hdGlvbl8xID0gZF9hbmltYXRpb25zWzFdOworCitzaG91
bGRCZURlZmluZWQoImRfYW5pbWF0aW9uXzEiKTsKK2RlYnVnKCIiKTsKKworc2hvdWxkQmUoImRf
YW5pbWF0aW9uXzEubmFtZSIsICIndGVzdDInIik7CitzaG91bGRCZSgiZF9hbmltYXRpb25fMS5k
dXJhdGlvbiIsICIyIik7CitzaG91bGRCZSgiZF9hbmltYXRpb25fMS5kZWxheSIsICIxIik7Citz
aG91bGRCZSgiZF9hbmltYXRpb25fMS5pdGVyYXRpb25Db3VudCIsICJOdW1iZXIuUE9TSVRJVkVf
SU5GSU5JVFkiKTsKK3Nob3VsZEJlKCJkX2FuaW1hdGlvbl8xLnBhdXNlZCIsICJmYWxzZSIpOwor
c2hvdWxkQmUoImRfYW5pbWF0aW9uXzEuZW5kZWQiLCAiZmFsc2UiKTsKK3Nob3VsZEJlKCJkX2Fu
aW1hdGlvbl8xLmRpcmVjdGlvbiIsICJ3aW5kb3cuV2ViS2l0QW5pbWF0aW9uLkRJUkVDVElPTl9B
TFRFUk5BVEUiKTsKK3Nob3VsZEJlKCJkX2FuaW1hdGlvbl8xLmZpbGxNb2RlIiwgIndpbmRvdy5X
ZWJLaXRBbmltYXRpb24uRklMTF9CT1RIIik7CisKK2RlYnVnKCIiKTsKK3N1Y2Nlc3NmdWxseVBh
cnNlZCA9IHRydWU7CisKKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL2Zhc3QvanMvcmVzb3Vy
Y2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvd2luZG93LXByb3BlcnRpZXMtZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L3dpbmRvdy1wcm9wZXJ0aWVzLWV4
cGVjdGVkLnR4dAppbmRleCA2NTgzMWM2Li5kNmY3NzQ4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9mYXN0L2RvbS9XaW5kb3cvd2luZG93LXByb3BlcnRpZXMtZXhwZWN0ZWQudHh0CisrKyBiL0xh
eW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy93aW5kb3ctcHJvcGVydGllcy1leHBlY3RlZC50eHQK
QEAgLTEyMyw2ICsxMjMsNyBAQCB3aW5kb3cuQXVkaW8ucHJvdG90eXBlLnNldEF0dHJpYnV0ZSBb
ZnVuY3Rpb25dCiB3aW5kb3cuQXVkaW8ucHJvdG90eXBlLnNldEF0dHJpYnV0ZU5TIFtmdW5jdGlv
bl0KIHdpbmRvdy5BdWRpby5wcm90b3R5cGUuc2V0QXR0cmlidXRlTm9kZSBbZnVuY3Rpb25dCiB3
aW5kb3cuQXVkaW8ucHJvdG90eXBlLnNldEF0dHJpYnV0ZU5vZGVOUyBbZnVuY3Rpb25dCit3aW5k
b3cuQXVkaW8ucHJvdG90eXBlLndlYmtpdEdldEFuaW1hdGlvbnMgW2Z1bmN0aW9uXQogd2luZG93
LkF1ZGlvLnByb3RvdHlwZS53ZWJraXRNYXRjaGVzU2VsZWN0b3IgW2Z1bmN0aW9uXQogd2luZG93
LkF1ZGlvLnByb3RvdHlwZS53ZWJraXRSZXF1ZXN0RnVsbFNjcmVlbiBbZnVuY3Rpb25dCiB3aW5k
b3cuQmVmb3JlTG9hZEV2ZW50IFtvYmplY3QgQmVmb3JlTG9hZEV2ZW50Q29uc3RydWN0b3JdCkBA
IC03ODQsNiArNzg1LDcgQEAgd2luZG93LkVsZW1lbnQucHJvdG90eXBlLnNldEF0dHJpYnV0ZSBb
ZnVuY3Rpb25dCiB3aW5kb3cuRWxlbWVudC5wcm90b3R5cGUuc2V0QXR0cmlidXRlTlMgW2Z1bmN0
aW9uXQogd2luZG93LkVsZW1lbnQucHJvdG90eXBlLnNldEF0dHJpYnV0ZU5vZGUgW2Z1bmN0aW9u
XQogd2luZG93LkVsZW1lbnQucHJvdG90eXBlLnNldEF0dHJpYnV0ZU5vZGVOUyBbZnVuY3Rpb25d
Cit3aW5kb3cuRWxlbWVudC5wcm90b3R5cGUud2Via2l0R2V0QW5pbWF0aW9ucyBbZnVuY3Rpb25d
CiB3aW5kb3cuRWxlbWVudC5wcm90b3R5cGUud2Via2l0TWF0Y2hlc1NlbGVjdG9yIFtmdW5jdGlv
bl0KIHdpbmRvdy5FbGVtZW50LnByb3RvdHlwZS53ZWJraXRSZXF1ZXN0RnVsbFNjcmVlbiBbZnVu
Y3Rpb25dCiB3aW5kb3cuRW50aXR5IFtvYmplY3QgRW50aXR5Q29uc3RydWN0b3JdCkBAIC0xOTYz
LDggKzE5NjUsMjcgQEAgd2luZG93LlR5cGVFcnJvciBbZnVuY3Rpb25dCiB3aW5kb3cuVUlFdmVu
dCBbb2JqZWN0IFVJRXZlbnRDb25zdHJ1Y3Rvcl0KIHdpbmRvdy5VSUV2ZW50LnByb3RvdHlwZSBb
cHJpbnRlZCBhYm92ZSBhcyB3aW5kb3cuRXZlbnQucHJvdG90eXBlXQogd2luZG93LlVSSUVycm9y
IFtmdW5jdGlvbl0KK3dpbmRvdy5XZWJLaXRBbmltYXRpb24gW29iamVjdCBXZWJLaXRBbmltYXRp
b25Db25zdHJ1Y3Rvcl0KK3dpbmRvdy5XZWJLaXRBbmltYXRpb24uRElSRUNUSU9OX0FMVEVSTkFU
RSBbbnVtYmVyXQord2luZG93LldlYktpdEFuaW1hdGlvbi5ESVJFQ1RJT05fTk9STUFMIFtudW1i
ZXJdCit3aW5kb3cuV2ViS2l0QW5pbWF0aW9uLkZJTExfQkFDS1dBUkRTIFtudW1iZXJdCit3aW5k
b3cuV2ViS2l0QW5pbWF0aW9uLkZJTExfQk9USCBbbnVtYmVyXQord2luZG93LldlYktpdEFuaW1h
dGlvbi5GSUxMX0ZPUldBUkRTIFtudW1iZXJdCit3aW5kb3cuV2ViS2l0QW5pbWF0aW9uLkZJTExf
Tk9ORSBbbnVtYmVyXQord2luZG93LldlYktpdEFuaW1hdGlvbi5wcm90b3R5cGUgW29iamVjdCBX
ZWJLaXRBbmltYXRpb25Qcm90b3R5cGVdCit3aW5kb3cuV2ViS2l0QW5pbWF0aW9uLnByb3RvdHlw
ZS5ESVJFQ1RJT05fQUxURVJOQVRFIFtudW1iZXJdCit3aW5kb3cuV2ViS2l0QW5pbWF0aW9uLnBy
b3RvdHlwZS5ESVJFQ1RJT05fTk9STUFMIFtudW1iZXJdCit3aW5kb3cuV2ViS2l0QW5pbWF0aW9u
LnByb3RvdHlwZS5GSUxMX0JBQ0tXQVJEUyBbbnVtYmVyXQord2luZG93LldlYktpdEFuaW1hdGlv
bi5wcm90b3R5cGUuRklMTF9CT1RIIFtudW1iZXJdCit3aW5kb3cuV2ViS2l0QW5pbWF0aW9uLnBy
b3RvdHlwZS5GSUxMX0ZPUldBUkRTIFtudW1iZXJdCit3aW5kb3cuV2ViS2l0QW5pbWF0aW9uLnBy
b3RvdHlwZS5GSUxMX05PTkUgW251bWJlcl0KK3dpbmRvdy5XZWJLaXRBbmltYXRpb24ucHJvdG90
eXBlLnBhdXNlIFtmdW5jdGlvbl0KK3dpbmRvdy5XZWJLaXRBbmltYXRpb24ucHJvdG90eXBlLnBs
YXkgW2Z1bmN0aW9uXQogd2luZG93LldlYktpdEFuaW1hdGlvbkV2ZW50IFtvYmplY3QgV2ViS2l0
QW5pbWF0aW9uRXZlbnRDb25zdHJ1Y3Rvcl0KIHdpbmRvdy5XZWJLaXRBbmltYXRpb25FdmVudC5w
cm90b3R5cGUgW3ByaW50ZWQgYWJvdmUgYXMgd2luZG93LkV2ZW50LnByb3RvdHlwZV0KK3dpbmRv
dy5XZWJLaXRBbmltYXRpb25MaXN0IFtvYmplY3QgV2ViS2l0QW5pbWF0aW9uTGlzdENvbnN0cnVj
dG9yXQord2luZG93LldlYktpdEFuaW1hdGlvbkxpc3QucHJvdG90eXBlIFtvYmplY3QgV2ViS2l0
QW5pbWF0aW9uTGlzdFByb3RvdHlwZV0KK3dpbmRvdy5XZWJLaXRBbmltYXRpb25MaXN0LnByb3Rv
dHlwZS5pdGVtIFtmdW5jdGlvbl0KIHdpbmRvdy5XZWJLaXRDU1NLZXlmcmFtZVJ1bGUgW29iamVj
dCBXZWJLaXRDU1NLZXlmcmFtZVJ1bGVDb25zdHJ1Y3Rvcl0KIHdpbmRvdy5XZWJLaXRDU1NLZXlm
cmFtZVJ1bGUucHJvdG90eXBlIFtwcmludGVkIGFib3ZlIGFzIHdpbmRvdy5DU1NSdWxlLnByb3Rv
dHlwZV0KIHdpbmRvdy5XZWJLaXRDU1NLZXlmcmFtZXNSdWxlIFtvYmplY3QgV2ViS2l0Q1NTS2V5
ZnJhbWVzUnVsZUNvbnN0cnVjdG9yXQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20v
V2luZG93L3dpbmRvdy1wcm9wZXJ0eS1kZXNjcmlwdG9ycy1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9mYXN0L2RvbS9XaW5kb3cvd2luZG93LXByb3BlcnR5LWRlc2NyaXB0b3JzLWV4cGVjdGVk
LnR4dAppbmRleCA2NTE0NGY2Li42Y2U3NDk5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0
L2RvbS9XaW5kb3cvd2luZG93LXByb3BlcnR5LWRlc2NyaXB0b3JzLWV4cGVjdGVkLnR4dAorKysg
Yi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvd2luZG93LXByb3BlcnR5LWRlc2NyaXB0b3Jz
LWV4cGVjdGVkLnR4dApAQCAtMzEwLDcgKzMxMCw5IEBAIFBBU1MgdHlwZW9mIE9iamVjdC5nZXRP
d25Qcm9wZXJ0eURlc2NyaXB0b3Iod2luZG93LCAnVGltZVJhbmdlcycpIGlzICdvYmplY3QnCiBQ
QVNTIHR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHdpbmRvdywgJ1R5cGVF
cnJvcicpIGlzICdvYmplY3QnCiBQQVNTIHR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNj
cmlwdG9yKHdpbmRvdywgJ1VJRXZlbnQnKSBpcyAnb2JqZWN0JwogUEFTUyB0eXBlb2YgT2JqZWN0
LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih3aW5kb3csICdVUklFcnJvcicpIGlzICdvYmplY3Qn
CitQQVNTIHR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHdpbmRvdywgJ1dl
YktpdEFuaW1hdGlvbicpIGlzICdvYmplY3QnCiBQQVNTIHR5cGVvZiBPYmplY3QuZ2V0T3duUHJv
cGVydHlEZXNjcmlwdG9yKHdpbmRvdywgJ1dlYktpdEFuaW1hdGlvbkV2ZW50JykgaXMgJ29iamVj
dCcKK1BBU1MgdHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iod2luZG93LCAn
V2ViS2l0QW5pbWF0aW9uTGlzdCcpIGlzICdvYmplY3QnCiBQQVNTIHR5cGVvZiBPYmplY3QuZ2V0
T3duUHJvcGVydHlEZXNjcmlwdG9yKHdpbmRvdywgJ1dlYktpdENTU0tleWZyYW1lUnVsZScpIGlz
ICdvYmplY3QnCiBQQVNTIHR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHdp
bmRvdywgJ1dlYktpdENTU0tleWZyYW1lc1J1bGUnKSBpcyAnb2JqZWN0JwogUEFTUyB0eXBlb2Yg
T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih3aW5kb3csICdXZWJLaXRDU1NNYXRyaXgn
KSBpcyAnb2JqZWN0JwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vcHJvdG90eXBl
LWluaGVyaXRhbmNlLTItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vcHJvdG90
eXBlLWluaGVyaXRhbmNlLTItZXhwZWN0ZWQudHh0CmluZGV4IDQ4NDYwZjEuLjQxZWIwMTUgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL3Byb3RvdHlwZS1pbmhlcml0YW5jZS0yLWV4
cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9wcm90b3R5cGUtaW5oZXJpdGFu
Y2UtMi1leHBlY3RlZC50eHQKQEAgLTQyOCw2ICs0MjgsOCBAQCBOZXZlciBmb3VuZCBTVkdWaWV3
RWxlbWVudAogTmV2ZXIgZm91bmQgU2hhcmVkV29ya2VyCiBOZXZlciBmb3VuZCBTdHlsZVNoZWV0
CiBOZXZlciBmb3VuZCBUZXh0TWV0cmljcworTmV2ZXIgZm91bmQgV2ViS2l0QW5pbWF0aW9uCitO
ZXZlciBmb3VuZCBXZWJLaXRBbmltYXRpb25MaXN0CiBOZXZlciBmb3VuZCBXZWJLaXRDU1NNYXRy
aXgKIE5ldmVyIGZvdW5kIFdlYktpdENTU1RyYW5zZm9ybVZhbHVlCiBOZXZlciBmb3VuZCBXZWJL
aXRQb2ludApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vcHJvdG90eXBlLWluaGVy
aXRhbmNlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL3Byb3RvdHlwZS1pbmhl
cml0YW5jZS1leHBlY3RlZC50eHQKaW5kZXggNzhhMDBhZi4uY2JiNTc3NCAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvZmFzdC9kb20vcHJvdG90eXBlLWluaGVyaXRhbmNlLWV4cGVjdGVkLnR4dAor
KysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9wcm90b3R5cGUtaW5oZXJpdGFuY2UtZXhwZWN0ZWQu
dHh0CkBAIC02MTMsOCArNjEzLDEyIEBAIFBBU1MgaW5uZXIuVUlFdmVudC5pc0lubmVyIGlzIHRy
dWUKIFBBU1MgaW5uZXIuVUlFdmVudC5jb25zdHJ1Y3Rvci5pc0lubmVyIGlzIHRydWUKIFBBU1Mg
aW5uZXIuVVJJRXJyb3IuaXNJbm5lciBpcyB0cnVlCiBQQVNTIGlubmVyLlVSSUVycm9yLmNvbnN0
cnVjdG9yLmlzSW5uZXIgaXMgdHJ1ZQorUEFTUyBpbm5lci5XZWJLaXRBbmltYXRpb24uaXNJbm5l
ciBpcyB0cnVlCitQQVNTIGlubmVyLldlYktpdEFuaW1hdGlvbi5jb25zdHJ1Y3Rvci5pc0lubmVy
IGlzIHRydWUKIFBBU1MgaW5uZXIuV2ViS2l0QW5pbWF0aW9uRXZlbnQuaXNJbm5lciBpcyB0cnVl
CiBQQVNTIGlubmVyLldlYktpdEFuaW1hdGlvbkV2ZW50LmNvbnN0cnVjdG9yLmlzSW5uZXIgaXMg
dHJ1ZQorUEFTUyBpbm5lci5XZWJLaXRBbmltYXRpb25MaXN0LmlzSW5uZXIgaXMgdHJ1ZQorUEFT
UyBpbm5lci5XZWJLaXRBbmltYXRpb25MaXN0LmNvbnN0cnVjdG9yLmlzSW5uZXIgaXMgdHJ1ZQog
UEFTUyBpbm5lci5XZWJLaXRDU1NLZXlmcmFtZVJ1bGUuaXNJbm5lciBpcyB0cnVlCiBQQVNTIGlu
bmVyLldlYktpdENTU0tleWZyYW1lUnVsZS5jb25zdHJ1Y3Rvci5pc0lubmVyIGlzIHRydWUKIFBB
U1MgaW5uZXIuV2ViS2l0Q1NTS2V5ZnJhbWVzUnVsZS5pc0lubmVyIGlzIHRydWUKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2Zhc3QvanMvZ2xvYmFsLWNvbnN0cnVjdG9ycy1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9mYXN0L2pzL2dsb2JhbC1jb25zdHJ1Y3RvcnMtZXhwZWN0ZWQudHh0Cmlu
ZGV4IGU4ZGFmZjkuLjUyN2Y3NGQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvanMvZ2xv
YmFsLWNvbnN0cnVjdG9ycy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9qcy9n
bG9iYWwtY29uc3RydWN0b3JzLWV4cGVjdGVkLnR4dApAQCAtMjkxLDcgKzI5MSw5IEBAIFBBU1Mg
VGV4dEV2ZW50LnRvU3RyaW5nKCkgaXMgJ1tvYmplY3QgVGV4dEV2ZW50Q29uc3RydWN0b3JdJwog
UEFTUyBUZXh0TWV0cmljcy50b1N0cmluZygpIGlzICdbb2JqZWN0IFRleHRNZXRyaWNzQ29uc3Ry
dWN0b3JdJwogUEFTUyBUaW1lUmFuZ2VzLnRvU3RyaW5nKCkgaXMgJ1tvYmplY3QgVGltZVJhbmdl
c0NvbnN0cnVjdG9yXScKIFBBU1MgVUlFdmVudC50b1N0cmluZygpIGlzICdbb2JqZWN0IFVJRXZl
bnRDb25zdHJ1Y3Rvcl0nCitQQVNTIFdlYktpdEFuaW1hdGlvbi50b1N0cmluZygpIGlzICdbb2Jq
ZWN0IFdlYktpdEFuaW1hdGlvbkNvbnN0cnVjdG9yXScKIFBBU1MgV2ViS2l0QW5pbWF0aW9uRXZl
bnQudG9TdHJpbmcoKSBpcyAnW29iamVjdCBXZWJLaXRBbmltYXRpb25FdmVudENvbnN0cnVjdG9y
XScKK1BBU1MgV2ViS2l0QW5pbWF0aW9uTGlzdC50b1N0cmluZygpIGlzICdbb2JqZWN0IFdlYktp
dEFuaW1hdGlvbkxpc3RDb25zdHJ1Y3Rvcl0nCiBQQVNTIFdlYktpdENTU0tleWZyYW1lUnVsZS50
b1N0cmluZygpIGlzICdbb2JqZWN0IFdlYktpdENTU0tleWZyYW1lUnVsZUNvbnN0cnVjdG9yXScK
IFBBU1MgV2ViS2l0Q1NTS2V5ZnJhbWVzUnVsZS50b1N0cmluZygpIGlzICdbb2JqZWN0IFdlYktp
dENTU0tleWZyYW1lc1J1bGVDb25zdHJ1Y3Rvcl0nCiBQQVNTIFdlYktpdENTU01hdHJpeC50b1N0
cmluZygpIGlzICdbb2JqZWN0IFdlYktpdENTU01hdHJpeENvbnN0cnVjdG9yXScKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL0FuZHJvaWQuZGVyaXZlZC5qc2NiaW5kaW5ncy5tayBiL1NvdXJj
ZS9XZWJDb3JlL0FuZHJvaWQuZGVyaXZlZC5qc2NiaW5kaW5ncy5tawppbmRleCA2ZDA2NGFlLi4w
N2RkYzJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9BbmRyb2lkLmRlcml2ZWQuanNjYmlu
ZGluZ3MubWsKKysrIGIvU291cmNlL1dlYkNvcmUvQW5kcm9pZC5kZXJpdmVkLmpzY2JpbmRpbmdz
Lm1rCkBAIC0yOTgsNiArMjk4LDggQEAgR0VOIDo9IFwKICAgICAkKGludGVybWVkaWF0ZXMpL3Bh
Z2UvSlNOYXZpZ2F0b3IuaCBcCiAgICAgJChpbnRlcm1lZGlhdGVzKS9wYWdlL0pTUG9zaXRpb25F
cnJvci5oIFwKICAgICAkKGludGVybWVkaWF0ZXMpL3BhZ2UvSlNTY3JlZW4uaCBcCisgICAgJChp
bnRlcm1lZGlhdGVzKS9wYWdlL0pTV2ViS2l0QW5pbWF0aW9uLmggXAorICAgICQoaW50ZXJtZWRp
YXRlcykvcGFnZS9KU1dlYktpdEFuaW1hdGlvbkxpc3QuaCBcCiAgICAgJChpbnRlcm1lZGlhdGVz
KS9wYWdlL0pTV2ViS2l0UG9pbnQuaCBcCiAgICAgJChpbnRlcm1lZGlhdGVzKS9wYWdlL0pTV29y
a2VyTmF2aWdhdG9yLmgKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQW5kcm9pZC5kZXJp
dmVkLnY4YmluZGluZ3MubWsgYi9Tb3VyY2UvV2ViQ29yZS9BbmRyb2lkLmRlcml2ZWQudjhiaW5k
aW5ncy5tawppbmRleCA1MjRlMjlhLi41YTBmZWNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9BbmRyb2lkLmRlcml2ZWQudjhiaW5kaW5ncy5taworKysgYi9Tb3VyY2UvV2ViQ29yZS9BbmRy
b2lkLmRlcml2ZWQudjhiaW5kaW5ncy5tawpAQCAtMjc5LDYgKzI3OSw4IEBAIEdFTiA6PSBcCiAg
ICAgJChpbnRlcm1lZGlhdGVzKS9iaW5kaW5ncy9WOE5hdmlnYXRvci5oIFwKICAgICAkKGludGVy
bWVkaWF0ZXMpL2JpbmRpbmdzL1Y4UG9zaXRpb25FcnJvci5oIFwKICAgICAkKGludGVybWVkaWF0
ZXMpL2JpbmRpbmdzL1Y4U2NyZWVuLmggXAorICAgICQoaW50ZXJtZWRpYXRlcykvYmluZGluZ3Mv
VjhXZWJLaXRBbmltYXRpb24uaCBcCisgICAgJChpbnRlcm1lZGlhdGVzKS9iaW5kaW5ncy9WOFdl
YktpdEFuaW1hdGlvbkxpc3QuaCBcCiAgICAgJChpbnRlcm1lZGlhdGVzKS9iaW5kaW5ncy9WOFdl
YktpdFBvaW50LmggXAogICAgICQoaW50ZXJtZWRpYXRlcykvYmluZGluZ3MvVjhXb3JrZXJOYXZp
Z2F0b3IuaAogJChHRU4pOiBQUklWQVRFX1BBVEggOj0gJChMT0NBTF9QQVRIKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvQW5kcm9pZC5tayBiL1NvdXJjZS9XZWJDb3JlL0FuZHJvaWQubWsK
aW5kZXggOTg1OThmZS4uMTU4ZTU5MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQW5kcm9p
ZC5taworKysgYi9Tb3VyY2UvV2ViQ29yZS9BbmRyb2lkLm1rCkBAIC00NDksNiArNDQ5LDggQEAg
TE9DQUxfU1JDX0ZJTEVTIDo9ICQoTE9DQUxfU1JDX0ZJTEVTKSBcCiAJcGFnZS9TcGVlY2hJbnB1
dFJlc3VsdC5jcHAgXAogCXBhZ2UvU3VzcGVuZGFibGVUaW1lci5jcHAgXAogCXBhZ2UvVXNlckNv
bnRlbnRVUkxQYXR0ZXJuLmNwcCBcCisJcGFnZS9XZWJLaXRBbmltYXRpb24uY3BwIFwKKwlwYWdl
L1dlYktpdEFuaW1hdGlvbkxpc3QuY3BwIFwKIAlwYWdlL1dpbmRvd0ZlYXR1cmVzLmNwcCBcCiAJ
cGFnZS9Xb3JrZXJOYXZpZ2F0b3IuY3BwIFwKIAlcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9BbmRyb2lkLnY4YmluZGluZ3MubWsgYi9Tb3VyY2UvV2ViQ29yZS9BbmRyb2lkLnY4YmluZGlu
Z3MubWsKaW5kZXggNjJjY2NmNS4uNzAwODkwYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
QW5kcm9pZC52OGJpbmRpbmdzLm1rCisrKyBiL1NvdXJjZS9XZWJDb3JlL0FuZHJvaWQudjhiaW5k
aW5ncy5tawpAQCAtMTY0LDYgKzE2NCw3IEBAIExPQ0FMX1NSQ19GSUxFUyArPSBcCiAJYmluZGlu
Z3MvdjgvY3VzdG9tL1Y4U3R5bGVTaGVldEN1c3RvbS5jcHAgXAogCWJpbmRpbmdzL3Y4L2N1c3Rv
bS9WOFN0eWxlU2hlZXRMaXN0Q3VzdG9tLmNwcCBcCiAJYmluZGluZ3MvdjgvY3VzdG9tL1Y4VHJl
ZVdhbGtlckN1c3RvbS5jcHAgXAorCWJpbmRpbmdzL3Y4L2N1c3RvbS9WOFdlYktpdEFuaW1hdGlv
bkN1c3RvbS5jcHAgXAogCWJpbmRpbmdzL3Y4L2N1c3RvbS9WOFdlYktpdENTU01hdHJpeENvbnN0
cnVjdG9yLmNwcCBcCiAJYmluZGluZ3MvdjgvY3VzdG9tL1Y4V2ViS2l0UG9pbnRDb25zdHJ1Y3Rv
ci5jcHAgXAogCWJpbmRpbmdzL3Y4L2N1c3RvbS9WOFdvcmtlckNvbnRleHRDdXN0b20uY3BwIFwK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkNv
cmUvQ01ha2VMaXN0cy50eHQKaW5kZXggNDhmMjM3YS4uNzE2ODM1YiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0
cy50eHQKQEAgLTM0Myw2ICszNDMsOCBAQCBTRVQoV2ViQ29yZV9JRExfRklMRVMKICAgICBwYWdl
L1NwZWVjaElucHV0RXZlbnQuaWRsCiAgICAgcGFnZS9TcGVlY2hJbnB1dFJlc3VsdC5pZGwKICAg
ICBwYWdlL1NwZWVjaElucHV0UmVzdWx0TGlzdC5pZGwKKyAgICBwYWdlL1dlYktpdEFuaW1hdGlv
bi5pZGwKKyAgICBwYWdlL1dlYktpdEFuaW1hdGlvbkxpc3QuaWRsCiAgICAgcGFnZS9XZWJLaXRQ
b2ludC5pZGwKICAgICBwYWdlL1dvcmtlck5hdmlnYXRvci5pZGwKIApAQCAtNTc0LDYgKzU3Niw4
IEBAIFNFVChXZWJDb3JlX1NPVVJDRVMKICAgICBiaW5kaW5ncy9qcy9KU1VpbnQxNkFycmF5Q3Vz
dG9tLmNwcCAKICAgICBiaW5kaW5ncy9qcy9KU1VpbnQzMkFycmF5Q3VzdG9tLmNwcAogICAgIGJp
bmRpbmdzL2pzL0pTVWludDhBcnJheUN1c3RvbS5jcHAKKyAgICBiaW5kaW5ncy9qcy9KU1dlYktp
dEFuaW1hdGlvbkN1c3RvbS5jcHAKKyAgICBiaW5kaW5ncy9qcy9KU1dlYktpdEFuaW1hdGlvbkxp
c3RDdXN0b20uY3BwCiAgICAgYmluZGluZ3MvanMvSlNXZWJLaXRDU1NLZXlmcmFtZVJ1bGVDdXN0
b20uY3BwCiAgICAgYmluZGluZ3MvanMvSlNXZWJLaXRDU1NLZXlmcmFtZXNSdWxlQ3VzdG9tLmNw
cAogICAgIGJpbmRpbmdzL2pzL0pTV2ViS2l0Q1NTTWF0cml4Q3VzdG9tLmNwcApAQCAtMTE3Myw2
ICsxMTc3LDggQEAgU0VUKFdlYkNvcmVfU09VUkNFUwogICAgIHBhZ2UvU3BhdGlhbE5hdmlnYXRp
b24uY3BwCiAgICAgcGFnZS9TdXNwZW5kYWJsZVRpbWVyLmNwcAogICAgIHBhZ2UvVXNlckNvbnRl
bnRVUkxQYXR0ZXJuLmNwcAorICAgIHBhZ2UvV2ViS2l0QW5pbWF0aW9uLmNwcAorICAgIHBhZ2Uv
V2ViS2l0QW5pbWF0aW9uTGlzdC5jcHAKICAgICBwYWdlL1dpbmRvd0ZlYXR1cmVzLmNwcAogICAg
IHBhZ2UvV29ya2VyTmF2aWdhdG9yLmNwcAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTg1Zjc4Ni4uYjAyMDFj
MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJD
b3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDk2IEBACisyMDExLTAzLTEwICBEZWFuIEphY2tzb24g
IDxkaW5vQGFwcGxlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBTaW1vbiBGcmFzZXIgYW5k
IENocmlzIE1hcnJpbi4KKworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9NTQxNTEKKyAgICAgICAgSW1wbGVtZW50IGFuIEFQSSB0byBwbGF5L3BhdXNlL3Nj
cnViIGFuaW1hdGlvbnMKKworICAgICAgICBUaGlzIGlzIFBhcnQgMS4gQWRkcyB0aGUgbmV3IFdl
YktpdEFuaW1hdGlvbiBhbmQgV2ViS2l0QW5pbWF0aW9uTGlzdAorICAgICAgICBBUElzLCBleHBv
c2VkIHZpYSBFbGVtZW50LmdldFdlYktpdEFuaW1hdGlvbnMoKS4gVGhpcyBmaXJzdCBwYXNzCisg
ICAgICAgIGlzIGEgcmVhZC1vbmx5IEFQSSAtIGEgc3Vic2VxdWVudCBjb21taXQgd2lsbCBhZGQg
dGhlIGFiaWxpdHkKKyAgICAgICAgdG8gc2NydWIgYW5pbWF0aW9ucy4KKworICAgICAgICBUZXN0
OiBhbmltYXRpb25zL2FuaW1hdGlvbi1hcGktMS5odG1sCisKKyAgICAgICAgKiBBbmRyb2lkLmRl
cml2ZWQuanNjYmluZGluZ3MubWs6CisgICAgICAgICogQW5kcm9pZC5kZXJpdmVkLnY4YmluZGlu
Z3MubWs6CisgICAgICAgICogQW5kcm9pZC5tazoKKyAgICAgICAgKiBBbmRyb2lkLnY4YmluZGlu
Z3MubWs6CisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6CisgICAgICAgICogQ29kZUdlbmVyYXRv
cnMucHJpOgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLmNwcDoKKyAgICAgICAgKiBEZXJpdmVk
U291cmNlcy5tYWtlOgorICAgICAgICAqIEdOVW1ha2VmaWxlLmFtOgorICAgICAgICAqIFdlYkNv
cmUuZ3lwaToKKyAgICAgICAgKiBXZWJDb3JlLnBybzoKKyAgICAgICAgKiBXZWJDb3JlLnZjcHJv
ai9XZWJDb3JlLnZjcHJvajoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2o6CisgICAgICAgIC0gQWxsIGJ1aWxkIHNldHRpbmdzIHVwZGF0ZWQgZm9yIG5ldyBmaWxl
cworICAgICAgICAqIGJpbmRpbmdzL2pzL0pTQmluZGluZ3NBbGxJbk9uZS5jcHA6CisgICAgICAg
IC0gSW5jbHVkZSBuZXcgY3VzdG9tIGZpbGVzCisgICAgICAgICogYmluZGluZ3MvanMvSlNXZWJL
aXRBbmltYXRpb25DdXN0b20uY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkpTV2ViS2l0
QW5pbWF0aW9uOjppdGVyYXRpb25Db3VudCk6CisgICAgICAgIC0gQ3VzdG9tIHByb3BlcnR5IGdl
dHRlciBzbyB0aGF0IHdlIGNhbiByZXR1cm4gSU5GSU5JVFkKKyAgICAgICAgKiBiaW5kaW5ncy9q
cy9KU1dlYktpdEFuaW1hdGlvbkxpc3RDdXN0b20uY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNv
cmU6OkpTV2ViS2l0QW5pbWF0aW9uTGlzdDo6bWFya0NoaWxkcmVuKToKKyAgICAgICAgLSBNYWtl
IHN1cmUgV2ViS2l0QW5pbWF0aW9ucyBhcmUgbWFya2VkCisgICAgICAgICogYmluZGluZ3Mvdjgv
Y3VzdG9tL1Y4V2ViS2l0QW5pbWF0aW9uQ3VzdG9tLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJD
b3JlOjpWOFdlYmtpdEFuaW1hdGlvbjo6aXRlcmF0aW9uQ291bnRBY2Nlc3NvckdldHRlcik6Cisg
ICAgICAgIC0gQ3VzdG9tIHByb3BlcnR5IGdldHRlciBzbyB0aGF0IHdlIGNhbiByZXR1cm4gSU5G
SU5JVFkKKyAgICAgICAgKiBkb20vRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpFbGVt
ZW50Ojp3ZWJraXRHZXRBbmltYXRpb25zKToKKyAgICAgICAgKiBkb20vRWxlbWVudC5oOgorICAg
ICAgICAqIGRvbS9FbGVtZW50LmlkbDoKKyAgICAgICAgLSBOZXcgQVBJIGVudHJ5IHBvaW50Cisg
ICAgICAgICogcGFnZS9ET01XaW5kb3cuaWRsOgorICAgICAgICAtIENvbnN0cnVjdG9yIGRlZmlu
aXRpb25zIGZvciBXZWJLaXRBbmltYXRpb24gYW5kIFdlYktpdEFuaW1hdGlvbkxpc3QKKyAgICAg
ICAgKiBwYWdlL2FuaW1hdGlvbi9BbmltYXRpb25CYXNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkFuaW1hdGlvbkJhc2U6On5BbmltYXRpb25CYXNlKToKKyAgICAgICAgLSBTaW5jZSBBbmltYXRp
b25CYXNlIGNhbiBub3cgbGl2ZSBsb25nZXIgKGlmIGEgV2ViS2l0QW5pbWF0aW9uIGlzCisgICAg
ICAgIGhlbGQgaW4gSmF2YXNjcmlwdCkgd2UgbmVlZCB0byBndWFyZCBmb3IgdGhlIHJlbmRlcmVy
IGhhdmluZyBkaXNhcHBlYXJlZC4KKyAgICAgICAgKFdlYkNvcmU6OkFuaW1hdGlvbkJhc2U6OnNl
dEVsYXBzZWRUaW1lKToKKyAgICAgICAgKFdlYkNvcmU6OkFuaW1hdGlvbkJhc2U6OnBsYXkpOgor
ICAgICAgICAoV2ViQ29yZTo6QW5pbWF0aW9uQmFzZTo6cGF1c2UpOgorICAgICAgICAtIFN0dWIg
aW1wbGVtZW50YXRpb25zIGF0IHByZXNlbnQKKyAgICAgICAgKiBwYWdlL2FuaW1hdGlvbi9Bbmlt
YXRpb25CYXNlLmg6CisgICAgICAgIChXZWJDb3JlOjpBbmltYXRpb25CYXNlOjphbmltYXRpb24p
OgorICAgICAgICAtIEV4cG9zZSB0aGUgQW5pbWF0aW9uIHByb3BlcnRpZXMKKyAgICAgICAgKiBw
YWdlL2FuaW1hdGlvbi9BbmltYXRpb25Db250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkFuaW1hdGlvbkNvbnRyb2xsZXJQcml2YXRlOjphbmltYXRpb25zRm9yUmVuZGVyZXIpOgorICAg
ICAgICAoV2ViQ29yZTo6QW5pbWF0aW9uQ29udHJvbGxlcjo6YW5pbWF0aW9uc0ZvclJlbmRlcmVy
KToKKyAgICAgICAgLSBCdWlsZHMgdGhlIGxpc3Qgb2YgV2ViS2l0QW5pbWF0aW9ucworICAgICAg
ICAqIHBhZ2UvYW5pbWF0aW9uL0FuaW1hdGlvbkNvbnRyb2xsZXIuaDoKKyAgICAgICAgKiBwYWdl
L2FuaW1hdGlvbi9BbmltYXRpb25Db250cm9sbGVyUHJpdmF0ZS5oOgorICAgICAgICAqIHBhZ2Uv
YW5pbWF0aW9uL0NvbXBvc2l0ZUFuaW1hdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDb21w
b3NpdGVBbmltYXRpb246OnVwZGF0ZUtleWZyYW1lQW5pbWF0aW9ucyk6CisgICAgICAgIC0gTWFr
ZSBzdXJlIHdlIGNsZWFyIHRoZSByZW5kZXJlciBpZiB3ZSBhcmUgcmVtb3ZpbmcgdGhlIGFuaW1h
dGlvbgorICAgICAgICAoV2ViQ29yZTo6Q29tcG9zaXRlQW5pbWF0aW9uOjphbmltYXRpb25zKToK
KyAgICAgICAgKiBwYWdlL2FuaW1hdGlvbi9Db21wb3NpdGVBbmltYXRpb24uaDoKKyAgICAgICAg
KiBwYWdlL2FuaW1hdGlvbi9XZWJLaXRBbmltYXRpb24uY3BwOiBBZGRlZC4KKyAgICAgICAgKFdl
YkNvcmU6OldlYktpdEFuaW1hdGlvbjo6V2ViS2l0QW5pbWF0aW9uKToKKyAgICAgICAgKFdlYkNv
cmU6OldlYktpdEFuaW1hdGlvbjo6bmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpXZWJLaXRBbmlt
YXRpb246OmR1cmF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OldlYktpdEFuaW1hdGlvbjo6ZWxh
cHNlZFRpbWUpOgorICAgICAgICAoV2ViQ29yZTo6V2ViS2l0QW5pbWF0aW9uOjpzZXRFbGFwc2Vk
VGltZSk6CisgICAgICAgIChXZWJDb3JlOjpXZWJLaXRBbmltYXRpb246OmRlbGF5KToKKyAgICAg
ICAgKFdlYkNvcmU6OldlYktpdEFuaW1hdGlvbjo6aXRlcmF0aW9uQ291bnQpOgorICAgICAgICAo
V2ViQ29yZTo6V2ViS2l0QW5pbWF0aW9uOjpwYXVzZWQpOgorICAgICAgICAoV2ViQ29yZTo6V2Vi
S2l0QW5pbWF0aW9uOjplbmRlZCk6CisgICAgICAgIChXZWJDb3JlOjpXZWJLaXRBbmltYXRpb246
OmRpcmVjdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpXZWJLaXRBbmltYXRpb246OmZpbGxNb2Rl
KToKKyAgICAgICAgKFdlYkNvcmU6OldlYktpdEFuaW1hdGlvbjo6cGF1c2UpOgorICAgICAgICAo
V2ViQ29yZTo6V2ViS2l0QW5pbWF0aW9uOjpwbGF5KToKKyAgICAgICAgLSBUaGUgaW1wbGVtZW50
YXRpb24gb2YgdGhlIG5ldyBBUEkuIEFsbCB0aGUgcmVhZC1vbmx5IHBhcnRzIGFyZQorICAgICAg
ICBkb25lLCBidXQgZWxhcHNlZFRpbWUsIHBsYXkoKSBhbmQgcGF1c2UoKSBhcmUgc3R1YnMuCisg
ICAgICAgICogcGFnZS9hbmltYXRpb24vV2ViS2l0QW5pbWF0aW9uLmg6IEFkZGVkLgorICAgICAg
ICAoV2ViQ29yZTo6V2ViS2l0QW5pbWF0aW9uOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6
V2ViS2l0QW5pbWF0aW9uOjp+V2ViS2l0QW5pbWF0aW9uKToKKyAgICAgICAgKiBwYWdlL2FuaW1h
dGlvbi9XZWJLaXRBbmltYXRpb24uaWRsOiBBZGRlZC4KKyAgICAgICAgKiBwYWdlL2FuaW1hdGlv
bi9XZWJLaXRBbmltYXRpb25MaXN0LmNwcDogQWRkZWQuCisgICAgICAgICogcGFnZS9hbmltYXRp
b24vV2ViS2l0QW5pbWF0aW9uTGlzdC5oOiBBZGRlZC4KKyAgICAgICAgKiBwYWdlL2FuaW1hdGlv
bi9XZWJLaXRBbmltYXRpb25MaXN0LmlkbDogQWRkZWQuCisgICAgICAgIC0gQ29waWVzIE5vZGVM
aXN0IGltcGxlbWVudGF0aW9uCisKIDIwMTEtMDMtMTAgIERhdmlkIEh5YXR0ICA8aHlhdHRAYXBw
bGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IFNpbW9uIEZyYXNlci4KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL0NvZGVHZW5lcmF0b3JzLnByaSBiL1NvdXJjZS9XZWJDb3JlL0NvZGVH
ZW5lcmF0b3JzLnByaQppbmRleCAzZTQ1OWE2Li5mMTBjODFhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9Db2RlR2VuZXJhdG9ycy5wcmkKKysrIGIvU291cmNlL1dlYkNvcmUvQ29kZUdlbmVy
YXRvcnMucHJpCkBAIC0zMzQsNiArMzM0LDggQEAgSURMX0JJTkRJTkdTICs9IFwKICAgICBwYWdl
L1NwZWVjaElucHV0RXZlbnQuaWRsIFwKICAgICBwYWdlL1NwZWVjaElucHV0UmVzdWx0LmlkbCBc
CiAgICAgcGFnZS9TcGVlY2hJbnB1dFJlc3VsdExpc3QuaWRsIFwKKyAgICBwYWdlL1dlYktpdEFu
aW1hdGlvbi5pZGwgXAorICAgIHBhZ2UvV2ViS2l0QW5pbWF0aW9uTGlzdC5pZGwgXAogICAgIHBh
Z2UvV2ViS2l0UG9pbnQuaWRsIFwKICAgICBwYWdlL1dvcmtlck5hdmlnYXRvci5pZGwgXAogICAg
IHBsdWdpbnMvRE9NUGx1Z2luLmlkbCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9EZXJp
dmVkU291cmNlcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5jcHAKaW5kZXgg
OWFiMzdlYy4uMjQwMjJmNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJj
ZXMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLmNwcApAQCAtNDM1LDcg
KzQzNSw5IEBACiAjaW5jbHVkZSAiSlNVaW50OEFycmF5LmNwcCIKICNpbmNsdWRlICJKU1VJRXZl
bnQuY3BwIgogI2luY2x1ZGUgIkpTVmFsaWRpdHlTdGF0ZS5jcHAiCisjaW5jbHVkZSAiSlNXZWJL
aXRBbmltYXRpb24uY3BwIgogI2luY2x1ZGUgIkpTV2ViS2l0QW5pbWF0aW9uRXZlbnQuY3BwIgor
I2luY2x1ZGUgIkpTV2ViS2l0QW5pbWF0aW9uTGlzdC5jcHAiCiAjaW5jbHVkZSAiSlNXZWJLaXRD
U1NLZXlmcmFtZVJ1bGUuY3BwIgogI2luY2x1ZGUgIkpTV2ViS2l0Q1NTS2V5ZnJhbWVzUnVsZS5j
cHAiCiAjaW5jbHVkZSAiSlNXZWJLaXRDU1NUcmFuc2Zvcm1WYWx1ZS5jcHAiCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlIGIvU291cmNlL1dlYkNvcmUvRGVy
aXZlZFNvdXJjZXMubWFrZQppbmRleCA5MTU4MDExLi5iNjIwMDJkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2
ZWRTb3VyY2VzLm1ha2UKQEAgLTUxMiw3ICs1MTIsOSBAQCBET01fQ0xBU1NFUyA9IFwKICAgICBU
cmVlV2Fsa2VyIFwKICAgICBVSUV2ZW50IFwKICAgICBWYWxpZGl0eVN0YXRlIFwKKyAgICBXZWJL
aXRBbmltYXRpb24gXAogICAgIFdlYktpdEFuaW1hdGlvbkV2ZW50IFwKKyAgICBXZWJLaXRBbmlt
YXRpb25MaXN0IFwKICAgICBXZWJLaXRDU1NLZXlmcmFtZVJ1bGUgXAogICAgIFdlYktpdENTU0tl
eWZyYW1lc1J1bGUgXAogICAgIFdlYktpdENTU01hdHJpeCBcCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9HTlVtYWtlZmlsZS5hbSBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmFtCmlu
ZGV4IGMzY2U5YTUuLmU2NDViZjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2Vm
aWxlLmFtCisrKyBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmFtCkBAIC01OTgsNyArNTk4
LDExIEBAIHdlYmNvcmVfYnVpbHRfc291cmNlcyArPSBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViQ29y
ZS9KU1dlYkdMVW5pZm9ybUxvY2F0aW9uLmggXAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNX
ZWJHTFZlcnRleEFycmF5T2JqZWN0T0VTLmNwcCBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9K
U1dlYkdMVmVydGV4QXJyYXlPYmplY3RPRVMuaCBcCisJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9K
U1dlYktpdEFuaW1hdGlvbi5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNXZWJLaXRB
bmltYXRpb24uaCBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1dlYktpdEFuaW1hdGlvbkV2
ZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1dlYktpdEFuaW1hdGlvbkxpc3Qu
aCBcCisJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1dlYktpdEFuaW1hdGlvbkxpc3QuY3BwIFwK
IAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTV2ViS2l0QW5pbWF0aW9uRXZlbnQuaCBcCiAJRGVy
aXZlZFNvdXJjZXMvV2ViQ29yZS9KU1dlYktpdENTU0tleWZyYW1lUnVsZS5jcHAgXAogCURlcml2
ZWRTb3VyY2VzL1dlYkNvcmUvSlNXZWJLaXRDU1NLZXlmcmFtZVJ1bGUuaCBcCkBAIC04NzAsNiAr
ODc0LDggQEAgd2ViY29yZV9zb3VyY2VzICs9IFwKIAlTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9KU1VpbnQxNkFycmF5Q3VzdG9tLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
SlNVaW50MzJBcnJheUN1c3RvbS5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pT
VWludDhBcnJheUN1c3RvbS5jcHAgXAorCVNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTV2Vi
S2l0QW5pbWF0aW9uQ3VzdG9tLmNwcCBcCisJU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNX
ZWJLaXRBbmltYXRpb25MaXN0Q3VzdG9tLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvSlNXZWJLaXRDU1NLZXlmcmFtZVJ1bGVDdXN0b20uY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU1dlYktpdENTU0tleWZyYW1lc1J1bGVDdXN0b20uY3BwIFwKIAlTb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dlYkdMUmVuZGVyaW5nQ29udGV4dEN1c3RvbS5jcHAgXApA
QCAtMjMwNSw2ICsyMzExLDEwIEBAIHdlYmNvcmVfc291cmNlcyArPSBcCiAJU291cmNlL1dlYkNv
cmUvcGFnZS9Vc2VyU2NyaXB0VHlwZXMuaCBcCiAJU291cmNlL1dlYkNvcmUvcGFnZS9Vc2VyU3R5
bGVTaGVldC5oIFwKIAlTb3VyY2UvV2ViQ29yZS9wYWdlL1VzZXJTdHlsZVNoZWV0VHlwZXMuaCBc
CisJU291cmNlL1dlYkNvcmUvcGFnZS9XZWJLaXRBbmltYXRpb24uaCBcCisJU291cmNlL1dlYkNv
cmUvcGFnZS9XZWJLaXRBbmltYXRpb24uY3BwIFwKKwlTb3VyY2UvV2ViQ29yZS9wYWdlL1dlYktp
dEFuaW1hdGlvbkxpc3QuaCBcCisJU291cmNlL1dlYkNvcmUvcGFnZS9XZWJLaXRBbmltYXRpb25M
aXN0LmNwcCBcCiAJU291cmNlL1dlYkNvcmUvcGFnZS9XZWJLaXRQb2ludC5oIFwKIAlTb3VyY2Uv
V2ViQ29yZS9wYWdlL1dpbmRvd0ZlYXR1cmVzLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvcGFnZS9X
aW5kb3dGZWF0dXJlcy5oIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lw
aSBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQppbmRleCBjODMxM2I5Li4wYmE1M2RiIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKKysrIGIvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS5neXBpCkBAIC0yNzYsNiArMjc2LDggQEAKICAgICAgICAgICAgICdwYWdlL1Nw
ZWVjaElucHV0RXZlbnQuaWRsJywKICAgICAgICAgICAgICdwYWdlL1NwZWVjaElucHV0UmVzdWx0
LmlkbCcsCiAgICAgICAgICAgICAncGFnZS9TcGVlY2hJbnB1dFJlc3VsdExpc3QuaWRsJywKKyAg
ICAgICAgICAgICdwYWdlL1dlYktpdEFuaW1hdGlvbi5pZGwnLAorICAgICAgICAgICAgJ3BhZ2Uv
V2ViS2l0QW5pbWF0aW9uTGlzdC5pZGwnLAogICAgICAgICAgICAgJ3BhZ2UvV2ViS2l0UG9pbnQu
aWRsJywKICAgICAgICAgICAgICdwYWdlL1dvcmtlck5hdmlnYXRvci5pZGwnLAogICAgICAgICAg
ICAgJ3BsdWdpbnMvRE9NTWltZVR5cGUuaWRsJywKQEAgLTc4Nyw2ICs3ODksOCBAQAogICAgICAg
ICAgICAgJ2JpbmRpbmdzL2pzL0pTVWludDMyQXJyYXlDdXN0b20uY3BwJywKICAgICAgICAgICAg
ICdiaW5kaW5ncy9qcy9KU1VpbnQ4QXJyYXlDdXN0b20uY3BwJywKICAgICAgICAgICAgICdiaW5k
aW5ncy9qcy9KU1dlYkdMUmVuZGVyaW5nQ29udGV4dEN1c3RvbS5jcHAnLAorICAgICAgICAgICAg
J2JpbmRpbmdzL2pzL0pTV2ViS2l0QW5pbWF0aW9uQ3VzdG9tLmNwcCcsCisgICAgICAgICAgICAn
YmluZGluZ3MvanMvSlNXZWJLaXRBbmltYXRpb25MaXN0Q3VzdG9tLmNwcCcsCiAgICAgICAgICAg
ICAnYmluZGluZ3MvanMvSlNXZWJLaXRDU1NLZXlmcmFtZVJ1bGVDdXN0b20uY3BwJywKICAgICAg
ICAgICAgICdiaW5kaW5ncy9qcy9KU1dlYktpdENTU0tleWZyYW1lc1J1bGVDdXN0b20uY3BwJywK
ICAgICAgICAgICAgICdiaW5kaW5ncy9qcy9KU1dlYktpdENTU01hdHJpeEN1c3RvbS5jcHAnLApA
QCAtMTExOCw2ICsxMTIyLDcgQEAKICAgICAgICAgICAgICdiaW5kaW5ncy92OC9jdXN0b20vVjhV
aW50MzJBcnJheUN1c3RvbS5jcHAnLAogICAgICAgICAgICAgJ2JpbmRpbmdzL3Y4L2N1c3RvbS9W
OFVpbnQ4QXJyYXlDdXN0b20uY3BwJywKICAgICAgICAgICAgICdiaW5kaW5ncy92OC9jdXN0b20v
VjhXZWJHTFJlbmRlcmluZ0NvbnRleHRDdXN0b20uY3BwJywKKyAgICAgICAgICAgICdiaW5kaW5n
cy92OC9jdXN0b20vVjhXZWJLaXRBbmltYXRpb25DdXN0b20uY3BwJywKICAgICAgICAgICAgICdi
aW5kaW5ncy92OC9jdXN0b20vVjhXZWJLaXRDU1NNYXRyaXhDb25zdHJ1Y3Rvci5jcHAnLAogICAg
ICAgICAgICAgJ2JpbmRpbmdzL3Y4L2N1c3RvbS9WOFdlYktpdFBvaW50Q29uc3RydWN0b3IuY3Bw
JywKICAgICAgICAgICAgICdiaW5kaW5ncy92OC9jdXN0b20vVjhXZWJTb2NrZXRDdXN0b20uY3Bw
JywKQEAgLTI1MTAsNiArMjUxNSwxMCBAQAogICAgICAgICAgICAgJ3BhZ2UvVXNlclNjcmlwdFR5
cGVzLmgnLAogICAgICAgICAgICAgJ3BhZ2UvVXNlclN0eWxlU2hlZXQuaCcsCiAgICAgICAgICAg
ICAncGFnZS9Vc2VyU3R5bGVTaGVldFR5cGVzLmgnLAorICAgICAgICAgICAgJ3BhZ2UvV2ViS2l0
QW5pbWF0aW9uLmNwcCcsCisgICAgICAgICAgICAncGFnZS9XZWJLaXRBbmltYXRpb24uaCcsCisg
ICAgICAgICAgICAncGFnZS9XZWJLaXRBbmltYXRpb25MaXN0LmNwcCcsCisgICAgICAgICAgICAn
cGFnZS9XZWJLaXRBbmltYXRpb25MaXN0LmgnLAogICAgICAgICAgICAgJ3BhZ2UvV2ViS2l0UG9p
bnQuaCcsCiAgICAgICAgICAgICAncGFnZS9XaW5kb3dGZWF0dXJlcy5jcHAnLAogICAgICAgICAg
ICAgJ3BhZ2UvV2luZG93RmVhdHVyZXMuaCcsCkBAIC02ODU3LDkgKzY4NjYsMTMgQEAKICAgICAg
ICAgICAgICc8KFBST0RVQ1RfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0RPTVdlYkdMVmVy
dGV4QXJyYXlPYmplY3RPRVMuaCcsCiAgICAgICAgICAgICAnPChQUk9EVUNUX0RJUikvRGVyaXZl
ZFNvdXJjZXMvV2ViQ29yZS9ET01XZWJHTFZlcnRleEFycmF5T2JqZWN0T0VTLm1tJywKICAgICAg
ICAgICAgICc8KFBST0RVQ1RfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0RPTVdlYkdMVmVy
dGV4QXJyYXlPYmplY3RPRVNJbnRlcm5hbC5oJywKKyAgICAgICAgICAgICc8KFBST0RVQ1RfRElS
KS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0RPTVdlYktpdEFuaW1hdGlvbi5oJywKKyAgICAgICAg
ICAgICc8KFBST0RVQ1RfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0RPTVdlYktpdEFuaW1h
dGlvbi5tbScsCiAgICAgICAgICAgICAnPChQUk9EVUNUX0RJUikvRGVyaXZlZFNvdXJjZXMvV2Vi
Q29yZS9ET01XZWJLaXRBbmltYXRpb25FdmVudC5oJywKICAgICAgICAgICAgICc8KFBST0RVQ1Rf
RElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0RPTVdlYktpdEFuaW1hdGlvbkV2ZW50Lm1tJywK
ICAgICAgICAgICAgICc8KFBST0RVQ1RfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0RPTVdl
YktpdEFuaW1hdGlvbkV2ZW50SW50ZXJuYWwuaCcsCisgICAgICAgICAgICAnPChQUk9EVUNUX0RJ
UikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9ET01XZWJLaXRBbmltYXRpb25MaXN0LmgnLAorICAg
ICAgICAgICAgJzwoUFJPRFVDVF9ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvRE9NV2ViS2l0
QW5pbWF0aW9uTGlzdC5tbScsCiAgICAgICAgICAgICAnPChQUk9EVUNUX0RJUikvRGVyaXZlZFNv
dXJjZXMvV2ViQ29yZS9ET01XZWJLaXRDU1NLZXlmcmFtZVJ1bGUuaCcsCiAgICAgICAgICAgICAn
PChQUk9EVUNUX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9ET01XZWJLaXRDU1NLZXlmcmFt
ZVJ1bGUubW0nLAogICAgICAgICAgICAgJzwoUFJPRFVDVF9ESVIpL0Rlcml2ZWRTb3VyY2VzL1dl
YkNvcmUvRE9NV2ViS2l0Q1NTS2V5ZnJhbWVSdWxlSW50ZXJuYWwuaCcsCkBAIC03OTA2LDggKzc5
MTksMTIgQEAKICAgICAgICAgICAgICc8KFBST0RVQ1RfRElSKS9EZXJpdmVkU291cmNlcy9XZWJD
b3JlL0pTV2ViR0xVbmlmb3JtTG9jYXRpb24uaCcsCiAgICAgICAgICAgICAnPChQUk9EVUNUX0RJ
UikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1dlYkdMVmVydGV4QXJyYXlPYmplY3RPRVMuY3Bw
JywKICAgICAgICAgICAgICc8KFBST0RVQ1RfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pT
V2ViR0xWZXJ0ZXhBcnJheU9iamVjdE9FUy5oJywKKyAgICAgICAgICAgICc8KFBST0RVQ1RfRElS
KS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTV2ViS2l0QW5pbWF0aW9uLmNwcCcsCisgICAgICAg
ICAgICAnPChQUk9EVUNUX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1dlYktpdEFuaW1h
dGlvbi5oJywKICAgICAgICAgICAgICc8KFBST0RVQ1RfRElSKS9EZXJpdmVkU291cmNlcy9XZWJD
b3JlL0pTV2ViS2l0QW5pbWF0aW9uRXZlbnQuY3BwJywKICAgICAgICAgICAgICc8KFBST0RVQ1Rf
RElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTV2ViS2l0QW5pbWF0aW9uRXZlbnQuaCcsCisg
ICAgICAgICAgICAnPChQUk9EVUNUX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1dlYktp
dEFuaW1hdGlvbkxpc3QuY3BwJywKKyAgICAgICAgICAgICc8KFBST0RVQ1RfRElSKS9EZXJpdmVk
U291cmNlcy9XZWJDb3JlL0pTV2ViS2l0QW5pbWF0aW9uTGlzdC5oJywKICAgICAgICAgICAgICc8
KFBST0RVQ1RfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTV2ViS2l0Q1NTS2V5ZnJhbWVS
dWxlLmNwcCcsCiAgICAgICAgICAgICAnPChQUk9EVUNUX0RJUikvRGVyaXZlZFNvdXJjZXMvV2Vi
Q29yZS9KU1dlYktpdENTU0tleWZyYW1lUnVsZS5oJywKICAgICAgICAgICAgICc8KFBST0RVQ1Rf
RElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTV2ViS2l0Q1NTS2V5ZnJhbWVzUnVsZS5jcHAn
LApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5wcm8gYi9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnBybwppbmRleCAxNGE3ZDNiLi40MmJlZjNlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnBybworKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnBybwpAQCAt
MjAzLDYgKzIwMyw3IEBAIHY4IHsKICAgICAgICAgYmluZGluZ3MvdjgvY3VzdG9tL1Y4U3RvcmFn
ZUN1c3RvbS5jcHAgXAogICAgICAgICBiaW5kaW5ncy92OC9jdXN0b20vVjhTdHlsZVNoZWV0Q3Vz
dG9tLmNwcCBcCiAgICAgICAgIGJpbmRpbmdzL3Y4L2N1c3RvbS9WOFN0eWxlU2hlZXRMaXN0Q3Vz
dG9tLmNwcCBcCisgICAgICAgIGJpbmRpbmdzL3Y4L2N1c3RvbS9WOFdlYktpdEFuaW1hdGlvbkN1
c3RvbS5jcHAgXAogICAgICAgICBiaW5kaW5ncy92OC9jdXN0b20vVjhXZWJLaXRDU1NNYXRyaXhD
b25zdHJ1Y3Rvci5jcHAgXAogICAgICAgICBiaW5kaW5ncy92OC9jdXN0b20vVjhXZWJLaXRQb2lu
dENvbnN0cnVjdG9yLmNwcCBcCiAgICAgICAgIGJpbmRpbmdzL3Y4L2N1c3RvbS9WOFdvcmtlckNv
bnRleHRDdXN0b20uY3BwIFwKQEAgLTMzMiw2ICszMzMsOCBAQCB2OCB7CiAgICAgICAgIGJpbmRp
bmdzL2pzL0pTVWludDE2QXJyYXlDdXN0b20uY3BwIFwKICAgICAgICAgYmluZGluZ3MvanMvSlNV
aW50MzJBcnJheUN1c3RvbS5jcHAgXAogICAgICAgICBiaW5kaW5ncy9qcy9KU1VpbnQ4QXJyYXlD
dXN0b20uY3BwIFwKKyAgICAgICAgYmluZGluZ3MvanMvSlNXZWJLaXRBbmltYXRpb25DdXN0b20u
Y3BwIFwKKyAgICAgICAgYmluZGluZ3MvanMvSlNXZWJLaXRBbmltYXRpb25MaXN0Q3VzdG9tLmNw
cCBcCiAgICAgICAgIGJpbmRpbmdzL2pzL0pTV2ViS2l0Q1NTS2V5ZnJhbWVSdWxlQ3VzdG9tLmNw
cCBcCiAgICAgICAgIGJpbmRpbmdzL2pzL0pTV2ViS2l0Q1NTS2V5ZnJhbWVzUnVsZUN1c3RvbS5j
cHAgXAogICAgICAgICBiaW5kaW5ncy9qcy9KU1dlYktpdENTU01hdHJpeEN1c3RvbS5jcHAgXApA
QCAtODcwLDYgKzg3Myw4IEBAIFNPVVJDRVMgKz0gXAogICAgIHBhZ2UvYW5pbWF0aW9uL0NvbXBv
c2l0ZUFuaW1hdGlvbi5jcHAgXAogICAgIHBhZ2UvYW5pbWF0aW9uL0ltcGxpY2l0QW5pbWF0aW9u
LmNwcCBcCiAgICAgcGFnZS9hbmltYXRpb24vS2V5ZnJhbWVBbmltYXRpb24uY3BwIFwKKyAgICBw
YWdlL2FuaW1hdGlvbi9XZWJLaXRBbmltYXRpb24uY3BwIFwKKyAgICBwYWdlL2FuaW1hdGlvbi9X
ZWJLaXRBbmltYXRpb25MaXN0LmNwcCBcCiAgICAgcGFnZS9CYXJJbmZvLmNwcCBcCiAgICAgcGFn
ZS9DaHJvbWUuY3BwIFwKICAgICBwYWdlL0NvbnNvbGUuY3BwIFwKQEAgLTE4MzMsNiArMTgzOCw4
IEBAIEhFQURFUlMgKz0gXAogICAgIHBhZ2UvU3BlZWNoSW5wdXRMaXN0ZW5lci5oIFwKICAgICBw
YWdlL1NwZWVjaElucHV0UmVzdWx0LmggXAogICAgIHBhZ2UvU3BlZWNoSW5wdXRSZXN1bHRMaXN0
LmggXAorICAgIHBhZ2UvV2ViS2l0QW5pbWF0aW9uLmggXAorICAgIHBhZ2UvV2ViS2l0QW5pbWF0
aW9uTGlzdC5oIFwKICAgICBwYWdlL1dpbmRvd0ZlYXR1cmVzLmggXAogICAgIHBhZ2UvV29ya2Vy
TmF2aWdhdG9yLmggXAogICAgIHBsYXRmb3JtL2FuaW1hdGlvbi9BbmltYXRpb24uaCBcCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvaiBiL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCmluZGV4IGQ5YmM3NzEu
LmY2ZjI1ODAgMTAwNzU1Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNv
cmUudmNwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNw
cm9qCkBAIC0yMTY4Niw2ICsyMTY4Niw2MiBAQAogCQkJCT4KIAkJCTwvRmlsZT4KIAkJCTxGaWxl
CisJCQkJUmVsYXRpdmVQYXRoPSIkKENvbmZpZ3VyYXRpb25CdWlsZERpcilcb2JqXCQoUHJvamVj
dE5hbWUpXERlcml2ZWRTb3VyY2VzXEpTV2ViS2l0QW5pbWF0aW9uLmNwcCIKKwkJCQk+CisJCQkJ
PEZpbGVDb25maWd1cmF0aW9uCisJCQkJCU5hbWU9IkRlYnVnfFdpbjMyIgorCQkJCQlFeGNsdWRl
ZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJPgorCQkJCQk8VG9vbAorCQkJCQkJTmFtZT0iVkNDTENv
bXBpbGVyVG9vbCIKKwkJCQkJLz4KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJCTxGaWxl
Q29uZmlndXJhdGlvbgorCQkJCQlOYW1lPSJSZWxlYXNlfFdpbjMyIgorCQkJCQlFeGNsdWRlZEZy
b21CdWlsZD0idHJ1ZSIKKwkJCQkJPgorCQkJCQk8VG9vbAorCQkJCQkJTmFtZT0iVkNDTENvbXBp
bGVyVG9vbCIKKwkJCQkJLz4KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJCTxGaWxlQ29u
ZmlndXJhdGlvbgorCQkJCQlOYW1lPSJEZWJ1Z19DYWlyb19DRkxpdGV8V2luMzIiCisJCQkJCUV4
Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQk+CisJCQkJCTxUb29sCisJCQkJCQlOYW1lPSJW
Q0NMQ29tcGlsZXJUb29sIgorCQkJCQkvPgorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJ
PEZpbGVDb25maWd1cmF0aW9uCisJCQkJCU5hbWU9IlJlbGVhc2VfQ2Fpcm9fQ0ZMaXRlfFdpbjMy
IgorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJPgorCQkJCQk8VG9vbAorCQkJ
CQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJLz4KKwkJCQk8L0ZpbGVDb25maWd1cmF0
aW9uPgorCQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQlOYW1lPSJEZWJ1Z19BbGx8V2luMzIi
CisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQk+CisJCQkJCTxUb29sCisJCQkJ
CQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkvPgorCQkJCTwvRmlsZUNvbmZpZ3VyYXRp
b24+CisJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJCQkJCU5hbWU9IlJlbGVhc2VfTFRDR3xXaW4z
MiIKKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCT4KKwkJCQkJPFRvb2wKKwkJ
CQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCS8+CisJCQkJPC9GaWxlQ29uZmlndXJh
dGlvbj4KKwkJCTwvRmlsZT4KKwkJCTxGaWxlCisJCQkJUmVsYXRpdmVQYXRoPSIkKENvbmZpZ3Vy
YXRpb25CdWlsZERpcilcb2JqXCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2VzXEpTV2ViS2l0
QW5pbWF0aW9uLmgiCisJCQkJPgorCQkJPC9GaWxlPgorCQkJPEZpbGUKIAkJCQlSZWxhdGl2ZVBh
dGg9IiQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxvYmpcJChQcm9qZWN0TmFtZSlcRGVyaXZlZFNv
dXJjZXNcSlNXZWJLaXRBbmltYXRpb25FdmVudC5jcHAiCiAJCQkJPgogCQkJCTxGaWxlQ29uZmln
dXJhdGlvbgpAQCAtMjE3NDIsNiArMjE3OTgsNjIgQEAKIAkJCQk+CiAJCQk8L0ZpbGU+CiAJCQk8
RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0iJChDb25maWd1cmF0aW9uQnVpbGREaXIpXG9ialwkKFBy
b2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xKU1dlYktpdEFuaW1hdGlvbkxpc3QuY3BwIgorCQkJ
CT4KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJTmFtZT0iRGVidWd8V2luMzIiCisJCQkJ
CUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQk+CisJCQkJCTxUb29sCisJCQkJCQlOYW1l
PSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkvPgorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJ
CQkJPEZpbGVDb25maWd1cmF0aW9uCisJCQkJCU5hbWU9IlJlbGVhc2V8V2luMzIiCisJCQkJCUV4
Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQk+CisJCQkJCTxUb29sCisJCQkJCQlOYW1lPSJW
Q0NMQ29tcGlsZXJUb29sIgorCQkJCQkvPgorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJ
PEZpbGVDb25maWd1cmF0aW9uCisJCQkJCU5hbWU9IkRlYnVnX0NhaXJvX0NGTGl0ZXxXaW4zMiIK
KwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCT4KKwkJCQkJPFRvb2wKKwkJCQkJ
CU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCS8+CisJCQkJPC9GaWxlQ29uZmlndXJhdGlv
bj4KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJTmFtZT0iUmVsZWFzZV9DYWlyb19DRkxp
dGV8V2luMzIiCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQk+CisJCQkJCTxU
b29sCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkvPgorCQkJCTwvRmlsZUNv
bmZpZ3VyYXRpb24+CisJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJCQkJCU5hbWU9IkRlYnVnX0Fs
bHxXaW4zMiIKKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCT4KKwkJCQkJPFRv
b2wKKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCS8+CisJCQkJPC9GaWxlQ29u
ZmlndXJhdGlvbj4KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJTmFtZT0iUmVsZWFzZV9M
VENHfFdpbjMyIgorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJPgorCQkJCQk8
VG9vbAorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJLz4KKwkJCQk8L0ZpbGVD
b25maWd1cmF0aW9uPgorCQkJPC9GaWxlPgorCQkJPEZpbGUKKwkJCQlSZWxhdGl2ZVBhdGg9IiQo
Q29uZmlndXJhdGlvbkJ1aWxkRGlyKVxvYmpcJChQcm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNc
SlNXZWJLaXRBbmltYXRpb25MaXN0LmgiCisJCQkJPgorCQkJPC9GaWxlPgorCQkJPEZpbGUKIAkJ
CQlSZWxhdGl2ZVBhdGg9IiQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxvYmpcJChQcm9qZWN0TmFt
ZSlcRGVyaXZlZFNvdXJjZXNcSlNXZWJLaXRDU1NLZXlmcmFtZVJ1bGUuY3BwIgogCQkJCT4KIAkJ
CQk8RmlsZUNvbmZpZ3VyYXRpb24KQEAgLTI0NzM0LDYgKzI0ODQ2LDIyIEBACiAJCQkJPgogCQkJ
PC9GaWxlPgogCQkJPEZpbGUKKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHBhZ2VcV2ViS2l0QW5pbWF0
aW9uLmNwcCIKKwkJCQk+CisJCQk8L0ZpbGU+CisJCQk8RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0i
Li5ccGFnZVxXZWJLaXRBbmltYXRpb24uaCIKKwkJCQk+CisJCQk8L0ZpbGU+CisJCQk8RmlsZQor
CQkJCVJlbGF0aXZlUGF0aD0iLi5ccGFnZVxXZWJLaXRBbmltYXRpb25MaXN0LmNwcCIKKwkJCQk+
CisJCQk8L0ZpbGU+CisJCQk8RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0iLi5ccGFnZVxXZWJLaXRB
bmltYXRpb25MaXN0LmgiCisJCQkJPgorCQkJPC9GaWxlPgorCQkJPEZpbGUKIAkJCQlSZWxhdGl2
ZVBhdGg9Ii4uXHBhZ2VcTG9jYXRpb24uY3BwIgogCQkJCT4KIAkJCTwvRmlsZT4KQEAgLTYyMTMz
LDYgKzYyMjYxLDExMCBAQAogCQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgogCQkJCTwvRmlsZT4K
IAkJCQk8RmlsZQorCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGJpbmRpbmdzXGpzXEpTV2ViS2l0QW5p
bWF0aW9uQ3VzdG9tLmNwcCIKKwkJCQkJPgorCQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJ
CU5hbWU9IkRlYnVnfFdpbjMyIgorCQkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJ
CQk+CisJCQkJCQk8VG9vbAorCQkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCQkv
PgorCQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJ
CQkJCU5hbWU9IlJlbGVhc2V8V2luMzIiCisJCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIK
KwkJCQkJCT4KKwkJCQkJCTxUb29sCisJCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJ
CQkJCS8+CisJCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJCTxGaWxlQ29uZmlndXJhdGlv
bgorCQkJCQkJTmFtZT0iRGVidWdfQ2Fpcm9fQ0ZMaXRlfFdpbjMyIgorCQkJCQkJRXhjbHVkZWRG
cm9tQnVpbGQ9InRydWUiCisJCQkJCQk+CisJCQkJCQk8VG9vbAorCQkJCQkJCU5hbWU9IlZDQ0xD
b21waWxlclRvb2wiCisJCQkJCQkvPgorCQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJCQk8
RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJCU5hbWU9IlJlbGVhc2VfQ2Fpcm9fQ0ZMaXRlfFdpbjMy
IgorCQkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCQk+CisJCQkJCQk8VG9vbAor
CQkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCQkvPgorCQkJCQk8L0ZpbGVDb25m
aWd1cmF0aW9uPgorCQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJCU5hbWU9IkRlYnVnX0Fs
bHxXaW4zMiIKKwkJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQkJPgorCQkJCQkJ
PFRvb2wKKwkJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkJLz4KKwkJCQkJPC9G
aWxlQ29uZmlndXJhdGlvbj4KKwkJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJCQkJCQlOYW1lPSJS
ZWxlYXNlX0xUQ0d8V2luMzIiCisJCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJ
CT4KKwkJCQkJCTxUb29sCisJCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJCS8+
CisJCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJPC9GaWxlPgorCQkJCTxGaWxlCisJCQkJ
CVJlbGF0aXZlUGF0aD0iLi5cYmluZGluZ3NcanNcSlNXZWJLaXRBbmltYXRpb25MaXN0Q3VzdG9t
LmNwcCIKKwkJCQkJPgorCQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJCU5hbWU9IkRlYnVn
fFdpbjMyIgorCQkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCQk+CisJCQkJCQk8
VG9vbAorCQkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCQkvPgorCQkJCQk8L0Zp
bGVDb25maWd1cmF0aW9uPgorCQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJCU5hbWU9IlJl
bGVhc2V8V2luMzIiCisJCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJCT4KKwkJ
CQkJCTxUb29sCisJCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJCS8+CisJCQkJ
CTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQkJTmFt
ZT0iRGVidWdfQ2Fpcm9fQ0ZMaXRlfFdpbjMyIgorCQkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRy
dWUiCisJCQkJCQk+CisJCQkJCQk8VG9vbAorCQkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wi
CisJCQkJCQkvPgorCQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJCQk8RmlsZUNvbmZpZ3Vy
YXRpb24KKwkJCQkJCU5hbWU9IlJlbGVhc2VfQ2Fpcm9fQ0ZMaXRlfFdpbjMyIgorCQkJCQkJRXhj
bHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCQk+CisJCQkJCQk8VG9vbAorCQkJCQkJCU5hbWU9
IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCQkvPgorCQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgor
CQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJCU5hbWU9IkRlYnVnX0FsbHxXaW4zMiIKKwkJ
CQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQkJPgorCQkJCQkJPFRvb2wKKwkJCQkJ
CQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkJLz4KKwkJCQkJPC9GaWxlQ29uZmlndXJh
dGlvbj4KKwkJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJCQkJCQlOYW1lPSJSZWxlYXNlX0xUQ0d8
V2luMzIiCisJCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJCT4KKwkJCQkJCTxU
b29sCisJCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJCS8+CisJCQkJCTwvRmls
ZUNvbmZpZ3VyYXRpb24+CisJCQkJPC9GaWxlPgorCQkJCTxGaWxlCiAJCQkJCVJlbGF0aXZlUGF0
aD0iLi5cYmluZGluZ3NcanNcSlNXZWJLaXRDU1NLZXlmcmFtZVJ1bGVDdXN0b20uY3BwIgogCQkJ
CQk+CiAJCQkJCTxGaWxlQ29uZmlndXJhdGlvbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDg4NWRkNzAuLmY4NWY0MjcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagor
KysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAg
LTc2OSw2ICs3NjksMjAgQEAKIAkJMzE2RkUxMTgwRTZFMURBNzAwQkY2MDg4IC8qIEltcGxpY2l0
QW5pbWF0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAzMTZGRTEwRTBFNkUxREE3MDBCRjYwODggLyogSW1wbGljaXRBbmltYXRpb24uaCAqLzsgfTsK
IAkJMzE2RkUxMTkwRTZFMURBNzAwQkY2MDg4IC8qIEtleWZyYW1lQW5pbWF0aW9uLmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMxNkZFMTBGMEU2RTFE
QTcwMEJGNjA4OCAvKiBLZXlmcmFtZUFuaW1hdGlvbi5jcHAgKi87IH07CiAJCTMxNkZFMTFBMEU2
RTFEQTcwMEJGNjA4OCAvKiBLZXlmcmFtZUFuaW1hdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzE2RkUxMTAwRTZFMURBNzAwQkY2MDg4IC8qIEtl
eWZyYW1lQW5pbWF0aW9uLmggKi87IH07CisJCTMxOTQ2MTYyMTMwMjBCMjAwMDRCQjNGOCAvKiBK
U1dlYktpdEFuaW1hdGlvbi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAzMTk0NjE2MDEzMDIwQjIwMDA0QkIzRjggLyogSlNXZWJLaXRBbmltYXRpb24u
Y3BwICovOyB9OworCQkzMTk0NjE2MzEzMDIwQjIwMDA0QkIzRjggLyogSlNXZWJLaXRBbmltYXRp
b24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMxOTQ2
MTYxMTMwMjBCMjAwMDRCQjNGOCAvKiBKU1dlYktpdEFuaW1hdGlvbi5oICovOyB9OworCQkzMTk0
NjE2QTEzMDIwQjY2MDA0QkIzRjggLyogRE9NV2ViS2l0QW5pbWF0aW9uLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMTk0NjE2ODEzMDIwQjY2MDA0QkIz
RjggLyogRE9NV2ViS2l0QW5pbWF0aW9uLmggKi87IH07CisJCTMxOTQ2MTZCMTMwMjBCNjYwMDRC
QjNGOCAvKiBET01XZWJLaXRBbmltYXRpb24ubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAzMTk0NjE2OTEzMDIwQjY2MDA0QkIzRjggLyogRE9NV2ViS2l0
QW5pbWF0aW9uLm1tICovOyB9OworCQkzMTk0NjFGRTEzMDIyQkI4MDA0QkIzRjggLyogSlNXZWJL
aXRBbmltYXRpb25MaXN0LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDMxOTQ2MUZDMTMwMjJCQjgwMDRCQjNGOCAvKiBKU1dlYktpdEFuaW1hdGlvbkxp
c3QuY3BwICovOyB9OworCQkzMTk0NjFGRjEzMDIyQkI4MDA0QkIzRjggLyogSlNXZWJLaXRBbmlt
YXRpb25MaXN0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAzMTk0NjFGRDEzMDIyQkI4MDA0QkIzRjggLyogSlNXZWJLaXRBbmltYXRpb25MaXN0LmggKi87
IH07CisJCTMxOTQ2MjA0MTMwMjJCRjEwMDRCQjNGOCAvKiBET01XZWJLaXRBbmltYXRpb25MaXN0
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMTk0NjIw
MjEzMDIyQkYxMDA0QkIzRjggLyogRE9NV2ViS2l0QW5pbWF0aW9uTGlzdC5oICovOyB9OworCQkz
MTk0NjIwNTEzMDIyQkYxMDA0QkIzRjggLyogRE9NV2ViS2l0QW5pbWF0aW9uTGlzdC5tbSBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMxOTQ2MjAzMTMwMjJC
RjEwMDRCQjNGOCAvKiBET01XZWJLaXRBbmltYXRpb25MaXN0Lm1tICovOyB9OworCQkzMTk0NjIz
MjEzMDIyRjY1MDA0QkIzRjggLyogSlNXZWJLaXRBbmltYXRpb25MaXN0Q3VzdG9tLmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMxOTQ2MjMxMTMwMjJG
NjUwMDRCQjNGOCAvKiBKU1dlYktpdEFuaW1hdGlvbkxpc3RDdXN0b20uY3BwICovOyB9OworCQkz
MTlFNjg4NzEzMjdDOTExMDA0QUM5MUEgLyogSlNXZWJLaXRBbmltYXRpb25DdXN0b20uY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzE5RTY4ODYxMzI3
QzkxMTAwNEFDOTFBIC8qIEpTV2ViS2l0QW5pbWF0aW9uQ3VzdG9tLmNwcCAqLzsgfTsKKwkJMzE5
RTY5QjIxMzI5OUJCRDAwNEFDOTFBIC8qIFdlYktpdEFuaW1hdGlvbi5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMTlFNjlBQzEzMjk5QkJEMDA0QUM5
MUEgLyogV2ViS2l0QW5pbWF0aW9uLmNwcCAqLzsgfTsKKwkJMzE5RTY5QjMxMzI5OUJCRDAwNEFD
OTFBIC8qIFdlYktpdEFuaW1hdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gMzE5RTY5QUQxMzI5OUJCRDAwNEFDOTFBIC8qIFdlYktpdEFuaW1hdGlv
bi5oICovOyB9OworCQkzMTlFNjlCNTEzMjk5QkJEMDA0QUM5MUEgLyogV2ViS2l0QW5pbWF0aW9u
TGlzdC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAz
MTlFNjlBRjEzMjk5QkJEMDA0QUM5MUEgLyogV2ViS2l0QW5pbWF0aW9uTGlzdC5jcHAgKi87IH07
CisJCTMxOUU2OUI2MTMyOTlCQkQwMDRBQzkxQSAvKiBXZWJLaXRBbmltYXRpb25MaXN0LmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMTlFNjlCMDEzMjk5
QkJEMDA0QUM5MUEgLyogV2ViS2l0QW5pbWF0aW9uTGlzdC5oICovOyB9OwogCQkzMUMwRkYyMTBF
NENFQjZFMDA3RDZGRTUgLyogV2ViS2l0QW5pbWF0aW9uRXZlbnQuY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzFDMEZGMUIwRTRDRUI2RTAwN0Q2RkU1
IC8qIFdlYktpdEFuaW1hdGlvbkV2ZW50LmNwcCAqLzsgfTsKIAkJMzFDMEZGMjIwRTRDRUI2RTAw
N0Q2RkU1IC8qIFdlYktpdEFuaW1hdGlvbkV2ZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMUMwRkYxQzBFNENFQjZFMDA3RDZGRTUgLyogV2ViS2l0
QW5pbWF0aW9uRXZlbnQuaCAqLzsgfTsKIAkJMzFDMEZGMjQwRTRDRUI2RTAwN0Q2RkU1IC8qIFdl
YktpdFRyYW5zaXRpb25FdmVudC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSAzMUMwRkYxRTBFNENFQjZFMDA3RDZGRTUgLyogV2ViS2l0VHJhbnNpdGlv
bkV2ZW50LmNwcCAqLzsgfTsKQEAgLTcxNTEsNiArNzE2NSwyMiBAQAogCQkzMTZGRTEwRTBFNkUx
REE3MDBCRjYwODggLyogSW1wbGljaXRBbmltYXRpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBuYW1lID0gSW1wbGljaXRBbmltYXRpb24uaDsgcGF0aCA9IGFuaW1hdGlvbi9JbXBsaWNp
dEFuaW1hdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkzMTZGRTEwRjBFNkUx
REE3MDBCRjYwODggLyogS2V5ZnJhbWVBbmltYXRpb24uY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBuYW1lID0gS2V5ZnJhbWVBbmltYXRpb24uY3BwOyBwYXRoID0gYW5pbWF0aW9u
L0tleWZyYW1lQW5pbWF0aW9uLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMzE2
RkUxMTAwRTZFMURBNzAwQkY2MDg4IC8qIEtleWZyYW1lQW5pbWF0aW9uLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgbmFtZSA9IEtleWZyYW1lQW5pbWF0aW9uLmg7IHBhdGggPSBhbmltYXRp
b24vS2V5ZnJhbWVBbmltYXRpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMzE5
NDYxNjAxMzAyMEIyMDAwNEJCM0Y4IC8qIEpTV2ViS2l0QW5pbWF0aW9uLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTV2ViS2l0QW5pbWF0aW9uLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMzE5NDYxNjExMzAyMEIyMDAwNEJCM0Y4IC8qIEpTV2Vi
S2l0QW5pbWF0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTV2ViS2l0
QW5pbWF0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTMxOTQ2MTY4MTMwMjBC
NjYwMDRCQjNGOCAvKiBET01XZWJLaXRBbmltYXRpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gRE9NV2ViS2l0QW5pbWF0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCTMxOTQ2MTY5MTMwMjBCNjYwMDRCQjNGOCAvKiBET01XZWJLaXRBbmltYXRpb24ubW0g
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBET01XZWJLaXRBbmltYXRp
b24ubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTMxOTQ2MUZDMTMwMjJCQjgwMDRC
QjNGOCAvKiBKU1dlYktpdEFuaW1hdGlvbkxpc3QuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gSlNXZWJLaXRBbmltYXRpb25MaXN0LmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJMzE5NDYxRkQxMzAyMkJCODAwNEJCM0Y4IC8qIEpTV2ViS2l0QW5pbWF0
aW9uTGlzdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU1dlYktpdEFuaW1h
dGlvbkxpc3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMzE5NDYyMDIxMzAyMkJG
MTAwNEJCM0Y4IC8qIERPTVdlYktpdEFuaW1hdGlvbkxpc3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gRE9NV2ViS2l0QW5pbWF0aW9uTGlzdC5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQkzMTk0NjIwMzEzMDIyQkYxMDA0QkIzRjggLyogRE9NV2ViS2l0QW5pbWF0
aW9uTGlzdC5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IERPTVdl
YktpdEFuaW1hdGlvbkxpc3QubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTMxOTQ2
MjMxMTMwMjJGNjUwMDRCQjNGOCAvKiBKU1dlYktpdEFuaW1hdGlvbkxpc3RDdXN0b20uY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNXZWJLaXRBbmltYXRpb25MaXN0
Q3VzdG9tLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMzE5RTY4ODYxMzI3Qzkx
MTAwNEFDOTFBIC8qIEpTV2ViS2l0QW5pbWF0aW9uQ3VzdG9tLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTV2ViS2l0QW5pbWF0aW9uQ3VzdG9tLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMzE5RTY5QUMxMzI5OUJCRDAwNEFDOTFBIC8qIFdlYktp
dEFuaW1hdGlvbi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJL
aXRBbmltYXRpb24uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkzMTlFNjlBRDEz
Mjk5QkJEMDA0QUM5MUEgLyogV2ViS2l0QW5pbWF0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFdlYktpdEFuaW1hdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQkzMTlFNjlBRTEzMjk5QkJEMDA0QUM5MUEgLyogV2ViS2l0QW5pbWF0aW9uLmlkbCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHRleHQ7IHBhdGggPSBXZWJLaXRBbmltYXRpb24uaWRsOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQkzMTlFNjlBRjEzMjk5QkJEMDA0QUM5MUEgLyogV2ViS2l0QW5pbWF0aW9u
TGlzdC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJLaXRBbmlt
YXRpb25MaXN0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMzE5RTY5QjAxMzI5
OUJCRDAwNEFDOTFBIC8qIFdlYktpdEFuaW1hdGlvbkxpc3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gV2ViS2l0QW5pbWF0aW9uTGlzdC5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQkzMTlFNjlCMTEzMjk5QkJEMDA0QUM5MUEgLyogV2ViS2l0QW5pbWF0aW9uTGlz
dC5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gV2ViS2l0QW5pbWF0aW9uTGlzdC5pZGw7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTMxQzBGRjFCMEU0Q0VCNkUwMDdENkZFNSAvKiBX
ZWJLaXRBbmltYXRpb25FdmVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBXZWJLaXRBbmltYXRpb25FdmVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTMxQzBGRjFDMEU0Q0VCNkUwMDdENkZFNSAvKiBXZWJLaXRBbmltYXRpb25FdmVudC5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJLaXRBbmltYXRpb25FdmVudC5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkzMUMwRkYxRDBFNENFQjZFMDA3RDZGRTUgLyog
V2ViS2l0QW5pbWF0aW9uRXZlbnQuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFdlYktpdEFu
aW1hdGlvbkV2ZW50LmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE0MDE2LDkg
KzE0MDQ2LDggQEAKIAkJNjVCRjAyMTgwOTc0ODA2MzAwQzQzMTk2IC8qIHBhZ2UgKi8gPSB7CiAJ
CQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAotCQkJCTMxNkZFMTA2MEU2RTFEODQw
MEJGNjA4OCAvKiBhbmltYXRpb24gKi8sCi0JCQkJOTNDMDlBODIwQjA2NEYwNTAwNUFCRDREIC8q
IG1hYyAqLywKIAkJCQk4NTM4RjAwMDBBRDcxNzcwMDA2QTgxRDEgLyogQWJzdHJhY3RWaWV3Lmlk
bCAqLywKKwkJCQkzMTZGRTEwNjBFNkUxRDg0MDBCRjYwODggLyogYW5pbWF0aW9uICovLAogCQkJ
CUJDMTI0RUU0MEMyNjQxQ0QwMDlFMjM0OSAvKiBCYXJJbmZvLmNwcCAqLywKIAkJCQlCQzEyNEVF
NTBDMjY0MUNEMDA5RTIzNDkgLyogQmFySW5mby5oICovLAogCQkJCUJDMTI0RUU2MEMyNjQxQ0Qw
MDlFMjM0OSAvKiBCYXJJbmZvLmlkbCAqLywKQEAgLTE0MDkwLDYgKzE0MTE5LDcgQEAKIAkJCQlC
Q0UxQzQxQTBEOTgyOTgwMDAzQjAyRjIgLyogTG9jYXRpb24uY3BwICovLAogCQkJCUJDRTFDNDE5
MEQ5ODI5ODAwMDNCMDJGMiAvKiBMb2NhdGlvbi5oICovLAogCQkJCUJDRTFDNDIyMEQ5ODI5RjIw
MDNCMDJGMiAvKiBMb2NhdGlvbi5pZGwgKi8sCisJCQkJOTNDMDlBODIwQjA2NEYwNTAwNUFCRDRE
IC8qIG1hYyAqLywKIAkJCQk5MzFCQ0M2MDExMjRERkNCMDBCRTcwREQgLyogTWVkaWFDYW5TdGFy
dExpc3RlbmVyLmggKi8sCiAJCQkJOUZGRTNFNzgxMUI1OUM1RDAwMzc4NzRFIC8qIE1lbW9yeUlu
Zm8uY3BwICovLAogCQkJCTlGRkUzRTc5MTFCNTlDNUQwMDM3ODc0RSAvKiBNZW1vcnlJbmZvLmgg
Ki8sCkBAIC0xNDE2MSw2ICsxNDE5MSwxMiBAQAogCQkJCUJDOEJGMTUwMTA1ODEzQkYwMEE0MEEw
NyAvKiBVc2VyU3R5bGVTaGVldC5oICovLAogCQkJCUJDOEJGMTU5MTA1ODE0MTgwMEE0MEEwNyAv
KiBVc2VyU3R5bGVTaGVldFR5cGVzLmggKi8sCiAJCQkJQkU5ODNEOTUwNTJBMkUwQTAwODkyRDg1
IC8qIFdlYkNvcmVLZXlib2FyZFVJTW9kZS5oICovLAorCQkJCTMxOUU2OUFDMTMyOTlCQkQwMDRB
QzkxQSAvKiBXZWJLaXRBbmltYXRpb24uY3BwICovLAorCQkJCTMxOUU2OUFEMTMyOTlCQkQwMDRB
QzkxQSAvKiBXZWJLaXRBbmltYXRpb24uaCAqLywKKwkJCQkzMTlFNjlBRTEzMjk5QkJEMDA0QUM5
MUEgLyogV2ViS2l0QW5pbWF0aW9uLmlkbCAqLywKKwkJCQkzMTlFNjlBRjEzMjk5QkJEMDA0QUM5
MUEgLyogV2ViS2l0QW5pbWF0aW9uTGlzdC5jcHAgKi8sCisJCQkJMzE5RTY5QjAxMzI5OUJCRDAw
NEFDOTFBIC8qIFdlYktpdEFuaW1hdGlvbkxpc3QuaCAqLywKKwkJCQkzMTlFNjlCMTEzMjk5QkJE
MDA0QUM5MUEgLyogV2ViS2l0QW5pbWF0aW9uTGlzdC5pZGwgKi8sCiAJCQkJNDk0QkQ3OTMwRjU1
QzhFRTAwNzQ3ODI4IC8qIFdlYktpdFBvaW50LmggKi8sCiAJCQkJNDk0QkQ3OTQwRjU1QzhFRTAw
NzQ3ODI4IC8qIFdlYktpdFBvaW50LmlkbCAqLywKIAkJCQlCQzgyNDNFNjBEMENGRDc1MDA0NjBD
OEYgLyogV2luZG93RmVhdHVyZXMuY3BwICovLApAQCAtMTUwMTQsNiArMTUwNTAsMTAgQEAKIAkJ
CQk4NUJBNEQwQTBBQTY4ODY4MDA4ODA1MkQgLyogRE9NSFRNTFVMaXN0RWxlbWVudC5tbSAqLywK
IAkJCQkxNUM3NzBBNDEwMEQ0MUNEMDA1QkEyNjcgLyogRE9NVmFsaWRpdHlTdGF0ZS5oICovLAog
CQkJCTE1Qzc3MEEzMTAwRDQxQ0QwMDVCQTI2NyAvKiBET01WYWxpZGl0eVN0YXRlLm1tICovLAor
CQkJCTMxOTQ2MTY4MTMwMjBCNjYwMDRCQjNGOCAvKiBET01XZWJLaXRBbmltYXRpb24uaCAqLywK
KwkJCQkzMTk0NjE2OTEzMDIwQjY2MDA0QkIzRjggLyogRE9NV2ViS2l0QW5pbWF0aW9uLm1tICov
LAorCQkJCTMxOTQ2MjAyMTMwMjJCRjEwMDRCQjNGOCAvKiBET01XZWJLaXRBbmltYXRpb25MaXN0
LmggKi8sCisJCQkJMzE5NDYyMDMxMzAyMkJGMTAwNEJCM0Y4IC8qIERPTVdlYktpdEFuaW1hdGlv
bkxpc3QubW0gKi8sCiAJCQkpOwogCQkJbmFtZSA9IEhUTUw7CiAJCQlzb3VyY2VUcmVlID0gIjxn
cm91cD4iOwpAQCAtMTYzNDEsNiArMTYzODEsMTAgQEAKIAkJCQkwQzQ1MzQyNjEwQ0RCQkZBMDA4
NjkxNTcgLyogSlNXZWJHTFVuaWZvcm1Mb2NhdGlvbi5oICovLAogCQkJCTc3RUY2MkYxMTJGOURC
NzQwMEM3N0JEMiAvKiBKU1dlYkdMVmVydGV4QXJyYXlPYmplY3RPRVMuY3BwICovLAogCQkJCTc3
RUY2MkYyMTJGOURCNzQwMEM3N0JEMiAvKiBKU1dlYkdMVmVydGV4QXJyYXlPYmplY3RPRVMuaCAq
LywKKwkJCQkzMTk0NjE2MDEzMDIwQjIwMDA0QkIzRjggLyogSlNXZWJLaXRBbmltYXRpb24uY3Bw
ICovLAorCQkJCTMxOTQ2MTYxMTMwMjBCMjAwMDRCQjNGOCAvKiBKU1dlYktpdEFuaW1hdGlvbi5o
ICovLAorCQkJCTMxOTQ2MUZDMTMwMjJCQjgwMDRCQjNGOCAvKiBKU1dlYktpdEFuaW1hdGlvbkxp
c3QuY3BwICovLAorCQkJCTMxOTQ2MUZEMTMwMjJCQjgwMDRCQjNGOCAvKiBKU1dlYktpdEFuaW1h
dGlvbkxpc3QuaCAqLywKIAkJCQk5M0YxRDVCRTEyRDUzMzU2MDA4MzJCRUMgLyogSlNXZWJLaXRM
b3NlQ29udGV4dC5jcHAgKi8sCiAJCQkJOTNGMUQ1QkYxMkQ1MzM1NjAwODMyQkVDIC8qIEpTV2Vi
S2l0TG9zZUNvbnRleHQuaCAqLywKIAkJCSk7CkBAIC0xODA0MSw2ICsxODA4NSw4IEBACiAJCQkJ
NDlFRUNGNzYxMDUwOEQ5QzAwMDk5RkFCIC8qIEpTVWludDMyQXJyYXlDdXN0b20uY3BwICovLAog
CQkJCTQ5RUVDRjc1MTA1MDhEOUMwMDA5OUZBQiAvKiBKU1VpbnQ4QXJyYXlDdXN0b20uY3BwICov
LAogCQkJCTQ5RUVEMTRDMTA1MTk3MUEwMDA5OUZBQiAvKiBKU1dlYkdMUmVuZGVyaW5nQ29udGV4
dEN1c3RvbS5jcHAgKi8sCisJCQkJMzE5RTY4ODYxMzI3QzkxMTAwNEFDOTFBIC8qIEpTV2ViS2l0
QW5pbWF0aW9uQ3VzdG9tLmNwcCAqLywKKwkJCQkzMTk0NjIzMTEzMDIyRjY1MDA0QkIzRjggLyog
SlNXZWJLaXRBbmltYXRpb25MaXN0Q3VzdG9tLmNwcCAqLywKIAkJCQlFMUFEMTRDNDEyOTczNTQ5
MDBBQ0E5ODkgLyogSlNXZWJLaXRDU1NLZXlmcmFtZVJ1bGVDdXN0b20uY3BwICovLAogCQkJCUUx
QUQxNEI0MTI5NzM0Q0EwMEFDQTk4OSAvKiBKU1dlYktpdENTU0tleWZyYW1lc1J1bGVDdXN0b20u
Y3BwICovLAogCQkJCUJDMjc1QjdDMTFDNUQyMzUwMEM5MjA2QyAvKiBKU1dlYktpdENTU01hdHJp
eEN1c3RvbS5jcHAgKi8sCkBAIC0yMjU3Nyw2ICsyMjYyMywxMiBAQAogCQkJCTU5OEQ3N0RGMTMy
NTQxRkEwMDc2MUIyMiAvKiBKYXZhQXJyYXlKU0MuaCBpbiBIZWFkZXJzICovLAogCQkJCTU5OEQ3
N0UzMTMyNTQyMEUwMDc2MUIyMiAvKiBKYXZhRmllbGRKU0MuaCBpbiBIZWFkZXJzICovLAogCQkJ
CUJDRDNGOTgzMTMyNkM5MzcwMDA5OEE2MCAvKiBUZXh0T3JpZW50YXRpb24uaCBpbiBIZWFkZXJz
ICovLAorCQkJCTMxOTQ2MTYzMTMwMjBCMjAwMDRCQjNGOCAvKiBKU1dlYktpdEFuaW1hdGlvbi5o
IGluIEhlYWRlcnMgKi8sCisJCQkJMzE5NDYxNkExMzAyMEI2NjAwNEJCM0Y4IC8qIERPTVdlYktp
dEFuaW1hdGlvbi5oIGluIEhlYWRlcnMgKi8sCisJCQkJMzE5NDYxRkYxMzAyMkJCODAwNEJCM0Y4
IC8qIEpTV2ViS2l0QW5pbWF0aW9uTGlzdC5oIGluIEhlYWRlcnMgKi8sCisJCQkJMzE5NDYyMDQx
MzAyMkJGMTAwNEJCM0Y4IC8qIERPTVdlYktpdEFuaW1hdGlvbkxpc3QuaCBpbiBIZWFkZXJzICov
LAorCQkJCTMxOUU2OUIzMTMyOTlCQkQwMDRBQzkxQSAvKiBXZWJLaXRBbmltYXRpb24uaCBpbiBI
ZWFkZXJzICovLAorCQkJCTMxOUU2OUI2MTMyOTlCQkQwMDRBQzkxQSAvKiBXZWJLaXRBbmltYXRp
b25MaXN0LmggaW4gSGVhZGVycyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBv
c3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKQEAgLTI1MjMyLDYgKzI1Mjg0LDE0IEBACiAJCQkJODE1
RTYxNjcxMzI1ODdBQTAwQjYyMkIwIC8qIERhdGFUcmFuc2Zlckl0ZW0uY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJODEwMkM1ODgxMzI1QkIxMTAwRERFNjdBIC8qIFN0cmluZ0NhbGxiYWNrLmNwcCBp
biBTb3VyY2VzICovLAogCQkJCTVENEY1MURGMTMyNzI1NDgwMDE2RjU0MSAvKiBIVE1MQ29udmVy
dGVyLm1tIGluIFNvdXJjZXMgKi8sCisJCQkJMzE5NDYxNjIxMzAyMEIyMDAwNEJCM0Y4IC8qIEpT
V2ViS2l0QW5pbWF0aW9uLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTMxOTQ2MTZCMTMwMjBCNjYw
MDRCQjNGOCAvKiBET01XZWJLaXRBbmltYXRpb24ubW0gaW4gU291cmNlcyAqLywKKwkJCQkzMTk0
NjFGRTEzMDIyQkI4MDA0QkIzRjggLyogSlNXZWJLaXRBbmltYXRpb25MaXN0LmNwcCBpbiBTb3Vy
Y2VzICovLAorCQkJCTMxOTQ2MjA1MTMwMjJCRjEwMDRCQjNGOCAvKiBET01XZWJLaXRBbmltYXRp
b25MaXN0Lm1tIGluIFNvdXJjZXMgKi8sCisJCQkJMzE5NDYyMzIxMzAyMkY2NTAwNEJCM0Y4IC8q
IEpTV2ViS2l0QW5pbWF0aW9uTGlzdEN1c3RvbS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkzMTlF
Njg4NzEzMjdDOTExMDA0QUM5MUEgLyogSlNXZWJLaXRBbmltYXRpb25DdXN0b20uY3BwIGluIFNv
dXJjZXMgKi8sCisJCQkJMzE5RTY5QjIxMzI5OUJCRDAwNEFDOTFBIC8qIFdlYktpdEFuaW1hdGlv
bi5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkzMTlFNjlCNTEzMjk5QkJEMDA0QUM5MUEgLyogV2Vi
S2l0QW5pbWF0aW9uTGlzdC5jcHAgaW4gU291cmNlcyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9y
RGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTQmluZGluZ3NBbGxJbk9uZS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9KU0JpbmRpbmdzQWxsSW5PbmUuY3BwCmluZGV4IGI1M2Q5NTAuLjRjYWRl
NmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQmluZGluZ3NBbGxJ
bk9uZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNCaW5kaW5nc0FsbElu
T25lLmNwcApAQCAtMTQzLDYgKzE0Myw4IEBACiAjaW5jbHVkZSAiSlNVaW50MTZBcnJheUN1c3Rv
bS5jcHAiCiAjaW5jbHVkZSAiSlNVaW50MzJBcnJheUN1c3RvbS5jcHAiCiAjaW5jbHVkZSAiSlNV
aW50OEFycmF5Q3VzdG9tLmNwcCIKKyNpbmNsdWRlICJKU1dlYktpdEFuaW1hdGlvbkN1c3RvbS5j
cHAiCisjaW5jbHVkZSAiSlNXZWJLaXRBbmltYXRpb25MaXN0Q3VzdG9tLmNwcCIKICNpbmNsdWRl
ICJKU1dlYktpdENTU0tleWZyYW1lUnVsZUN1c3RvbS5jcHAiCiAjaW5jbHVkZSAiSlNXZWJLaXRD
U1NLZXlmcmFtZXNSdWxlQ3VzdG9tLmNwcCIKICNpbmNsdWRlICJKU1dlYktpdENTU01hdHJpeEN1
c3RvbS5jcHAiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dlYktp
dEFuaW1hdGlvbkN1c3RvbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dlYktp
dEFuaW1hdGlvbkN1c3RvbS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4u
ODM3ZDUzNQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pT
V2ViS2l0QW5pbWF0aW9uQ3VzdG9tLmNwcApAQCAtMCwwICsxLDQ0IEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDExIEFwcGxlIEluYy4gQWxsIHJpZ2h0IHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBB
UyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgor
ICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7
IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNs
dWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJKU1dlYktpdEFuaW1hdGlvbi5oIgorCisjaW5jbHVk
ZSAiV2ViS2l0QW5pbWF0aW9uLmgiCisKK3VzaW5nIG5hbWVzcGFjZSBKU0M7CisKK25hbWVzcGFj
ZSBXZWJDb3JlIHsKKworSlNWYWx1ZSBKU1dlYktpdEFuaW1hdGlvbjo6aXRlcmF0aW9uQ291bnQo
RXhlY1N0YXRlKikgY29uc3QKK3sKKyAgICBXZWJLaXRBbmltYXRpb24qIGltcCA9IGltcGwoKTsK
KyAgICBpbnQgY291bnQgPSBpbXAtPml0ZXJhdGlvbkNvdW50KCk7CisgICAgaWYgKGNvdW50ID09
IEFuaW1hdGlvbjo6SXRlcmF0aW9uQ291bnRJbmZpbml0ZSkKKyAgICAgICAgcmV0dXJuIGpzTnVt
YmVyKElORklOSVRZKTsKKyAgICByZXR1cm4ganNOdW1iZXIoY291bnQpOworfQorCit9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dlYktpdEFuaW1hdGlvbkxpc3RD
dXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNXZWJLaXRBbmltYXRpb25M
aXN0Q3VzdG9tLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lYWY3N2Nm
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNXZWJLaXRB
bmltYXRpb25MaXN0Q3VzdG9tLmNwcApAQCAtMCwwICsxLDQ3IEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDExIEFwcGxlIEluYy4gQWxsIHJpZ2h0IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJ
UycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgorICog
Q09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9S
IEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkK
KyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRl
ICJjb25maWcuaCIKKyNpbmNsdWRlICJKU1dlYktpdEFuaW1hdGlvbkxpc3QuaCIKKworI2luY2x1
ZGUgIldlYktpdEFuaW1hdGlvbkxpc3QuaCIKKwordXNpbmcgbmFtZXNwYWNlIEpTQzsKKworbmFt
ZXNwYWNlIFdlYkNvcmUgeworCit2b2lkIEpTV2ViS2l0QW5pbWF0aW9uTGlzdDo6bWFya0NoaWxk
cmVuKE1hcmtTdGFjayYgbWFya1N0YWNrKQoreworICAgIEJhc2U6Om1hcmtDaGlsZHJlbihtYXJr
U3RhY2spOworCisgICAgV2ViS2l0QW5pbWF0aW9uTGlzdCogbGlzdCA9IGltcGwoKTsKKyAgICBK
U0dsb2JhbERhdGEmIGdsb2JhbERhdGEgPSAqSGVhcDo6aGVhcCh0aGlzKS0+Z2xvYmFsRGF0YSgp
OworCisgICAgdW5zaWduZWQgbGVuZ3RoID0gbGlzdC0+bGVuZ3RoKCk7CisgICAgZm9yICh1bnNp
Z25lZCBpID0gMDsgaSA8IGxlbmd0aDsgKytpKQorICAgICAgICBtYXJrRE9NT2JqZWN0V3JhcHBl
cihtYXJrU3RhY2ssIGdsb2JhbERhdGEsIGxpc3QtPml0ZW0oaSkpOworfQorCit9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhXZWJLaXRBbmltYXRpb25D
dXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4V2ViS2l0QW5p
bWF0aW9uQ3VzdG9tLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zZDYy
MTVmCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9t
L1Y4V2ViS2l0QW5pbWF0aW9uQ3VzdG9tLmNwcApAQCAtMCwwICsxLDUwIEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDExIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqICAqIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVS
UyBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQgT1dORVIg
T1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9G
SVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
aW5jbHVkZSAiY29uZmlnLmgiCisKKyNpbmNsdWRlICJWOEJpbmRpbmcuaCIKKyNpbmNsdWRlICJW
OEJpbmRpbmdNYWNyb3MuaCIKKyNpbmNsdWRlICJWOFByb3h5LmgiCisjaW5jbHVkZSAiVjhXZWJL
aXRBbmltYXRpb24uaCIKKyNpbmNsdWRlICJXZWJLaXRBbmltYXRpb24uaCIKKworI2luY2x1ZGUg
PHY4Lmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwordjg6OkhhbmRsZTx2ODo6VmFsdWU+IFY4
V2ViS2l0QW5pbWF0aW9uOjppdGVyYXRpb25Db3VudEFjY2Vzc29yR2V0dGVyKHY4OjpMb2NhbDx2
ODo6U3RyaW5nPiBuYW1lLCBjb25zdCB2ODo6QWNjZXNzb3JJbmZvJiBpbmZvKQoreworICAgIElO
Q19TVEFUUygiRE9NLldlYktpdEFuaW1hdGlvbi5pdGVyYXRpb25Db3VudC5fZ2V0Iik7CisgICAg
djg6OkhhbmRsZTx2ODo6T2JqZWN0PiBob2xkZXIgPSBpbmZvLkhvbGRlcigpOworICAgIFdlYktp
dEFuaW1hdGlvbiogaW1wID0gVjhXZWJLaXRBbmltYXRpb246OnRvTmF0aXZlKGhvbGRlcik7Cisg
ICAgaW50IGNvdW50ID0gaW1wLT5pdGVyYXRpb25Db3VudCgpOworICAgIGlmIChjb3VudCA9PSBB
bmltYXRpb246Okl0ZXJhdGlvbkNvdW50SW5maW5pdGUpCisgICAgICAgIHJldHVybiB2ODo6TnVt
YmVyOjpOZXcoSU5GSU5JVFkpOworICAgIHJldHVybiB2ODo6TnVtYmVyOjpOZXcoY291bnQpOwor
fQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9FbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcAppbmRleCA2
NGQyOTViLi5lMThjNzU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCkBAIC01NSw2ICs1NSw3IEBA
CiAjaW5jbHVkZSAiUmVuZGVyV2lkZ2V0LmgiCiAjaW5jbHVkZSAiU2V0dGluZ3MuaCIKICNpbmNs
dWRlICJUZXh0SXRlcmF0b3IuaCIKKyNpbmNsdWRlICJXZWJLaXRBbmltYXRpb25MaXN0LmgiCiAj
aW5jbHVkZSAiWE1MTmFtZXMuaCIKICNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CiAKQEAg
LTE4NzYsNCArMTg3NywxNyBAQCBib29sIEVsZW1lbnQ6OmlzU3BlbGxDaGVja2luZ0VuYWJsZWQo
KSBjb25zdAogICAgIHJldHVybiB0cnVlOwogfQogCitQYXNzUmVmUHRyPFdlYktpdEFuaW1hdGlv
bkxpc3Q+IEVsZW1lbnQ6OndlYmtpdEdldEFuaW1hdGlvbnMoKSBjb25zdAoreworICAgIGlmICgh
cmVuZGVyZXIoKSkKKyAgICAgICAgcmV0dXJuIDA7CisKKyAgICBBbmltYXRpb25Db250cm9sbGVy
KiBhbmltQ29udHJvbGxlciA9IHJlbmRlcmVyKCktPmFuaW1hdGlvbigpOworCisgICAgaWYgKCFh
bmltQ29udHJvbGxlcikKKyAgICAgICAgcmV0dXJuIDA7CisgICAgCisgICAgcmV0dXJuIGFuaW1D
b250cm9sbGVyLT5hbmltYXRpb25zRm9yUmVuZGVyZXIocmVuZGVyZXIoKSk7Cit9CisKIH0gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50
LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5oCmluZGV4IDVjNTRjZTQuLmJhMDg3MGMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmgKKysrIGIvU291cmNlL1dl
YkNvcmUvZG9tL0VsZW1lbnQuaApAQCAtMzksNiArMzksNyBAQCBjbGFzcyBET01TdHJpbmdNYXA7
CiBjbGFzcyBET01Ub2tlbkxpc3Q7CiBjbGFzcyBFbGVtZW50UmFyZURhdGE7CiBjbGFzcyBJbnRT
aXplOworY2xhc3MgV2ViS2l0QW5pbWF0aW9uTGlzdDsKIAogZW51bSBTcGVsbGNoZWNrQXR0cmli
dXRlU3RhdGUgewogICAgIFNwZWxsY2hlY2tBdHRyaWJ1dGVUcnVlLApAQCAtMzQ0LDYgKzM0NSw4
IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgYm9vbCBpc1NwZWxsQ2hlY2tpbmdFbmFibGVkKCkg
Y29uc3Q7CiAKKyAgICBQYXNzUmVmUHRyPFdlYktpdEFuaW1hdGlvbkxpc3Q+IHdlYmtpdEdldEFu
aW1hdGlvbnMoKSBjb25zdDsKKwogcHJvdGVjdGVkOgogICAgIEVsZW1lbnQoY29uc3QgUXVhbGlm
aWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQqIGRvY3VtZW50LCBDb25zdHJ1Y3Rpb25UeXBlIHR5
cGUpCiAgICAgICAgIDogQ29udGFpbmVyTm9kZShkb2N1bWVudCwgdHlwZSkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmlkbCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVt
ZW50LmlkbAppbmRleCA2NTJhNzViLi5mYzI4NjQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vRWxlbWVudC5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuaWRsCkBA
IC05Niw2ICs5Niw4IEBAIG1vZHVsZSBjb3JlIHsKICAgICAgICAgdm9pZCBzY3JvbGxCeUxpbmVz
KGluIGxvbmcgbGluZXMpOwogICAgICAgICB2b2lkIHNjcm9sbEJ5UGFnZXMoaW4gbG9uZyBwYWdl
cyk7CiAKKyAgICAgICAgV2ViS2l0QW5pbWF0aW9uTGlzdCB3ZWJraXRHZXRBbmltYXRpb25zKCk7
CisKICAgICAgICAgLy8gSFRNTCA1CiAgICAgICAgIE5vZGVMaXN0IGdldEVsZW1lbnRzQnlDbGFz
c05hbWUoaW4gRE9NU3RyaW5nIG5hbWUpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL0RPTVdpbmRvdy5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5pZGwKaW5k
ZXggMGYxNDJhNi4uZDNhZDI0NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9ET01X
aW5kb3cuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmlkbApAQCAtNjA1
LDYgKzYwNSw5IEBAIG1vZHVsZSB3aW5kb3cgewogICAgICAgICBhdHRyaWJ1dGUgW0NvbmRpdGlv
bmFsPVZJREVPLCBFbmFibGVkQXRSdW50aW1lXSBNZWRpYUVycm9yQ29uc3RydWN0b3IgTWVkaWFF
cnJvcjsKICAgICAgICAgYXR0cmlidXRlIFtDb25kaXRpb25hbD1WSURFTywgRW5hYmxlZEF0UnVu
dGltZV0gVGltZVJhbmdlc0NvbnN0cnVjdG9yIFRpbWVSYW5nZXM7CiAKKyAgICAgICAgYXR0cmli
dXRlIFdlYktpdEFuaW1hdGlvbkNvbnN0cnVjdG9yIFdlYktpdEFuaW1hdGlvbjsKKyAgICAgICAg
YXR0cmlidXRlIFdlYktpdEFuaW1hdGlvbkxpc3RDb25zdHJ1Y3RvciBXZWJLaXRBbmltYXRpb25M
aXN0OworCiAjaWYgZGVmaW5lZChFTkFCTEVfWFBBVEgpICYmIEVOQUJMRV9YUEFUSAogICAgICAg
ICBhdHRyaWJ1dGUgWFBhdGhFdmFsdWF0b3JDb25zdHJ1Y3RvciBYUGF0aEV2YWx1YXRvcjsKICAg
ICAgICAgYXR0cmlidXRlIFhQYXRoUmVzdWx0Q29uc3RydWN0b3IgWFBhdGhSZXN1bHQ7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1dlYktpdEFuaW1hdGlvbi5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL1dlYktpdEFuaW1hdGlvbi5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMC4uZmY3MTAyZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvV2ViS2l0QW5pbWF0aW9uLmNwcApAQCAtMCwwICsxLDEyMCBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAxMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBgYEFT
IElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCisg
KiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsg
T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpbmNs
dWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXZWJLaXRBbmltYXRpb24uaCIKKworI2luY2x1ZGUg
IkFuaW1hdGlvbi5oIgorI2luY2x1ZGUgIkFuaW1hdGlvbkJhc2UuaCIKKyNpbmNsdWRlICJSZW5k
ZXJTdHlsZS5oIgorCit1c2luZyBuYW1lc3BhY2Ugc3RkOworCituYW1lc3BhY2UgV2ViQ29yZSB7
CisKK1dlYktpdEFuaW1hdGlvbjo6V2ViS2l0QW5pbWF0aW9uKFBhc3NSZWZQdHI8S2V5ZnJhbWVB
bmltYXRpb24+IGtleWZyYW1lQW5pbWF0aW9uKQorICAgIDogbV9rZXlmcmFtZUFuaW1hdGlvbihr
ZXlmcmFtZUFuaW1hdGlvbikKK3sKK30KKworU3RyaW5nIFdlYktpdEFuaW1hdGlvbjo6bmFtZSgp
IGNvbnN0Cit7CisgICAgcmV0dXJuIG1fa2V5ZnJhbWVBbmltYXRpb24tPmFuaW1hdGlvbigpLT5u
YW1lKCk7Cit9CisKK2RvdWJsZSBXZWJLaXRBbmltYXRpb246OmR1cmF0aW9uKCkgY29uc3QKK3sK
KyAgICByZXR1cm4gbV9rZXlmcmFtZUFuaW1hdGlvbi0+ZHVyYXRpb24oKTsKK30KKworZG91Ymxl
IFdlYktpdEFuaW1hdGlvbjo6ZWxhcHNlZFRpbWUoKSBjb25zdAoreworICAgIHJldHVybiBtX2tl
eWZyYW1lQW5pbWF0aW9uLT5nZXRFbGFwc2VkVGltZSgpOworfQorCit2b2lkIFdlYktpdEFuaW1h
dGlvbjo6c2V0RWxhcHNlZFRpbWUoZG91YmxlIHRpbWUpCit7CisgICAgbV9rZXlmcmFtZUFuaW1h
dGlvbi0+c2V0RWxhcHNlZFRpbWUodGltZSk7Cit9CisKK2RvdWJsZSBXZWJLaXRBbmltYXRpb246
OmRlbGF5KCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9rZXlmcmFtZUFuaW1hdGlvbi0+YW5pbWF0
aW9uKCktPmRlbGF5KCk7Cit9CisKK2ludCBXZWJLaXRBbmltYXRpb246Oml0ZXJhdGlvbkNvdW50
KCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9rZXlmcmFtZUFuaW1hdGlvbi0+YW5pbWF0aW9uKCkt
Pml0ZXJhdGlvbkNvdW50KCk7Cit9CisKK2Jvb2wgV2ViS2l0QW5pbWF0aW9uOjpwYXVzZWQoKSBj
b25zdAoreworICAgIHJldHVybiBtX2tleWZyYW1lQW5pbWF0aW9uLT5wYXVzZWQoKTsKK30KKwor
Ym9vbCBXZWJLaXRBbmltYXRpb246OmVuZGVkKCkgY29uc3QKK3sKKyAgICBpbnQgaXRlcmF0aW9u
cyA9IGl0ZXJhdGlvbkNvdW50KCk7CisgICAgaWYgKGl0ZXJhdGlvbnMgPT0gQW5pbWF0aW9uOjpJ
dGVyYXRpb25Db3VudEluZmluaXRlKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgcmV0dXJu
IG1fa2V5ZnJhbWVBbmltYXRpb24tPmdldEVsYXBzZWRUaW1lKCkgPiAobV9rZXlmcmFtZUFuaW1h
dGlvbi0+ZHVyYXRpb24oKSAqIGl0ZXJhdGlvbnMpOworfQorCitXZWJLaXRBbmltYXRpb246OkRp
cmVjdGlvbiBXZWJLaXRBbmltYXRpb246OmRpcmVjdGlvbigpIGNvbnN0Cit7CisgICAgaWYgKG1f
a2V5ZnJhbWVBbmltYXRpb24tPmFuaW1hdGlvbigpLT5kaXJlY3Rpb24oKSA9PSBBbmltYXRpb246
OkFuaW1hdGlvbkRpcmVjdGlvbk5vcm1hbCkKKyAgICAgICAgcmV0dXJuIERJUkVDVElPTl9OT1JN
QUw7CisgICAgcmV0dXJuIERJUkVDVElPTl9BTFRFUk5BVEU7Cit9CisKK1dlYktpdEFuaW1hdGlv
bjo6RmlsbE1vZGUgV2ViS2l0QW5pbWF0aW9uOjpmaWxsTW9kZSgpIGNvbnN0Cit7CisgICAgc3dp
dGNoIChtX2tleWZyYW1lQW5pbWF0aW9uLT5hbmltYXRpb24oKS0+ZmlsbE1vZGUoKSkgeworICAg
IGNhc2UgQW5pbWF0aW9uRmlsbE1vZGVOb25lOgorICAgICAgICByZXR1cm4gRklMTF9OT05FOwor
ICAgICAgICBicmVhazsKKyAgICBjYXNlIEFuaW1hdGlvbkZpbGxNb2RlRm9yd2FyZHM6CisgICAg
ICAgIHJldHVybiBGSUxMX0ZPUldBUkRTOworICAgICAgICBicmVhazsKKyAgICBjYXNlIEFuaW1h
dGlvbkZpbGxNb2RlQmFja3dhcmRzOgorICAgICAgICByZXR1cm4gRklMTF9CQUNLV0FSRFM7Cisg
ICAgICAgIGJyZWFrOworICAgIGRlZmF1bHQ6CisgICAgICAgIHJldHVybiBGSUxMX0JPVEg7Cisg
ICAgICAgIGJyZWFrOworICAgIH0KK30KKwordm9pZCBXZWJLaXRBbmltYXRpb246OnBhdXNlKCkK
K3sKKyAgICBtX2tleWZyYW1lQW5pbWF0aW9uLT5wYXVzZSgpOworfQorCit2b2lkIFdlYktpdEFu
aW1hdGlvbjo6cGxheSgpCit7CisgICAgbV9rZXlmcmFtZUFuaW1hdGlvbi0+cGxheSgpOworfQor
Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1dlYktpdEFuaW1hdGlvbi5oIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9XZWJLaXRBbmltYXRpb24uaApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwLi42YmVhMWU1Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9XZWJLaXRBbmltYXRpb24uaApAQCAtMCwwICsxLDgxIEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDExIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBg
QVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IK
KyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2lm
bmRlZiBXZWJLaXRBbmltYXRpb25faAorI2RlZmluZSBXZWJLaXRBbmltYXRpb25faAorCisjaW5j
bHVkZSAiQW5pbWF0aW9uLmgiCisjaW5jbHVkZSAiQW5pbWF0aW9uQmFzZS5oIgorI2luY2x1ZGUg
IktleWZyYW1lQW5pbWF0aW9uLmgiCisjaW5jbHVkZSAiUmVuZGVyU3R5bGUuaCIKKworbmFtZXNw
YWNlIFdlYkNvcmUgeworCitjbGFzcyBXZWJLaXRBbmltYXRpb24gOiBwdWJsaWMgUmVmQ291bnRl
ZDxXZWJLaXRBbmltYXRpb24+IHsKK3B1YmxpYzoKKworICAgIHN0YXRpYyBQYXNzUmVmUHRyPFdl
YktpdEFuaW1hdGlvbj4gY3JlYXRlKFBhc3NSZWZQdHI8S2V5ZnJhbWVBbmltYXRpb24+IGtleWZy
YW1lQW5pbWF0aW9uKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBXZWJLaXRB
bmltYXRpb24oa2V5ZnJhbWVBbmltYXRpb24pKTsKKyAgICB9CisKKyAgICB2aXJ0dWFsIH5XZWJL
aXRBbmltYXRpb24oKSB7IH0KKworICAgIC8vIERPTSBBUEkKKworICAgIFN0cmluZyBuYW1lKCkg
Y29uc3Q7CisKKyAgICBkb3VibGUgZHVyYXRpb24oKSBjb25zdDsKKworICAgIGRvdWJsZSBlbGFw
c2VkVGltZSgpIGNvbnN0OworICAgIHZvaWQgc2V0RWxhcHNlZFRpbWUoZG91YmxlKTsKKworICAg
IGRvdWJsZSBkZWxheSgpIGNvbnN0OworICAgIGludCBpdGVyYXRpb25Db3VudCgpIGNvbnN0Owor
CisgICAgYm9vbCBwYXVzZWQoKSBjb25zdDsKKyAgICBib29sIGVuZGVkKCkgY29uc3Q7CisKKyAg
ICAvLyBkaXJlY3Rpb24KKyAgICBlbnVtIERpcmVjdGlvbiB7IERJUkVDVElPTl9OT1JNQUwsIERJ
UkVDVElPTl9BTFRFUk5BVEUgfTsKKyAgICBEaXJlY3Rpb24gZGlyZWN0aW9uKCkgY29uc3Q7CisK
KyAgICAvLyBmaWxsIG1vZGUKKyAgICBlbnVtIEZpbGxNb2RlIHsgRklMTF9OT05FLCBGSUxMX0JB
Q0tXQVJEUywgRklMTF9GT1JXQVJEUywgRklMTF9CT1RIIH07CisgICAgRmlsbE1vZGUgZmlsbE1v
ZGUoKSBjb25zdDsKKworICAgIHZvaWQgcGxheSgpOworICAgIHZvaWQgcGF1c2UoKTsKKworcHJv
dGVjdGVkOgorICAgIFdlYktpdEFuaW1hdGlvbihQYXNzUmVmUHRyPEtleWZyYW1lQW5pbWF0aW9u
Pik7CisKK3ByaXZhdGU6CisgICAgUmVmUHRyPEtleWZyYW1lQW5pbWF0aW9uPiBtX2tleWZyYW1l
QW5pbWF0aW9uOworfTsKKworfSAvLyBuYW1lc3BhY2UKKworI2VuZGlmCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL1dlYktpdEFuaW1hdGlvbi5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL1dlYktpdEFuaW1hdGlvbi5pZGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MC4uODc4MDdjNwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvV2ViS2l0
QW5pbWF0aW9uLmlkbApAQCAtMCwwICsxLDU4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEx
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqCisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqIDMu
ICBOZWl0aGVyIHRoZSBuYW1lIG9mIEFwcGxlIENvbXB1dGVyLCBJbmMuICgiQXBwbGUiKSBub3Ig
dGhlIG5hbWVzIG9mCisgKiAgICAgaXRzIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRv
cnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZAorICogICAgIGZyb20gdGhpcyBzb2Z0d2Fy
ZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJ
UyIgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBM
SUFCTEUgRk9SIEFOWQorICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAorICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRgorICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCittb2R1bGUgaHRtbCB7CisKKyAgICBpbnRl
cmZhY2UgV2ViS2l0QW5pbWF0aW9uIHsKKworICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgRE9N
U3RyaW5nIG5hbWU7CisKKyAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIGZsb2F0IGR1cmF0aW9u
OworICAgICAgICBhdHRyaWJ1dGUgZmxvYXQgZWxhcHNlZFRpbWU7CisKKyAgICAgICAgcmVhZG9u
bHkgYXR0cmlidXRlIGZsb2F0IGRlbGF5OworICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgW0N1
c3RvbV0gaW50IGl0ZXJhdGlvbkNvdW50OworCisgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBi
b29sZWFuIHBhdXNlZDsKKyAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIGJvb2xlYW4gZW5kZWQ7
CisKKyAgICAgICAgY29uc3QgdW5zaWduZWQgc2hvcnQgRElSRUNUSU9OX05PUk1BTCA9IDA7Cisg
ICAgICAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IERJUkVDVElPTl9BTFRFUk5BVEUgPSAxOworICAg
ICAgICByZWFkb25seSBhdHRyaWJ1dGUgdW5zaWduZWQgc2hvcnQgZGlyZWN0aW9uOworCisgICAg
ICAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IEZJTExfTk9ORSA9IDA7CisgICAgICAgIGNvbnN0IHVu
c2lnbmVkIHNob3J0IEZJTExfQkFDS1dBUkRTID0gMTsKKyAgICAgICAgY29uc3QgdW5zaWduZWQg
c2hvcnQgRklMTF9GT1JXQVJEUyA9IDI7CisgICAgICAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IEZJ
TExfQk9USCA9IDM7CisgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnNpZ25lZCBzaG9ydCBm
aWxsTW9kZTsKKworICAgICAgICB2b2lkIHBsYXkoKTsKKyAgICAgICAgdm9pZCBwYXVzZSgpOwor
ICAgIH07CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvV2ViS2l0QW5pbWF0
aW9uTGlzdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1dlYktpdEFuaW1hdGlvbkxpc3QuY3Bw
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjMxZTQ2ZDcKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1dlYktpdEFuaW1hdGlvbkxpc3QuY3BwCkBAIC0w
LDAgKzEsODIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisg
KiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlks
IE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisg
KiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLiAKKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2Vi
S2l0QW5pbWF0aW9uTGlzdC5oIgorCisjaW5jbHVkZSAiQW5pbWF0aW9uLmgiCisjaW5jbHVkZSAi
QW5pbWF0aW9uQmFzZS5oIgorI2luY2x1ZGUgIlJlbmRlclN0eWxlLmgiCisjaW5jbHVkZSAiV2Vi
S2l0QW5pbWF0aW9uLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKyAgICAKK1dlYktpdEFuaW1h
dGlvbkxpc3Q6OldlYktpdEFuaW1hdGlvbkxpc3QoKQoreworfQorCitXZWJLaXRBbmltYXRpb25M
aXN0Ojp+V2ViS2l0QW5pbWF0aW9uTGlzdCgpCit7Cit9CisKK3Vuc2lnbmVkIFdlYktpdEFuaW1h
dGlvbkxpc3Q6Omxlbmd0aCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fYW5pbWF0aW9ucy5zaXpl
KCk7Cit9CisKK1dlYktpdEFuaW1hdGlvbiogV2ViS2l0QW5pbWF0aW9uTGlzdDo6aXRlbSh1bnNp
Z25lZCBpbmRleCkKK3sKKyAgICBpZiAoaW5kZXggPCBtX2FuaW1hdGlvbnMuc2l6ZSgpKQorICAg
ICAgICByZXR1cm4gbV9hbmltYXRpb25zW2luZGV4XS5nZXQoKTsKKyAgICByZXR1cm4gMDsKK30K
Kwordm9pZCBXZWJLaXRBbmltYXRpb25MaXN0OjpkZWxldGVBbmltYXRpb24odW5zaWduZWQgaW5k
ZXgpCit7CisgICAgaWYgKGluZGV4ID49IG1fYW5pbWF0aW9ucy5zaXplKCkpCisgICAgICAgIHJl
dHVybjsKKworICAgIG1fYW5pbWF0aW9ucy5yZW1vdmUoaW5kZXgpOworfQorCit2b2lkIFdlYktp
dEFuaW1hdGlvbkxpc3Q6OmFwcGVuZChSZWZQdHI8V2ViS2l0QW5pbWF0aW9uPiBhbmltYXRpb24p
Cit7CisgICAgbV9hbmltYXRpb25zLmFwcGVuZChhbmltYXRpb24pOworfQorCit1bnNpZ25lZCBX
ZWJLaXRBbmltYXRpb25MaXN0OjppbnNlcnRBbmltYXRpb24oUmVmUHRyPFdlYktpdEFuaW1hdGlv
bj4gYW5pbWF0aW9uLCB1bnNpZ25lZCBpbmRleCkKK3sKKyAgICBpZiAoIWFuaW1hdGlvbikKKyAg
ICAgICAgcmV0dXJuIDA7CisKKyAgICBpZiAoaW5kZXggPiBtX2FuaW1hdGlvbnMuc2l6ZSgpKQor
ICAgICAgICByZXR1cm4gMDsKKworICAgIG1fYW5pbWF0aW9ucy5pbnNlcnQoaW5kZXgsIGFuaW1h
dGlvbik7CisgICAgcmV0dXJuIGluZGV4OworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvV2ViS2l0QW5pbWF0aW9uTGlzdC5oIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9XZWJLaXRBbmltYXRpb25MaXN0LmgKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMC4uYjgyZTM4YQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvV2ViS2l0QW5pbWF0aW9uTGlzdC5oCkBAIC0wLDAgKzEsNjEgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQ09NUFVURVIs
IElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwg
SU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBP
RiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAq
IFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAq
LworCisjaWZuZGVmIFdlYktpdEFuaW1hdGlvbkxpc3RfaAorI2RlZmluZSBXZWJLaXRBbmltYXRp
b25MaXN0X2gKKworI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CisjaW5jbHVkZSA8d3RmL1Jl
ZkNvdW50ZWQuaD4KKyNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CisjaW5jbHVkZSA8d3RmL1ZlY3Rv
ci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisgIAorY2xhc3MgV2ViS2l0QW5pbWF0aW9uOwor
CitjbGFzcyBXZWJLaXRBbmltYXRpb25MaXN0IDogcHVibGljIFJlZkNvdW50ZWQ8V2ViS2l0QW5p
bWF0aW9uTGlzdD4geworcHVibGljOgorICAgIHN0YXRpYyBQYXNzUmVmUHRyPFdlYktpdEFuaW1h
dGlvbkxpc3Q+IGNyZWF0ZSgpCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFdl
YktpdEFuaW1hdGlvbkxpc3QoKSk7CisgICAgfQorICAgIH5XZWJLaXRBbmltYXRpb25MaXN0KCk7
CisKKyAgICB1bnNpZ25lZCBsZW5ndGgoKSBjb25zdDsKKyAgICBXZWJLaXRBbmltYXRpb24qIGl0
ZW0odW5zaWduZWQgaW5kZXgpOworCisgICAgdW5zaWduZWQgaW5zZXJ0QW5pbWF0aW9uKFJlZlB0
cjxXZWJLaXRBbmltYXRpb24+LCB1bnNpZ25lZCBpbmRleCk7CisgICAgdm9pZCBkZWxldGVBbmlt
YXRpb24odW5zaWduZWQgaW5kZXgpOworICAgIHZvaWQgYXBwZW5kKFJlZlB0cjxXZWJLaXRBbmlt
YXRpb24+KTsKKworcHJpdmF0ZToKKyAgICBXZWJLaXRBbmltYXRpb25MaXN0KCk7CisKKyAgICBW
ZWN0b3I8UmVmUHRyPFdlYktpdEFuaW1hdGlvbj4gPiBtX2FuaW1hdGlvbnM7Cit9OworCit9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBXZWJLaXRBbmltYXRpb25MaXN0X2gKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvV2ViS2l0QW5pbWF0aW9uTGlzdC5pZGwgYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL1dlYktpdEFuaW1hdGlvbkxpc3QuaWRsCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAuLjRjMzc2ZTYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL1dlYktpdEFuaW1hdGlvbkxpc3QuaWRsCkBAIC0wLDAgKzEsMzYgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQ09NUFVU
RVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRF
UiwgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IK
KyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAK
KyAqLworCittb2R1bGUgaHRtbCB7CisKKyAgICBpbnRlcmZhY2UgWworICAgICAgICBDdXN0b21N
YXJrRnVuY3Rpb24sCisgICAgICAgIEhhc0luZGV4R2V0dGVyCisgICAgXSBXZWJLaXRBbmltYXRp
b25MaXN0IHsKKyAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIHVuc2lnbmVkIGxvbmcgbGVuZ3Ro
OworICAgICAgICBXZWJLaXRBbmltYXRpb24gaXRlbShpbiB1bnNpZ25lZCBsb25nIGluZGV4KTsK
KyAgICB9OworCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9B
bmltYXRpb25CYXNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0FuaW1hdGlv
bkJhc2UuY3BwCmluZGV4IDlhOTA2ZTIuLjM4MjJkMzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvYW5pbWF0aW9uL0FuaW1hdGlvbkJhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvYW5pbWF0aW9uL0FuaW1hdGlvbkJhc2UuY3BwCkBAIC04MDgsOCArODA4LDEzIEBAIEFu
aW1hdGlvbkJhc2U6OkFuaW1hdGlvbkJhc2UoY29uc3QgQW5pbWF0aW9uKiB0cmFuc2l0aW9uLCBS
ZW5kZXJPYmplY3QqIHJlbmRlcmVyCiAKIEFuaW1hdGlvbkJhc2U6On5BbmltYXRpb25CYXNlKCkK
IHsKLSAgICBtX2NvbXBBbmltLT5hbmltYXRpb25Db250cm9sbGVyKCktPnJlbW92ZUZyb21TdHls
ZUF2YWlsYWJsZVdhaXRMaXN0KHRoaXMpOwotICAgIG1fY29tcEFuaW0tPmFuaW1hdGlvbkNvbnRy
b2xsZXIoKS0+cmVtb3ZlRnJvbVN0YXJ0VGltZVJlc3BvbnNlV2FpdExpc3QodGhpcyk7CisgICAg
Ly8gSWYgd2UgaGF2ZSBhIHJlbmRlcmVyLCByZW1vdmUgb3Vyc2VsdmVzIGZyb20gdGhlIHdhaXQg
bGlzdHMuIFdlIGNhbiBnZXQgaW50bworICAgIC8vIHRoZSBzaXR1YXRpb24gd2hlcmUgdGhlcmUg
aXMgbm8gcmVuZGVyZXIgd2hlbiB0aGUgYmluZGluZyBoYXMgYSByZWZlcmVuY2UgdG8KKyAgICAv
LyB0aGlzIG9iamVjdCwgYnV0IHRoZSBlbGVtZW50IGhhcyBzaW5jZSBiZWVuIHJlbW92ZWQgZnJv
bSB0aGUgZG9jdW1lbnQuCisgICAgaWYgKG1fb2JqZWN0KSB7CisgICAgICAgIG1fY29tcEFuaW0t
PmFuaW1hdGlvbkNvbnRyb2xsZXIoKS0+cmVtb3ZlRnJvbVN0eWxlQXZhaWxhYmxlV2FpdExpc3Qo
dGhpcyk7CisgICAgICAgIG1fY29tcEFuaW0tPmFuaW1hdGlvbkNvbnRyb2xsZXIoKS0+cmVtb3Zl
RnJvbVN0YXJ0VGltZVJlc3BvbnNlV2FpdExpc3QodGhpcyk7CisgICAgfQogfQogCiBib29sIEFu
aW1hdGlvbkJhc2U6OnByb3BlcnRpZXNFcXVhbChpbnQgcHJvcCwgY29uc3QgUmVuZGVyU3R5bGUq
IGEsIGNvbnN0IFJlbmRlclN0eWxlKiBiKQpAQCAtMTM5Nyw1ICsxNDAyLDIxIEBAIGRvdWJsZSBB
bmltYXRpb25CYXNlOjpnZXRFbGFwc2VkVGltZSgpIGNvbnN0CiAKICAgICByZXR1cm4gYmVnaW5B
bmltYXRpb25VcGRhdGVUaW1lKCkgLSBtX3N0YXJ0VGltZTsKIH0KLSAgICAKKwordm9pZCBBbmlt
YXRpb25CYXNlOjpzZXRFbGFwc2VkVGltZShkb3VibGUgdGltZSkKK3sKKyAgICAvLyBGSVhNRTog
aW1wbGVtZW50IHRoaXMgbWV0aG9kCisgICAgVU5VU0VEX1BBUkFNKHRpbWUpOworfQorCit2b2lk
IEFuaW1hdGlvbkJhc2U6OnBsYXkoKQoreworICAgIC8vIEZJWE1FOiBpbXBsZW1lbnQgdGhpcyBt
ZXRob2QKK30KKwordm9pZCBBbmltYXRpb25CYXNlOjpwYXVzZSgpCit7CisgICAgLy8gRklYTUU6
IGltcGxlbWVudCB0aGlzIG1ldGhvZAorfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9BbmltYXRpb25CYXNlLmggYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9BbmltYXRpb25CYXNlLmgKaW5kZXggODc3ZDY0
OS4uYzVhZjBhMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vQW5p
bWF0aW9uQmFzZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0FuaW1hdGlv
bkJhc2UuaApAQCAtMTYzLDExICsxNjMsMTcgQEAgcHVibGljOgogICAgIAogICAgIC8vIEZyZWV6
ZSB0aGUgYW5pbWF0aW9uOyB1c2VkIGJ5IER1bXBSZW5kZXJUcmVlLgogICAgIHZvaWQgZnJlZXpl
QXRUaW1lKGRvdWJsZSB0KTsKKworICAgIC8vIFBsYXkgYW5kIHBhdXNlIEFQSQorICAgIHZvaWQg
cGxheSgpOworICAgIHZvaWQgcGF1c2UoKTsKICAgICAKICAgICBkb3VibGUgYmVnaW5BbmltYXRp
b25VcGRhdGVUaW1lKCkgY29uc3Q7CiAgICAgCiAgICAgZG91YmxlIGdldEVsYXBzZWRUaW1lKCkg
Y29uc3Q7Ci0gICAgCisgICAgLy8gU2V0dGluZyB0aGUgZWxhcHNlZCB0aW1lIHdpbGwgYWRqdXN0
IHRoZSBzdGFydCB0aW1lIGFuZCBwb3NzaWJseSBwYXVzZSB0aW1lLgorICAgIHZvaWQgc2V0RWxh
cHNlZFRpbWUoZG91YmxlKTsKKwogICAgIEFuaW1hdGlvbkJhc2UqIG5leHQoKSBjb25zdCB7IHJl
dHVybiBtX25leHQ7IH0KICAgICB2b2lkIHNldE5leHQoQW5pbWF0aW9uQmFzZSogYW5pbWF0aW9u
KSB7IG1fbmV4dCA9IGFuaW1hdGlvbjsgfQogICAgIApAQCAtMTgyLDcgKzE4OCw5IEBAIHB1Ymxp
YzoKICNlbmRpZgogCiAgICAgc3RhdGljIEhhc2hTZXQ8aW50PiBhbmltYXRhYmxlU2hvcnRoYW5k
c0FmZmVjdGluZ1Byb3BlcnR5KGludCBwcm9wZXJ0eSk7Ci0gICAgCisKKyAgICBjb25zdCBBbmlt
YXRpb24qIGFuaW1hdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fYW5pbWF0aW9uLmdldCgpOyB9CisK
IHByb3RlY3RlZDoKICAgICB2aXJ0dWFsIHZvaWQgb3ZlcnJpZGVBbmltYXRpb25zKCkgeyB9CiAg
ICAgdmlydHVhbCB2b2lkIHJlc3VtZU92ZXJyaWRkZW5BbmltYXRpb25zKCkgeyB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9BbmltYXRpb25Db250cm9sbGVyLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0FuaW1hdGlvbkNvbnRyb2xsZXIuY3Bw
CmluZGV4IGRjZGVhMDMuLmE3MzAwNjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
YW5pbWF0aW9uL0FuaW1hdGlvbkNvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvYW5pbWF0aW9uL0FuaW1hdGlvbkNvbnRyb2xsZXIuY3BwCkBAIC0zNywxMiArMzcsMTQgQEAK
ICNpbmNsdWRlICJGcmFtZS5oIgogI2luY2x1ZGUgIlJlbmRlclZpZXcuaCIKICNpbmNsdWRlICJX
ZWJLaXRBbmltYXRpb25FdmVudC5oIgorI2luY2x1ZGUgIldlYktpdEFuaW1hdGlvbkxpc3QuaCIK
ICNpbmNsdWRlICJXZWJLaXRUcmFuc2l0aW9uRXZlbnQuaCIKICNpbmNsdWRlIDx3dGYvQ3VycmVu
dFRpbWUuaD4KICNpbmNsdWRlIDx3dGYvVW51c2VkUGFyYW0uaD4KIAogbmFtZXNwYWNlIFdlYkNv
cmUgewogCisvLyBGSVhNRTogV2h5IGlzbid0IHRoaXMgc2V0IHRvIDYwZnBzIG9yIHNvbWV0aGlu
Zz8KIHN0YXRpYyBjb25zdCBkb3VibGUgY0FuaW1hdGlvblRpbWVyRGVsYXkgPSAwLjAyNTsKIHN0
YXRpYyBjb25zdCBkb3VibGUgY0JlZ2luQW5pbWF0aW9uVXBkYXRlVGltZU5vdFNldCA9IC0xOwog
CkBAIC00NzksNiArNDgxLDE2IEBAIHZvaWQgQW5pbWF0aW9uQ29udHJvbGxlclByaXZhdGU6OnN0
YXJ0VGltZVJlc3BvbnNlKGRvdWJsZSB0aW1lKQogICAgIG1fbGFzdFN0YXJ0VGltZVJlc3BvbnNl
V2FpdGVyID0gMDsKIH0KIAorUGFzc1JlZlB0cjxXZWJLaXRBbmltYXRpb25MaXN0PiBBbmltYXRp
b25Db250cm9sbGVyUHJpdmF0ZTo6YW5pbWF0aW9uc0ZvclJlbmRlcmVyKFJlbmRlck9iamVjdCog
cmVuZGVyZXIpIGNvbnN0Cit7CisgICAgUmVmUHRyPENvbXBvc2l0ZUFuaW1hdGlvbj4gYW5pbWF0
aW9uID0gbV9jb21wb3NpdGVBbmltYXRpb25zLmdldChyZW5kZXJlcik7CisKKyAgICBpZiAoIWFu
aW1hdGlvbikKKyAgICAgICAgcmV0dXJuIDA7CisKKyAgICByZXR1cm4gYW5pbWF0aW9uLT5hbmlt
YXRpb25zKCk7Cit9CisKIEFuaW1hdGlvbkNvbnRyb2xsZXI6OkFuaW1hdGlvbkNvbnRyb2xsZXIo
RnJhbWUqIGZyYW1lKQogICAgIDogbV9kYXRhKG5ldyBBbmltYXRpb25Db250cm9sbGVyUHJpdmF0
ZShmcmFtZSkpCiB7CkBAIC02MTIsNCArNjI0LDkgQEAgYm9vbCBBbmltYXRpb25Db250cm9sbGVy
OjpzdXBwb3J0c0FjY2VsZXJhdGVkQW5pbWF0aW9uT2ZQcm9wZXJ0eShDU1NQcm9wZXJ0eUlEIHAK
ICNlbmRpZgogfQogCitQYXNzUmVmUHRyPFdlYktpdEFuaW1hdGlvbkxpc3Q+IEFuaW1hdGlvbkNv
bnRyb2xsZXI6OmFuaW1hdGlvbnNGb3JSZW5kZXJlcihSZW5kZXJPYmplY3QqIHJlbmRlcmVyKSBj
b25zdAoreworICAgIHJldHVybiBtX2RhdGEtPmFuaW1hdGlvbnNGb3JSZW5kZXJlcihyZW5kZXJl
cik7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvYW5pbWF0aW9uL0FuaW1hdGlvbkNvbnRyb2xsZXIuaCBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvYW5pbWF0aW9uL0FuaW1hdGlvbkNvbnRyb2xsZXIuaAppbmRleCA1Mjc5NDY3Li5hMzU1
Zjg3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9BbmltYXRpb25D
b250cm9sbGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vQW5pbWF0aW9u
Q29udHJvbGxlci5oCkBAIC00Miw2ICs0Miw3IEBAIGNsYXNzIEZyYW1lOwogY2xhc3MgTm9kZTsK
IGNsYXNzIFJlbmRlck9iamVjdDsKIGNsYXNzIFJlbmRlclN0eWxlOworY2xhc3MgV2ViS2l0QW5p
bWF0aW9uTGlzdDsKIAogY2xhc3MgQW5pbWF0aW9uQ29udHJvbGxlciB7CiBwdWJsaWM6CkBAIC03
Myw2ICs3NCw4IEBAIHB1YmxpYzoKICAgICAKICAgICBzdGF0aWMgYm9vbCBzdXBwb3J0c0FjY2Vs
ZXJhdGVkQW5pbWF0aW9uT2ZQcm9wZXJ0eShDU1NQcm9wZXJ0eUlEKTsKIAorICAgIFBhc3NSZWZQ
dHI8V2ViS2l0QW5pbWF0aW9uTGlzdD4gYW5pbWF0aW9uc0ZvclJlbmRlcmVyKFJlbmRlck9iamVj
dCopIGNvbnN0OworCiBwcml2YXRlOgogICAgIEFuaW1hdGlvbkNvbnRyb2xsZXJQcml2YXRlKiBt
X2RhdGE7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vQW5p
bWF0aW9uQ29udHJvbGxlclByaXZhdGUuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9u
L0FuaW1hdGlvbkNvbnRyb2xsZXJQcml2YXRlLmgKaW5kZXggMTg2ZGQ3ZC4uODhiODJhNCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vQW5pbWF0aW9uQ29udHJvbGxl
clByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9BbmltYXRpb25D
b250cm9sbGVyUHJpdmF0ZS5oCkBAIC00OCw2ICs0OCw3IEBAIGNsYXNzIEZyYW1lOwogY2xhc3Mg
Tm9kZTsKIGNsYXNzIFJlbmRlck9iamVjdDsKIGNsYXNzIFJlbmRlclN0eWxlOworY2xhc3MgV2Vi
S2l0QW5pbWF0aW9uTGlzdDsKIAogY2xhc3MgQW5pbWF0aW9uQ29udHJvbGxlclByaXZhdGUgewog
ICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKEFuaW1hdGlvbkNvbnRyb2xsZXJQcml2YXRlKTsgV1RG
X01BS0VfRkFTVF9BTExPQ0FURUQ7CkBAIC05Myw2ICs5NCw4IEBAIHB1YmxpYzoKICAgICB2b2lk
IGFkZFRvU3RhcnRUaW1lUmVzcG9uc2VXYWl0TGlzdChBbmltYXRpb25CYXNlKiwgYm9vbCB3aWxs
R2V0UmVzcG9uc2UpOwogICAgIHZvaWQgcmVtb3ZlRnJvbVN0YXJ0VGltZVJlc3BvbnNlV2FpdExp
c3QoQW5pbWF0aW9uQmFzZSopOyAgICAKICAgICAKKyAgICBQYXNzUmVmUHRyPFdlYktpdEFuaW1h
dGlvbkxpc3Q+IGFuaW1hdGlvbnNGb3JSZW5kZXJlcihSZW5kZXJPYmplY3QqKSBjb25zdDsKKyAg
ICAKIHByaXZhdGU6CiAgICAgdm9pZCBhbmltYXRpb25UaW1lckZpcmVkKFRpbWVyPEFuaW1hdGlv
bkNvbnRyb2xsZXJQcml2YXRlPiopOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L2FuaW1hdGlvbi9Db21wb3NpdGVBbmltYXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9h
bmltYXRpb24vQ29tcG9zaXRlQW5pbWF0aW9uLmNwcAppbmRleCA2MDI0OTFlLi43ZGViZDBhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9Db21wb3NpdGVBbmltYXRp
b24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0NvbXBvc2l0ZUFuaW1h
dGlvbi5jcHAKQEAgLTM2LDYgKzM2LDggQEAKICNpbmNsdWRlICJLZXlmcmFtZUFuaW1hdGlvbi5o
IgogI2luY2x1ZGUgIlJlbmRlck9iamVjdC5oIgogI2luY2x1ZGUgIlJlbmRlclN0eWxlLmgiCisj
aW5jbHVkZSAiV2ViS2l0QW5pbWF0aW9uLmgiCisjaW5jbHVkZSAiV2ViS2l0QW5pbWF0aW9uTGlz
dC5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTI1Miw4ICsyNTQsMTAgQEAgdm9pZCBD
b21wb3NpdGVBbmltYXRpb246OnVwZGF0ZUtleWZyYW1lQW5pbWF0aW9ucyhSZW5kZXJPYmplY3Qq
IHJlbmRlcmVyLCBSZW5kZXIKICAgICBrZmVuZCA9IG1fa2V5ZnJhbWVBbmltYXRpb25zLmVuZCgp
OwogICAgIGZvciAoQW5pbWF0aW9uTmFtZU1hcDo6Y29uc3RfaXRlcmF0b3IgaXQgPSBtX2tleWZy
YW1lQW5pbWF0aW9ucy5iZWdpbigpOyBpdCAhPSBrZmVuZDsgKytpdCkgewogICAgICAgICBLZXlm
cmFtZUFuaW1hdGlvbioga2V5ZnJhbWVBbmltID0gaXQtPnNlY29uZC5nZXQoKTsKLSAgICAgICAg
aWYgKGtleWZyYW1lQW5pbS0+aW5kZXgoKSA8IDApCisgICAgICAgIGlmIChrZXlmcmFtZUFuaW0t
PmluZGV4KCkgPCAwKSB7CiAgICAgICAgICAgICBhbmltc1RvQmVSZW1vdmVkLmFwcGVuZChrZXlm
cmFtZUFuaW0tPm5hbWUoKS5pbXBsKCkpOworICAgICAgICAgICAga2V5ZnJhbWVBbmltLT5jbGVh
clJlbmRlcmVyKCk7CisgICAgICAgIH0KICAgICB9CiAgICAgCiAgICAgLy8gTm93IHJlbW92ZSB0
aGUgYW5pbWF0aW9ucyBmcm9tIHRoZSBsaXN0LgpAQCAtNTYwLDQgKzU2NCwxOSBAQCB1bnNpZ25l
ZCBDb21wb3NpdGVBbmltYXRpb246Om51bWJlck9mQWN0aXZlQW5pbWF0aW9ucygpIGNvbnN0CiAg
ICAgcmV0dXJuIGNvdW50OwogfQogCitQYXNzUmVmUHRyPFdlYktpdEFuaW1hdGlvbkxpc3Q+IENv
bXBvc2l0ZUFuaW1hdGlvbjo6YW5pbWF0aW9ucygpIGNvbnN0Cit7CisgICAgUmVmUHRyPFdlYktp
dEFuaW1hdGlvbkxpc3Q+IGFuaW1hdGlvbnMgPSBXZWJLaXRBbmltYXRpb25MaXN0OjpjcmVhdGUo
KTsKKyAgICBpZiAoIW1fa2V5ZnJhbWVBbmltYXRpb25zLmlzRW1wdHkoKSkgeworICAgICAgICBt
X2tleWZyYW1lQW5pbWF0aW9ucy5jaGVja0NvbnNpc3RlbmN5KCk7CisgICAgICAgIEFuaW1hdGlv
bk5hbWVNYXA6OmNvbnN0X2l0ZXJhdG9yIGFuaW1hdGlvbnNFbmQgPSBtX2tleWZyYW1lQW5pbWF0
aW9ucy5lbmQoKTsKKyAgICAgICAgZm9yIChBbmltYXRpb25OYW1lTWFwOjpjb25zdF9pdGVyYXRv
ciBpdCA9IG1fa2V5ZnJhbWVBbmltYXRpb25zLmJlZ2luKCk7IGl0ICE9IGFuaW1hdGlvbnNFbmQ7
ICsraXQpIHsKKyAgICAgICAgICAgIEtleWZyYW1lQW5pbWF0aW9uKiBrZXlmcmFtZUFuaW1hdGlv
biA9IGl0LT5zZWNvbmQuZ2V0KCk7CisgICAgICAgICAgICBSZWZQdHI8V2ViS2l0QW5pbWF0aW9u
PiBhbmltID0gV2ViS2l0QW5pbWF0aW9uOjpjcmVhdGUoa2V5ZnJhbWVBbmltYXRpb24pOworICAg
ICAgICAgICAgYW5pbWF0aW9ucy0+YXBwZW5kKGFuaW0pOworICAgICAgICB9CisgICAgfQorICAg
IHJldHVybiBhbmltYXRpb25zOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9Db21wb3NpdGVBbmltYXRpb24uaCBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0NvbXBvc2l0ZUFuaW1hdGlvbi5oCmluZGV4
IDI0OWY0YzMuLjFiZmU1ODUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0
aW9uL0NvbXBvc2l0ZUFuaW1hdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0
aW9uL0NvbXBvc2l0ZUFuaW1hdGlvbi5oCkBAIC00MSw2ICs0MSw3IEBAIGNsYXNzIEFuaW1hdGlv
bkNvbnRyb2xsZXJQcml2YXRlOwogY2xhc3MgQW5pbWF0aW9uQ29udHJvbGxlcjsKIGNsYXNzIFJl
bmRlck9iamVjdDsKIGNsYXNzIFJlbmRlclN0eWxlOworY2xhc3MgV2ViS2l0QW5pbWF0aW9uTGlz
dDsKIAogLy8gQSBDb21wb3NpdGVBbmltYXRpb24gcmVwcmVzZW50cyBhIGNvbGxlY3Rpb24gb2Yg
YW5pbWF0aW9ucyB0aGF0IGFyZSBydW5uaW5nCiAvLyBvbiBhIHNpbmdsZSBSZW5kZXJPYmplY3Qs
IHN1Y2ggYXMgYSBudW1iZXIgb2YgcHJvcGVydGllcyB0cmFuc2l0aW9uaW5nIGF0IG9uY2UuCkBA
IC04MCw2ICs4MSw4IEBAIHB1YmxpYzoKICAgICBib29sIHBhdXNlVHJhbnNpdGlvbkF0VGltZShp
bnQgcHJvcGVydHksIGRvdWJsZSB0KTsKICAgICB1bnNpZ25lZCBudW1iZXJPZkFjdGl2ZUFuaW1h
dGlvbnMoKSBjb25zdDsKIAorICAgIFBhc3NSZWZQdHI8V2ViS2l0QW5pbWF0aW9uTGlzdD4gYW5p
bWF0aW9ucygpIGNvbnN0OworCiBwcml2YXRlOgogICAgIENvbXBvc2l0ZUFuaW1hdGlvbihBbmlt
YXRpb25Db250cm9sbGVyUHJpdmF0ZSogYW5pbWF0aW9uQ29udHJvbGxlcikKICAgICAgICAgOiBt
X2FuaW1hdGlvbkNvbnRyb2xsZXIoYW5pbWF0aW9uQ29udHJvbGxlcikK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>85459</attachid>
            <date>2011-03-11 04:41:27 -0800</date>
            <delta_ts>2011-03-11 06:06:16 -0800</delta_ts>
            <desc>Updated patch</desc>
            <filename>animation-api-step-1.diff</filename>
            <type>text/plain</type>
            <size>86508</size>
            <attacher name="Dean Jackson">dino</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA0MzJlZjk4Li5iOTA5ZjRkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjQgQEAKKzIwMTEtMDMt
MTAgIERlYW4gSmFja3NvbiAgPGRpbm9AYXBwbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5
IFNpbW9uIEZyYXNlciBhbmQgQ2hyaXMgTWFycmluLgorCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01NDE1MQorICAgICAgICBJbXBsZW1lbnQgYW4gQVBJ
IHRvIHBsYXkvcGF1c2Uvc2NydWIgYW5pbWF0aW9ucworICAgICAgICAKKyAgICAgICAgVGhpcyBp
cyBQYXJ0IDEuIEFkZHMgdGhlIG5ldyBXZWJLaXRBbmltYXRpb24gYW5kIFdlYktpdEFuaW1hdGlv
bkxpc3QKKyAgICAgICAgQVBJcywgZXhwb3NlZCB2aWEgRWxlbWVudC5nZXRXZWJLaXRBbmltYXRp
b25zKCkuIFRoaXMgZmlyc3QgcGFzcworICAgICAgICBpcyByZWFkLW9ubHkuIE9uZSBuZXcgbGF5
b3V0IHRlc3QgdGhhdCBleGFtaW5lcyBhbmltYXRpb24KKyAgICAgICAgcHJvcGVydGllcy4gVXBk
YXRlIGV4aXN0aW5nIGxheW91dCB0ZXN0cyBmb3IgdGhlIG5ldyBpbnRlcmZhY2VzCisgICAgICAg
IG9uIFdpbmRvdy4KKworICAgICAgICAqIGFuaW1hdGlvbnMvYW5pbWF0aW9uLWFwaS0xLWV4cGVj
dGVkLnR4dDogQWRkZWQuCisgICAgICAgICogYW5pbWF0aW9ucy9hbmltYXRpb24tYXBpLTEuaHRt
bDogQWRkZWQuCisgICAgICAgICogZmFzdC9kb20vV2luZG93L3dpbmRvdy1wcm9wZXJ0aWVzLWV4
cGVjdGVkLnR4dDoKKyAgICAgICAgKiBmYXN0L2RvbS9XaW5kb3cvd2luZG93LXByb3BlcnR5LWRl
c2NyaXB0b3JzLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBmYXN0L2RvbS9wcm90b3R5cGUtaW5o
ZXJpdGFuY2UtMi1leHBlY3RlZC50eHQ6CisgICAgICAgICogZmFzdC9kb20vcHJvdG90eXBlLWlu
aGVyaXRhbmNlLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBmYXN0L2pzL2dsb2JhbC1jb25zdHJ1
Y3RvcnMtZXhwZWN0ZWQudHh0OgorCiAyMDExLTAzLTEwICBEYXZpZCBIeWF0dCAgPGh5YXR0QGFw
cGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBTaW1vbiBGcmFzZXIuCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9hbmltYXRpb25zL2FuaW1hdGlvbi1hcGktMS1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9hbmltYXRpb25zL2FuaW1hdGlvbi1hcGktMS1leHBlY3RlZC50eHQKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjljMDg0MgotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2FuaW1hdGlvbnMvYW5pbWF0aW9uLWFwaS0xLWV4cGVjdGVkLnR4dApAQCAt
MCwwICsxLDc3IEBACitUaGlzIHRlc3RzIHRoZSBXZWJLaXRBbmltYXRpb24gaW50ZXJmYWNlLgor
CitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBm
b2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyB3aW5kb3cuV2ViS2l0QW5pbWF0
aW9uIGlzIGRlZmluZWQuCitQQVNTIHdpbmRvdy5XZWJLaXRBbmltYXRpb25MaXN0IGlzIGRlZmlu
ZWQuCisKK1Rlc3QgYW4gYWxtb3N0LWRlZmF1bHQgYW5pbWF0aW9uCitQQVNTIGFfYW5pbWF0aW9u
cy5sZW5ndGggaXMgMQorUEFTUyBhX2FuaW1hdGlvbl8wIGlzIGRlZmluZWQuCisKK1BBU1MgYV9h
bmltYXRpb25fMC5uYW1lIGlzICd0ZXN0MScKK1BBU1MgYV9hbmltYXRpb25fMC5kdXJhdGlvbiBp
cyAxCitQQVNTIGFfYW5pbWF0aW9uXzAuZGVsYXkgaXMgMAorUEFTUyBhX2FuaW1hdGlvbl8wLml0
ZXJhdGlvbkNvdW50IGlzIDEKK1BBU1MgYV9hbmltYXRpb25fMC5wYXVzZWQgaXMgZmFsc2UKK1BB
U1MgYV9hbmltYXRpb25fMC5lbmRlZCBpcyBmYWxzZQorUEFTUyBhX2FuaW1hdGlvbl8wLmRpcmVj
dGlvbiBpcyB3aW5kb3cuV2ViS2l0QW5pbWF0aW9uLkRJUkVDVElPTl9OT1JNQUwKK1BBU1MgYV9h
bmltYXRpb25fMC5maWxsTW9kZSBpcyB3aW5kb3cuV2ViS2l0QW5pbWF0aW9uLkZJTExfTk9ORQor
CitUZXN0IGEgc3BlY2lmaWVkIGFuaW1hdGlvbgorUEFTUyBiX2FuaW1hdGlvbnMubGVuZ3RoIGlz
IDEKK1BBU1MgYl9hbmltYXRpb25fMCBpcyBkZWZpbmVkLgorCitQQVNTIGJfYW5pbWF0aW9uXzAu
bmFtZSBpcyAndGVzdDEnCitQQVNTIGJfYW5pbWF0aW9uXzAuZHVyYXRpb24gaXMgMgorUEFTUyBi
X2FuaW1hdGlvbl8wLmRlbGF5IGlzIDMKK1BBU1MgYl9hbmltYXRpb25fMC5pdGVyYXRpb25Db3Vu
dCBpcyA0CitQQVNTIGJfYW5pbWF0aW9uXzAucGF1c2VkIGlzIGZhbHNlCitQQVNTIGJfYW5pbWF0
aW9uXzAuZW5kZWQgaXMgZmFsc2UKK1BBU1MgYl9hbmltYXRpb25fMC5kaXJlY3Rpb24gaXMgd2lu
ZG93LldlYktpdEFuaW1hdGlvbi5ESVJFQ1RJT05fTk9STUFMCitQQVNTIGJfYW5pbWF0aW9uXzAu
ZmlsbE1vZGUgaXMgd2luZG93LldlYktpdEFuaW1hdGlvbi5GSUxMX05PTkUKKworVGVzdCBuZWdh
dGl2ZSBkZWxheSwgZmlsbCBtb2RlLCBkaXJlY3Rpb24gYW5kIGluZmluaXRlIGl0ZXJhdGlvbnMK
K1BBU1MgY19hbmltYXRpb25zLmxlbmd0aCBpcyAxCitQQVNTIGNfYW5pbWF0aW9uXzAgaXMgZGVm
aW5lZC4KKworUEFTUyBjX2FuaW1hdGlvbl8wLm5hbWUgaXMgJ3Rlc3QyJworUEFTUyBjX2FuaW1h
dGlvbl8wLmR1cmF0aW9uIGlzIDUKK1BBU1MgY19hbmltYXRpb25fMC5kZWxheSBpcyAtMQorUEFT
UyBjX2FuaW1hdGlvbl8wLml0ZXJhdGlvbkNvdW50IGlzIE51bWJlci5QT1NJVElWRV9JTkZJTklU
WQorUEFTUyBjX2FuaW1hdGlvbl8wLnBhdXNlZCBpcyBmYWxzZQorUEFTUyBjX2FuaW1hdGlvbl8w
LmVuZGVkIGlzIGZhbHNlCitQQVNTIGNfYW5pbWF0aW9uXzAuZGlyZWN0aW9uIGlzIHdpbmRvdy5X
ZWJLaXRBbmltYXRpb24uRElSRUNUSU9OX0FMVEVSTkFURQorUEFTUyBjX2FuaW1hdGlvbl8wLmZp
bGxNb2RlIGlzIHdpbmRvdy5XZWJLaXRBbmltYXRpb24uRklMTF9GT1JXQVJEUworCitUZXN0IG11
bHRpcGxlIGFuaW1hdGlvbnMKK1BBU1MgZF9hbmltYXRpb25zLmxlbmd0aCBpcyAyCitQQVNTIGRf
YW5pbWF0aW9uXzAgaXMgZGVmaW5lZC4KKworUEFTUyBkX2FuaW1hdGlvbl8wLm5hbWUgaXMgJ3Rl
c3QxJworUEFTUyBkX2FuaW1hdGlvbl8wLmR1cmF0aW9uIGlzIDEKK1BBU1MgZF9hbmltYXRpb25f
MC5kZWxheSBpcyAwCitQQVNTIGRfYW5pbWF0aW9uXzAuaXRlcmF0aW9uQ291bnQgaXMgMTAKK1BB
U1MgZF9hbmltYXRpb25fMC5wYXVzZWQgaXMgZmFsc2UKK1BBU1MgZF9hbmltYXRpb25fMC5lbmRl
ZCBpcyBmYWxzZQorUEFTUyBkX2FuaW1hdGlvbl8wLmRpcmVjdGlvbiBpcyB3aW5kb3cuV2ViS2l0
QW5pbWF0aW9uLkRJUkVDVElPTl9OT1JNQUwKK1BBU1MgZF9hbmltYXRpb25fMC5maWxsTW9kZSBp
cyB3aW5kb3cuV2ViS2l0QW5pbWF0aW9uLkZJTExfQkFDS1dBUkRTCitQQVNTIGRfYW5pbWF0aW9u
XzEgaXMgZGVmaW5lZC4KKworUEFTUyBkX2FuaW1hdGlvbl8xLm5hbWUgaXMgJ3Rlc3QyJworUEFT
UyBkX2FuaW1hdGlvbl8xLmR1cmF0aW9uIGlzIDIKK1BBU1MgZF9hbmltYXRpb25fMS5kZWxheSBp
cyAxCitQQVNTIGRfYW5pbWF0aW9uXzEuaXRlcmF0aW9uQ291bnQgaXMgTnVtYmVyLlBPU0lUSVZF
X0lORklOSVRZCitQQVNTIGRfYW5pbWF0aW9uXzEucGF1c2VkIGlzIGZhbHNlCitQQVNTIGRfYW5p
bWF0aW9uXzEuZW5kZWQgaXMgZmFsc2UKK1BBU1MgZF9hbmltYXRpb25fMS5kaXJlY3Rpb24gaXMg
d2luZG93LldlYktpdEFuaW1hdGlvbi5ESVJFQ1RJT05fQUxURVJOQVRFCitQQVNTIGRfYW5pbWF0
aW9uXzEuZmlsbE1vZGUgaXMgd2luZG93LldlYktpdEFuaW1hdGlvbi5GSUxMX0JPVEgKKworVGVz
dCBlbGVtZW50IHdpdGggbm8gYW5pbWF0aW9ucworUEFTUyBlX2FuaW1hdGlvbnMgaXMgbnVsbAor
CitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvYW5pbWF0aW9ucy9hbmltYXRpb24tYXBpLTEuaHRtbCBiL0xh
eW91dFRlc3RzL2FuaW1hdGlvbnMvYW5pbWF0aW9uLWFwaS0xLmh0bWwKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMC4uZGMwY2Q5YgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2FuaW1hdGlvbnMvYW5pbWF0aW9uLWFwaS0xLmh0bWwKQEAgLTAsMCArMSwxODUgQEAKKzxo
dG1sPgorPGhlYWQ+Cis8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uL2Zhc3QvanMvcmVz
b3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIj4KKzxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyIgbWVkaWE9
InNjcmVlbiI+CisgIEAtd2Via2l0LWtleWZyYW1lcyB0ZXN0MSB7CisgICAgZnJvbSB7IGxlZnQ6
IDEwcHg7IH0KKyAgICB0byB7IGxlZnQ6IDIwcHg7IH0KKyAgfQorICBALXdlYmtpdC1rZXlmcmFt
ZXMgdGVzdDIgeworICAgIDAlIHsgbGVmdDogMTBweDsgfQorICAgIDUwJSB7IGxlZnQ6IDMwcHg7
IH0KKyAgICAxMDAlIHsgbGVmdDogMjBweDsgfQorICB9CisgICNhIHsKKyAgICAtd2Via2l0LWFu
aW1hdGlvbi1uYW1lOiB0ZXN0MTsKKyAgICAtd2Via2l0LWFuaW1hdGlvbi1kdXJhdGlvbjogMXM7
CisgIH0KKyAgI2IgeworICAgIC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6IHRlc3QxOworICAgIC13
ZWJraXQtYW5pbWF0aW9uLWR1cmF0aW9uOiAyczsKKyAgICAtd2Via2l0LWFuaW1hdGlvbi1kZWxh
eTogM3M7CisgICAgLXdlYmtpdC1hbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiA0OworICAgIC13
ZWJraXQtYW5pbWF0aW9uLWRpcmVjdGlvbjogbm9ybWFsOworICAgIC13ZWJraXQtYW5pbWF0aW9u
LWZpbGwtbW9kZTogbm9uZTsKKyAgfQorICAjYyB7CisgICAgLXdlYmtpdC1hbmltYXRpb24tbmFt
ZTogdGVzdDI7CisgICAgLXdlYmtpdC1hbmltYXRpb24tZHVyYXRpb246IDVzOworICAgIC13ZWJr
aXQtYW5pbWF0aW9uLWRlbGF5OiAtMXM7CisgICAgLXdlYmtpdC1hbmltYXRpb24taXRlcmF0aW9u
LWNvdW50OiBpbmZpbml0ZTsKKyAgICAtd2Via2l0LWFuaW1hdGlvbi1kaXJlY3Rpb246IGFsdGVy
bmF0ZTsKKyAgICAtd2Via2l0LWFuaW1hdGlvbi1maWxsLW1vZGU6IGZvcndhcmRzOworICB9Cisg
ICNkIHsKKyAgICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiB0ZXN0MSwgdGVzdDI7CisgICAgLXdl
YmtpdC1hbmltYXRpb24tZHVyYXRpb246IDFzLCAyczsKKyAgICAtd2Via2l0LWFuaW1hdGlvbi1k
ZWxheTogMHMsIDFzOworICAgIC13ZWJraXQtYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogMTAs
IGluZmluaXRlOworICAgIC13ZWJraXQtYW5pbWF0aW9uLWRpcmVjdGlvbjogbm9ybWFsLCBhbHRl
cm5hdGU7CisgICAgLXdlYmtpdC1hbmltYXRpb24tZmlsbC1tb2RlOiBiYWNrd2FyZHMsIGJvdGg7
CisgIH0KKzwvc3R5bGU+Cis8c2NyaXB0IHNyYz0iLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVz
dC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8ZGl2IGlkPSJhIj48L2Rpdj4K
KzxkaXYgaWQ9ImIiPjwvZGl2PgorPGRpdiBpZD0iYyI+PC9kaXY+Cis8ZGl2IGlkPSJkIj48L2Rp
dj4KKzxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8
c2NyaXB0PgorCitkZXNjcmlwdGlvbigiVGhpcyB0ZXN0cyB0aGUgV2ViS2l0QW5pbWF0aW9uIGlu
dGVyZmFjZS4iKTsKKworc2hvdWxkQmVEZWZpbmVkKCJ3aW5kb3cuV2ViS2l0QW5pbWF0aW9uIik7
CitzaG91bGRCZURlZmluZWQoIndpbmRvdy5XZWJLaXRBbmltYXRpb25MaXN0Iik7CisKKy8qICoq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqICovCisKK2RlYnVn
KCIiKTsKK2RlYnVnKCJUZXN0IGFuIGFsbW9zdC1kZWZhdWx0IGFuaW1hdGlvbiIpOworCit2YXIg
YSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJhIik7Cit2YXIgYV9hbmltYXRpb25zID0gYS53
ZWJraXRHZXRBbmltYXRpb25zKCk7CisKK3Nob3VsZEJlKCJhX2FuaW1hdGlvbnMubGVuZ3RoIiwg
IjEiKTsKKwordmFyIGFfYW5pbWF0aW9uXzAgPSBhX2FuaW1hdGlvbnNbMF07CisKK3Nob3VsZEJl
RGVmaW5lZCgiYV9hbmltYXRpb25fMCIpOworZGVidWcoIiIpOworCitzaG91bGRCZSgiYV9hbmlt
YXRpb25fMC5uYW1lIiwgIid0ZXN0MSciKTsKK3Nob3VsZEJlKCJhX2FuaW1hdGlvbl8wLmR1cmF0
aW9uIiwgIjEiKTsKK3Nob3VsZEJlKCJhX2FuaW1hdGlvbl8wLmRlbGF5IiwgIjAiKTsKK3Nob3Vs
ZEJlKCJhX2FuaW1hdGlvbl8wLml0ZXJhdGlvbkNvdW50IiwgIjEiKTsKK3Nob3VsZEJlKCJhX2Fu
aW1hdGlvbl8wLnBhdXNlZCIsICJmYWxzZSIpOworc2hvdWxkQmUoImFfYW5pbWF0aW9uXzAuZW5k
ZWQiLCAiZmFsc2UiKTsKK3Nob3VsZEJlKCJhX2FuaW1hdGlvbl8wLmRpcmVjdGlvbiIsICJ3aW5k
b3cuV2ViS2l0QW5pbWF0aW9uLkRJUkVDVElPTl9OT1JNQUwiKTsKK3Nob3VsZEJlKCJhX2FuaW1h
dGlvbl8wLmZpbGxNb2RlIiwgIndpbmRvdy5XZWJLaXRBbmltYXRpb24uRklMTF9OT05FIik7CisK
Ky8qICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqICovCisK
K2RlYnVnKCIiKTsKK2RlYnVnKCJUZXN0IGEgc3BlY2lmaWVkIGFuaW1hdGlvbiIpOworCit2YXIg
YiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJiIik7Cit2YXIgYl9hbmltYXRpb25zID0gYi53
ZWJraXRHZXRBbmltYXRpb25zKCk7CisKK3Nob3VsZEJlKCJiX2FuaW1hdGlvbnMubGVuZ3RoIiwg
IjEiKTsKKwordmFyIGJfYW5pbWF0aW9uXzAgPSBiX2FuaW1hdGlvbnNbMF07CisKK3Nob3VsZEJl
RGVmaW5lZCgiYl9hbmltYXRpb25fMCIpOworZGVidWcoIiIpOworCitzaG91bGRCZSgiYl9hbmlt
YXRpb25fMC5uYW1lIiwgIid0ZXN0MSciKTsKK3Nob3VsZEJlKCJiX2FuaW1hdGlvbl8wLmR1cmF0
aW9uIiwgIjIiKTsKK3Nob3VsZEJlKCJiX2FuaW1hdGlvbl8wLmRlbGF5IiwgIjMiKTsKK3Nob3Vs
ZEJlKCJiX2FuaW1hdGlvbl8wLml0ZXJhdGlvbkNvdW50IiwgIjQiKTsKK3Nob3VsZEJlKCJiX2Fu
aW1hdGlvbl8wLnBhdXNlZCIsICJmYWxzZSIpOworc2hvdWxkQmUoImJfYW5pbWF0aW9uXzAuZW5k
ZWQiLCAiZmFsc2UiKTsKK3Nob3VsZEJlKCJiX2FuaW1hdGlvbl8wLmRpcmVjdGlvbiIsICJ3aW5k
b3cuV2ViS2l0QW5pbWF0aW9uLkRJUkVDVElPTl9OT1JNQUwiKTsKK3Nob3VsZEJlKCJiX2FuaW1h
dGlvbl8wLmZpbGxNb2RlIiwgIndpbmRvdy5XZWJLaXRBbmltYXRpb24uRklMTF9OT05FIik7CisK
Ky8qICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqICovCisK
K2RlYnVnKCIiKTsKK2RlYnVnKCJUZXN0IG5lZ2F0aXZlIGRlbGF5LCBmaWxsIG1vZGUsIGRpcmVj
dGlvbiBhbmQgaW5maW5pdGUgaXRlcmF0aW9ucyIpOworCit2YXIgYyA9IGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCJjIik7Cit2YXIgY19hbmltYXRpb25zID0gYy53ZWJraXRHZXRBbmltYXRpb25z
KCk7CisKK3Nob3VsZEJlKCJjX2FuaW1hdGlvbnMubGVuZ3RoIiwgIjEiKTsKKwordmFyIGNfYW5p
bWF0aW9uXzAgPSBjX2FuaW1hdGlvbnNbMF07CisKK3Nob3VsZEJlRGVmaW5lZCgiY19hbmltYXRp
b25fMCIpOworZGVidWcoIiIpOworCitzaG91bGRCZSgiY19hbmltYXRpb25fMC5uYW1lIiwgIid0
ZXN0MiciKTsKK3Nob3VsZEJlKCJjX2FuaW1hdGlvbl8wLmR1cmF0aW9uIiwgIjUiKTsKK3Nob3Vs
ZEJlKCJjX2FuaW1hdGlvbl8wLmRlbGF5IiwgIi0xIik7CitzaG91bGRCZSgiY19hbmltYXRpb25f
MC5pdGVyYXRpb25Db3VudCIsICJOdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFkiKTsKK3Nob3VsZEJl
KCJjX2FuaW1hdGlvbl8wLnBhdXNlZCIsICJmYWxzZSIpOworc2hvdWxkQmUoImNfYW5pbWF0aW9u
XzAuZW5kZWQiLCAiZmFsc2UiKTsKK3Nob3VsZEJlKCJjX2FuaW1hdGlvbl8wLmRpcmVjdGlvbiIs
ICJ3aW5kb3cuV2ViS2l0QW5pbWF0aW9uLkRJUkVDVElPTl9BTFRFUk5BVEUiKTsKK3Nob3VsZEJl
KCJjX2FuaW1hdGlvbl8wLmZpbGxNb2RlIiwgIndpbmRvdy5XZWJLaXRBbmltYXRpb24uRklMTF9G
T1JXQVJEUyIpOworCisvKiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKiAqLworCitkZWJ1ZygiIik7CitkZWJ1ZygiVGVzdCBtdWx0aXBsZSBhbmltYXRpb25z
Iik7CisKK3ZhciBkID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImQiKTsKK3ZhciBkX2FuaW1h
dGlvbnMgPSBkLndlYmtpdEdldEFuaW1hdGlvbnMoKTsKKworc2hvdWxkQmUoImRfYW5pbWF0aW9u
cy5sZW5ndGgiLCAiMiIpOworCit2YXIgZF9hbmltYXRpb25fMCA9IGRfYW5pbWF0aW9uc1swXTsK
Kworc2hvdWxkQmVEZWZpbmVkKCJkX2FuaW1hdGlvbl8wIik7CitkZWJ1ZygiIik7CisKK3Nob3Vs
ZEJlKCJkX2FuaW1hdGlvbl8wLm5hbWUiLCAiJ3Rlc3QxJyIpOworc2hvdWxkQmUoImRfYW5pbWF0
aW9uXzAuZHVyYXRpb24iLCAiMSIpOworc2hvdWxkQmUoImRfYW5pbWF0aW9uXzAuZGVsYXkiLCAi
MCIpOworc2hvdWxkQmUoImRfYW5pbWF0aW9uXzAuaXRlcmF0aW9uQ291bnQiLCAiMTAiKTsKK3No
b3VsZEJlKCJkX2FuaW1hdGlvbl8wLnBhdXNlZCIsICJmYWxzZSIpOworc2hvdWxkQmUoImRfYW5p
bWF0aW9uXzAuZW5kZWQiLCAiZmFsc2UiKTsKK3Nob3VsZEJlKCJkX2FuaW1hdGlvbl8wLmRpcmVj
dGlvbiIsICJ3aW5kb3cuV2ViS2l0QW5pbWF0aW9uLkRJUkVDVElPTl9OT1JNQUwiKTsKK3Nob3Vs
ZEJlKCJkX2FuaW1hdGlvbl8wLmZpbGxNb2RlIiwgIndpbmRvdy5XZWJLaXRBbmltYXRpb24uRklM
TF9CQUNLV0FSRFMiKTsKKwordmFyIGRfYW5pbWF0aW9uXzEgPSBkX2FuaW1hdGlvbnNbMV07CisK
K3Nob3VsZEJlRGVmaW5lZCgiZF9hbmltYXRpb25fMSIpOworZGVidWcoIiIpOworCitzaG91bGRC
ZSgiZF9hbmltYXRpb25fMS5uYW1lIiwgIid0ZXN0MiciKTsKK3Nob3VsZEJlKCJkX2FuaW1hdGlv
bl8xLmR1cmF0aW9uIiwgIjIiKTsKK3Nob3VsZEJlKCJkX2FuaW1hdGlvbl8xLmRlbGF5IiwgIjEi
KTsKK3Nob3VsZEJlKCJkX2FuaW1hdGlvbl8xLml0ZXJhdGlvbkNvdW50IiwgIk51bWJlci5QT1NJ
VElWRV9JTkZJTklUWSIpOworc2hvdWxkQmUoImRfYW5pbWF0aW9uXzEucGF1c2VkIiwgImZhbHNl
Iik7CitzaG91bGRCZSgiZF9hbmltYXRpb25fMS5lbmRlZCIsICJmYWxzZSIpOworc2hvdWxkQmUo
ImRfYW5pbWF0aW9uXzEuZGlyZWN0aW9uIiwgIndpbmRvdy5XZWJLaXRBbmltYXRpb24uRElSRUNU
SU9OX0FMVEVSTkFURSIpOworc2hvdWxkQmUoImRfYW5pbWF0aW9uXzEuZmlsbE1vZGUiLCAid2lu
ZG93LldlYktpdEFuaW1hdGlvbi5GSUxMX0JPVEgiKTsKKworLyogKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKiogKi8KKworZGVidWcoIiIpOworZGVidWcoIlRl
c3QgZWxlbWVudCB3aXRoIG5vIGFuaW1hdGlvbnMiKTsKKwordmFyIGUgPSBkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgiZGVzY3JpcHRpb24iKTsKK3ZhciBlX2FuaW1hdGlvbnMgPSBlLndlYmtpdEdl
dEFuaW1hdGlvbnMoKTsKKworc2hvdWxkQmVOdWxsKCJlX2FuaW1hdGlvbnMiKTsKKworZGVidWco
IiIpOworc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKKworPC9zY3JpcHQ+Cis8c2NyaXB0IHNy
Yz0iLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9k
eT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy93aW5k
b3ctcHJvcGVydGllcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cv
d2luZG93LXByb3BlcnRpZXMtZXhwZWN0ZWQudHh0CmluZGV4IDY1ODMxYzYuLmQ2Zjc3NDggMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy93aW5kb3ctcHJvcGVydGllcy1l
eHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L3dpbmRvdy1wcm9w
ZXJ0aWVzLWV4cGVjdGVkLnR4dApAQCAtMTIzLDYgKzEyMyw3IEBAIHdpbmRvdy5BdWRpby5wcm90
b3R5cGUuc2V0QXR0cmlidXRlIFtmdW5jdGlvbl0KIHdpbmRvdy5BdWRpby5wcm90b3R5cGUuc2V0
QXR0cmlidXRlTlMgW2Z1bmN0aW9uXQogd2luZG93LkF1ZGlvLnByb3RvdHlwZS5zZXRBdHRyaWJ1
dGVOb2RlIFtmdW5jdGlvbl0KIHdpbmRvdy5BdWRpby5wcm90b3R5cGUuc2V0QXR0cmlidXRlTm9k
ZU5TIFtmdW5jdGlvbl0KK3dpbmRvdy5BdWRpby5wcm90b3R5cGUud2Via2l0R2V0QW5pbWF0aW9u
cyBbZnVuY3Rpb25dCiB3aW5kb3cuQXVkaW8ucHJvdG90eXBlLndlYmtpdE1hdGNoZXNTZWxlY3Rv
ciBbZnVuY3Rpb25dCiB3aW5kb3cuQXVkaW8ucHJvdG90eXBlLndlYmtpdFJlcXVlc3RGdWxsU2Ny
ZWVuIFtmdW5jdGlvbl0KIHdpbmRvdy5CZWZvcmVMb2FkRXZlbnQgW29iamVjdCBCZWZvcmVMb2Fk
RXZlbnRDb25zdHJ1Y3Rvcl0KQEAgLTc4NCw2ICs3ODUsNyBAQCB3aW5kb3cuRWxlbWVudC5wcm90
b3R5cGUuc2V0QXR0cmlidXRlIFtmdW5jdGlvbl0KIHdpbmRvdy5FbGVtZW50LnByb3RvdHlwZS5z
ZXRBdHRyaWJ1dGVOUyBbZnVuY3Rpb25dCiB3aW5kb3cuRWxlbWVudC5wcm90b3R5cGUuc2V0QXR0
cmlidXRlTm9kZSBbZnVuY3Rpb25dCiB3aW5kb3cuRWxlbWVudC5wcm90b3R5cGUuc2V0QXR0cmli
dXRlTm9kZU5TIFtmdW5jdGlvbl0KK3dpbmRvdy5FbGVtZW50LnByb3RvdHlwZS53ZWJraXRHZXRB
bmltYXRpb25zIFtmdW5jdGlvbl0KIHdpbmRvdy5FbGVtZW50LnByb3RvdHlwZS53ZWJraXRNYXRj
aGVzU2VsZWN0b3IgW2Z1bmN0aW9uXQogd2luZG93LkVsZW1lbnQucHJvdG90eXBlLndlYmtpdFJl
cXVlc3RGdWxsU2NyZWVuIFtmdW5jdGlvbl0KIHdpbmRvdy5FbnRpdHkgW29iamVjdCBFbnRpdHlD
b25zdHJ1Y3Rvcl0KQEAgLTE5NjMsOCArMTk2NSwyNyBAQCB3aW5kb3cuVHlwZUVycm9yIFtmdW5j
dGlvbl0KIHdpbmRvdy5VSUV2ZW50IFtvYmplY3QgVUlFdmVudENvbnN0cnVjdG9yXQogd2luZG93
LlVJRXZlbnQucHJvdG90eXBlIFtwcmludGVkIGFib3ZlIGFzIHdpbmRvdy5FdmVudC5wcm90b3R5
cGVdCiB3aW5kb3cuVVJJRXJyb3IgW2Z1bmN0aW9uXQord2luZG93LldlYktpdEFuaW1hdGlvbiBb
b2JqZWN0IFdlYktpdEFuaW1hdGlvbkNvbnN0cnVjdG9yXQord2luZG93LldlYktpdEFuaW1hdGlv
bi5ESVJFQ1RJT05fQUxURVJOQVRFIFtudW1iZXJdCit3aW5kb3cuV2ViS2l0QW5pbWF0aW9uLkRJ
UkVDVElPTl9OT1JNQUwgW251bWJlcl0KK3dpbmRvdy5XZWJLaXRBbmltYXRpb24uRklMTF9CQUNL
V0FSRFMgW251bWJlcl0KK3dpbmRvdy5XZWJLaXRBbmltYXRpb24uRklMTF9CT1RIIFtudW1iZXJd
Cit3aW5kb3cuV2ViS2l0QW5pbWF0aW9uLkZJTExfRk9SV0FSRFMgW251bWJlcl0KK3dpbmRvdy5X
ZWJLaXRBbmltYXRpb24uRklMTF9OT05FIFtudW1iZXJdCit3aW5kb3cuV2ViS2l0QW5pbWF0aW9u
LnByb3RvdHlwZSBbb2JqZWN0IFdlYktpdEFuaW1hdGlvblByb3RvdHlwZV0KK3dpbmRvdy5XZWJL
aXRBbmltYXRpb24ucHJvdG90eXBlLkRJUkVDVElPTl9BTFRFUk5BVEUgW251bWJlcl0KK3dpbmRv
dy5XZWJLaXRBbmltYXRpb24ucHJvdG90eXBlLkRJUkVDVElPTl9OT1JNQUwgW251bWJlcl0KK3dp
bmRvdy5XZWJLaXRBbmltYXRpb24ucHJvdG90eXBlLkZJTExfQkFDS1dBUkRTIFtudW1iZXJdCit3
aW5kb3cuV2ViS2l0QW5pbWF0aW9uLnByb3RvdHlwZS5GSUxMX0JPVEggW251bWJlcl0KK3dpbmRv
dy5XZWJLaXRBbmltYXRpb24ucHJvdG90eXBlLkZJTExfRk9SV0FSRFMgW251bWJlcl0KK3dpbmRv
dy5XZWJLaXRBbmltYXRpb24ucHJvdG90eXBlLkZJTExfTk9ORSBbbnVtYmVyXQord2luZG93Lldl
YktpdEFuaW1hdGlvbi5wcm90b3R5cGUucGF1c2UgW2Z1bmN0aW9uXQord2luZG93LldlYktpdEFu
aW1hdGlvbi5wcm90b3R5cGUucGxheSBbZnVuY3Rpb25dCiB3aW5kb3cuV2ViS2l0QW5pbWF0aW9u
RXZlbnQgW29iamVjdCBXZWJLaXRBbmltYXRpb25FdmVudENvbnN0cnVjdG9yXQogd2luZG93Lldl
YktpdEFuaW1hdGlvbkV2ZW50LnByb3RvdHlwZSBbcHJpbnRlZCBhYm92ZSBhcyB3aW5kb3cuRXZl
bnQucHJvdG90eXBlXQord2luZG93LldlYktpdEFuaW1hdGlvbkxpc3QgW29iamVjdCBXZWJLaXRB
bmltYXRpb25MaXN0Q29uc3RydWN0b3JdCit3aW5kb3cuV2ViS2l0QW5pbWF0aW9uTGlzdC5wcm90
b3R5cGUgW29iamVjdCBXZWJLaXRBbmltYXRpb25MaXN0UHJvdG90eXBlXQord2luZG93LldlYktp
dEFuaW1hdGlvbkxpc3QucHJvdG90eXBlLml0ZW0gW2Z1bmN0aW9uXQogd2luZG93LldlYktpdENT
U0tleWZyYW1lUnVsZSBbb2JqZWN0IFdlYktpdENTU0tleWZyYW1lUnVsZUNvbnN0cnVjdG9yXQog
d2luZG93LldlYktpdENTU0tleWZyYW1lUnVsZS5wcm90b3R5cGUgW3ByaW50ZWQgYWJvdmUgYXMg
d2luZG93LkNTU1J1bGUucHJvdG90eXBlXQogd2luZG93LldlYktpdENTU0tleWZyYW1lc1J1bGUg
W29iamVjdCBXZWJLaXRDU1NLZXlmcmFtZXNSdWxlQ29uc3RydWN0b3JdCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvd2luZG93LXByb3BlcnR5LWRlc2NyaXB0b3JzLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy93aW5kb3ctcHJvcGVydHkt
ZGVzY3JpcHRvcnMtZXhwZWN0ZWQudHh0CmluZGV4IDY1MTQ0ZjYuLjZjZTc0OTkgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy93aW5kb3ctcHJvcGVydHktZGVzY3JpcHRv
cnMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy93aW5kb3ct
cHJvcGVydHktZGVzY3JpcHRvcnMtZXhwZWN0ZWQudHh0CkBAIC0zMTAsNyArMzEwLDkgQEAgUEFT
UyB0eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih3aW5kb3csICdUaW1lUmFu
Z2VzJykgaXMgJ29iamVjdCcKIFBBU1MgdHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2Ny
aXB0b3Iod2luZG93LCAnVHlwZUVycm9yJykgaXMgJ29iamVjdCcKIFBBU1MgdHlwZW9mIE9iamVj
dC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iod2luZG93LCAnVUlFdmVudCcpIGlzICdvYmplY3Qn
CiBQQVNTIHR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHdpbmRvdywgJ1VS
SUVycm9yJykgaXMgJ29iamVjdCcKK1BBU1MgdHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURl
c2NyaXB0b3Iod2luZG93LCAnV2ViS2l0QW5pbWF0aW9uJykgaXMgJ29iamVjdCcKIFBBU1MgdHlw
ZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iod2luZG93LCAnV2ViS2l0QW5pbWF0
aW9uRXZlbnQnKSBpcyAnb2JqZWN0JworUEFTUyB0eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5
RGVzY3JpcHRvcih3aW5kb3csICdXZWJLaXRBbmltYXRpb25MaXN0JykgaXMgJ29iamVjdCcKIFBB
U1MgdHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iod2luZG93LCAnV2ViS2l0
Q1NTS2V5ZnJhbWVSdWxlJykgaXMgJ29iamVjdCcKIFBBU1MgdHlwZW9mIE9iamVjdC5nZXRPd25Q
cm9wZXJ0eURlc2NyaXB0b3Iod2luZG93LCAnV2ViS2l0Q1NTS2V5ZnJhbWVzUnVsZScpIGlzICdv
YmplY3QnCiBQQVNTIHR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHdpbmRv
dywgJ1dlYktpdENTU01hdHJpeCcpIGlzICdvYmplY3QnCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9mYXN0L2RvbS9wcm90b3R5cGUtaW5oZXJpdGFuY2UtMi1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9mYXN0L2RvbS9wcm90b3R5cGUtaW5oZXJpdGFuY2UtMi1leHBlY3RlZC50eHQKaW5kZXgg
NDg0NjBmMS4uNDFlYjAxNSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vcHJvdG90
eXBlLWluaGVyaXRhbmNlLTItZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9t
L3Byb3RvdHlwZS1pbmhlcml0YW5jZS0yLWV4cGVjdGVkLnR4dApAQCAtNDI4LDYgKzQyOCw4IEBA
IE5ldmVyIGZvdW5kIFNWR1ZpZXdFbGVtZW50CiBOZXZlciBmb3VuZCBTaGFyZWRXb3JrZXIKIE5l
dmVyIGZvdW5kIFN0eWxlU2hlZXQKIE5ldmVyIGZvdW5kIFRleHRNZXRyaWNzCitOZXZlciBmb3Vu
ZCBXZWJLaXRBbmltYXRpb24KK05ldmVyIGZvdW5kIFdlYktpdEFuaW1hdGlvbkxpc3QKIE5ldmVy
IGZvdW5kIFdlYktpdENTU01hdHJpeAogTmV2ZXIgZm91bmQgV2ViS2l0Q1NTVHJhbnNmb3JtVmFs
dWUKIE5ldmVyIGZvdW5kIFdlYktpdFBvaW50CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0
L2RvbS9wcm90b3R5cGUtaW5oZXJpdGFuY2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFz
dC9kb20vcHJvdG90eXBlLWluaGVyaXRhbmNlLWV4cGVjdGVkLnR4dAppbmRleCA3OGEwMGFmLi5j
YmI1Nzc0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9wcm90b3R5cGUtaW5oZXJp
dGFuY2UtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL3Byb3RvdHlwZS1p
bmhlcml0YW5jZS1leHBlY3RlZC50eHQKQEAgLTYxMyw4ICs2MTMsMTIgQEAgUEFTUyBpbm5lci5V
SUV2ZW50LmlzSW5uZXIgaXMgdHJ1ZQogUEFTUyBpbm5lci5VSUV2ZW50LmNvbnN0cnVjdG9yLmlz
SW5uZXIgaXMgdHJ1ZQogUEFTUyBpbm5lci5VUklFcnJvci5pc0lubmVyIGlzIHRydWUKIFBBU1Mg
aW5uZXIuVVJJRXJyb3IuY29uc3RydWN0b3IuaXNJbm5lciBpcyB0cnVlCitQQVNTIGlubmVyLldl
YktpdEFuaW1hdGlvbi5pc0lubmVyIGlzIHRydWUKK1BBU1MgaW5uZXIuV2ViS2l0QW5pbWF0aW9u
LmNvbnN0cnVjdG9yLmlzSW5uZXIgaXMgdHJ1ZQogUEFTUyBpbm5lci5XZWJLaXRBbmltYXRpb25F
dmVudC5pc0lubmVyIGlzIHRydWUKIFBBU1MgaW5uZXIuV2ViS2l0QW5pbWF0aW9uRXZlbnQuY29u
c3RydWN0b3IuaXNJbm5lciBpcyB0cnVlCitQQVNTIGlubmVyLldlYktpdEFuaW1hdGlvbkxpc3Qu
aXNJbm5lciBpcyB0cnVlCitQQVNTIGlubmVyLldlYktpdEFuaW1hdGlvbkxpc3QuY29uc3RydWN0
b3IuaXNJbm5lciBpcyB0cnVlCiBQQVNTIGlubmVyLldlYktpdENTU0tleWZyYW1lUnVsZS5pc0lu
bmVyIGlzIHRydWUKIFBBU1MgaW5uZXIuV2ViS2l0Q1NTS2V5ZnJhbWVSdWxlLmNvbnN0cnVjdG9y
LmlzSW5uZXIgaXMgdHJ1ZQogUEFTUyBpbm5lci5XZWJLaXRDU1NLZXlmcmFtZXNSdWxlLmlzSW5u
ZXIgaXMgdHJ1ZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9qcy9nbG9iYWwtY29uc3Ry
dWN0b3JzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvanMvZ2xvYmFsLWNvbnN0cnVj
dG9ycy1leHBlY3RlZC50eHQKaW5kZXggZThkYWZmOS4uNTI3Zjc0ZCAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvZmFzdC9qcy9nbG9iYWwtY29uc3RydWN0b3JzLWV4cGVjdGVkLnR4dAorKysgYi9M
YXlvdXRUZXN0cy9mYXN0L2pzL2dsb2JhbC1jb25zdHJ1Y3RvcnMtZXhwZWN0ZWQudHh0CkBAIC0y
OTEsNyArMjkxLDkgQEAgUEFTUyBUZXh0RXZlbnQudG9TdHJpbmcoKSBpcyAnW29iamVjdCBUZXh0
RXZlbnRDb25zdHJ1Y3Rvcl0nCiBQQVNTIFRleHRNZXRyaWNzLnRvU3RyaW5nKCkgaXMgJ1tvYmpl
Y3QgVGV4dE1ldHJpY3NDb25zdHJ1Y3Rvcl0nCiBQQVNTIFRpbWVSYW5nZXMudG9TdHJpbmcoKSBp
cyAnW29iamVjdCBUaW1lUmFuZ2VzQ29uc3RydWN0b3JdJwogUEFTUyBVSUV2ZW50LnRvU3RyaW5n
KCkgaXMgJ1tvYmplY3QgVUlFdmVudENvbnN0cnVjdG9yXScKK1BBU1MgV2ViS2l0QW5pbWF0aW9u
LnRvU3RyaW5nKCkgaXMgJ1tvYmplY3QgV2ViS2l0QW5pbWF0aW9uQ29uc3RydWN0b3JdJwogUEFT
UyBXZWJLaXRBbmltYXRpb25FdmVudC50b1N0cmluZygpIGlzICdbb2JqZWN0IFdlYktpdEFuaW1h
dGlvbkV2ZW50Q29uc3RydWN0b3JdJworUEFTUyBXZWJLaXRBbmltYXRpb25MaXN0LnRvU3RyaW5n
KCkgaXMgJ1tvYmplY3QgV2ViS2l0QW5pbWF0aW9uTGlzdENvbnN0cnVjdG9yXScKIFBBU1MgV2Vi
S2l0Q1NTS2V5ZnJhbWVSdWxlLnRvU3RyaW5nKCkgaXMgJ1tvYmplY3QgV2ViS2l0Q1NTS2V5ZnJh
bWVSdWxlQ29uc3RydWN0b3JdJwogUEFTUyBXZWJLaXRDU1NLZXlmcmFtZXNSdWxlLnRvU3RyaW5n
KCkgaXMgJ1tvYmplY3QgV2ViS2l0Q1NTS2V5ZnJhbWVzUnVsZUNvbnN0cnVjdG9yXScKIFBBU1Mg
V2ViS2l0Q1NTTWF0cml4LnRvU3RyaW5nKCkgaXMgJ1tvYmplY3QgV2ViS2l0Q1NTTWF0cml4Q29u
c3RydWN0b3JdJwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQW5kcm9pZC5kZXJpdmVkLmpz
Y2JpbmRpbmdzLm1rIGIvU291cmNlL1dlYkNvcmUvQW5kcm9pZC5kZXJpdmVkLmpzY2JpbmRpbmdz
Lm1rCmluZGV4IDZkMDY0YWUuLjA3ZGRjMmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0Fu
ZHJvaWQuZGVyaXZlZC5qc2NiaW5kaW5ncy5taworKysgYi9Tb3VyY2UvV2ViQ29yZS9BbmRyb2lk
LmRlcml2ZWQuanNjYmluZGluZ3MubWsKQEAgLTI5OCw2ICsyOTgsOCBAQCBHRU4gOj0gXAogICAg
ICQoaW50ZXJtZWRpYXRlcykvcGFnZS9KU05hdmlnYXRvci5oIFwKICAgICAkKGludGVybWVkaWF0
ZXMpL3BhZ2UvSlNQb3NpdGlvbkVycm9yLmggXAogICAgICQoaW50ZXJtZWRpYXRlcykvcGFnZS9K
U1NjcmVlbi5oIFwKKyAgICAkKGludGVybWVkaWF0ZXMpL3BhZ2UvSlNXZWJLaXRBbmltYXRpb24u
aCBcCisgICAgJChpbnRlcm1lZGlhdGVzKS9wYWdlL0pTV2ViS2l0QW5pbWF0aW9uTGlzdC5oIFwK
ICAgICAkKGludGVybWVkaWF0ZXMpL3BhZ2UvSlNXZWJLaXRQb2ludC5oIFwKICAgICAkKGludGVy
bWVkaWF0ZXMpL3BhZ2UvSlNXb3JrZXJOYXZpZ2F0b3IuaAogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9BbmRyb2lkLmRlcml2ZWQudjhiaW5kaW5ncy5tayBiL1NvdXJjZS9XZWJDb3JlL0Fu
ZHJvaWQuZGVyaXZlZC52OGJpbmRpbmdzLm1rCmluZGV4IDUyNGUyOWEuLjVhMGZlY2UgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0FuZHJvaWQuZGVyaXZlZC52OGJpbmRpbmdzLm1rCisrKyBi
L1NvdXJjZS9XZWJDb3JlL0FuZHJvaWQuZGVyaXZlZC52OGJpbmRpbmdzLm1rCkBAIC0yNzksNiAr
Mjc5LDggQEAgR0VOIDo9IFwKICAgICAkKGludGVybWVkaWF0ZXMpL2JpbmRpbmdzL1Y4TmF2aWdh
dG9yLmggXAogICAgICQoaW50ZXJtZWRpYXRlcykvYmluZGluZ3MvVjhQb3NpdGlvbkVycm9yLmgg
XAogICAgICQoaW50ZXJtZWRpYXRlcykvYmluZGluZ3MvVjhTY3JlZW4uaCBcCisgICAgJChpbnRl
cm1lZGlhdGVzKS9iaW5kaW5ncy9WOFdlYktpdEFuaW1hdGlvbi5oIFwKKyAgICAkKGludGVybWVk
aWF0ZXMpL2JpbmRpbmdzL1Y4V2ViS2l0QW5pbWF0aW9uTGlzdC5oIFwKICAgICAkKGludGVybWVk
aWF0ZXMpL2JpbmRpbmdzL1Y4V2ViS2l0UG9pbnQuaCBcCiAgICAgJChpbnRlcm1lZGlhdGVzKS9i
aW5kaW5ncy9WOFdvcmtlck5hdmlnYXRvci5oCiAkKEdFTik6IFBSSVZBVEVfUEFUSCA6PSAkKExP
Q0FMX1BBVEgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9BbmRyb2lkLm1rIGIvU291cmNl
L1dlYkNvcmUvQW5kcm9pZC5tawppbmRleCA5ODU5OGZlLi4xNThlNTkzIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9BbmRyb2lkLm1rCisrKyBiL1NvdXJjZS9XZWJDb3JlL0FuZHJvaWQubWsK
QEAgLTQ0OSw2ICs0NDksOCBAQCBMT0NBTF9TUkNfRklMRVMgOj0gJChMT0NBTF9TUkNfRklMRVMp
IFwKIAlwYWdlL1NwZWVjaElucHV0UmVzdWx0LmNwcCBcCiAJcGFnZS9TdXNwZW5kYWJsZVRpbWVy
LmNwcCBcCiAJcGFnZS9Vc2VyQ29udGVudFVSTFBhdHRlcm4uY3BwIFwKKwlwYWdlL1dlYktpdEFu
aW1hdGlvbi5jcHAgXAorCXBhZ2UvV2ViS2l0QW5pbWF0aW9uTGlzdC5jcHAgXAogCXBhZ2UvV2lu
ZG93RmVhdHVyZXMuY3BwIFwKIAlwYWdlL1dvcmtlck5hdmlnYXRvci5jcHAgXAogCVwKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL0FuZHJvaWQudjhiaW5kaW5ncy5tayBiL1NvdXJjZS9XZWJD
b3JlL0FuZHJvaWQudjhiaW5kaW5ncy5tawppbmRleCA2MmNjY2Y1Li43MDA4OTBiIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9BbmRyb2lkLnY4YmluZGluZ3MubWsKKysrIGIvU291cmNlL1dl
YkNvcmUvQW5kcm9pZC52OGJpbmRpbmdzLm1rCkBAIC0xNjQsNiArMTY0LDcgQEAgTE9DQUxfU1JD
X0ZJTEVTICs9IFwKIAliaW5kaW5ncy92OC9jdXN0b20vVjhTdHlsZVNoZWV0Q3VzdG9tLmNwcCBc
CiAJYmluZGluZ3MvdjgvY3VzdG9tL1Y4U3R5bGVTaGVldExpc3RDdXN0b20uY3BwIFwKIAliaW5k
aW5ncy92OC9jdXN0b20vVjhUcmVlV2Fsa2VyQ3VzdG9tLmNwcCBcCisJYmluZGluZ3MvdjgvY3Vz
dG9tL1Y4V2ViS2l0QW5pbWF0aW9uQ3VzdG9tLmNwcCBcCiAJYmluZGluZ3MvdjgvY3VzdG9tL1Y4
V2ViS2l0Q1NTTWF0cml4Q29uc3RydWN0b3IuY3BwIFwKIAliaW5kaW5ncy92OC9jdXN0b20vVjhX
ZWJLaXRQb2ludENvbnN0cnVjdG9yLmNwcCBcCiAJYmluZGluZ3MvdjgvY3VzdG9tL1Y4V29ya2Vy
Q29udGV4dEN1c3RvbS5jcHAgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0
cy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAppbmRleCA0OGYyMzdhLi43MTY4
MzViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dApAQCAtMzQzLDYgKzM0Myw4IEBAIFNFVChXZWJDb3Jl
X0lETF9GSUxFUwogICAgIHBhZ2UvU3BlZWNoSW5wdXRFdmVudC5pZGwKICAgICBwYWdlL1NwZWVj
aElucHV0UmVzdWx0LmlkbAogICAgIHBhZ2UvU3BlZWNoSW5wdXRSZXN1bHRMaXN0LmlkbAorICAg
IHBhZ2UvV2ViS2l0QW5pbWF0aW9uLmlkbAorICAgIHBhZ2UvV2ViS2l0QW5pbWF0aW9uTGlzdC5p
ZGwKICAgICBwYWdlL1dlYktpdFBvaW50LmlkbAogICAgIHBhZ2UvV29ya2VyTmF2aWdhdG9yLmlk
bAogCkBAIC01NzQsNiArNTc2LDggQEAgU0VUKFdlYkNvcmVfU09VUkNFUwogICAgIGJpbmRpbmdz
L2pzL0pTVWludDE2QXJyYXlDdXN0b20uY3BwIAogICAgIGJpbmRpbmdzL2pzL0pTVWludDMyQXJy
YXlDdXN0b20uY3BwCiAgICAgYmluZGluZ3MvanMvSlNVaW50OEFycmF5Q3VzdG9tLmNwcAorICAg
IGJpbmRpbmdzL2pzL0pTV2ViS2l0QW5pbWF0aW9uQ3VzdG9tLmNwcAorICAgIGJpbmRpbmdzL2pz
L0pTV2ViS2l0QW5pbWF0aW9uTGlzdEN1c3RvbS5jcHAKICAgICBiaW5kaW5ncy9qcy9KU1dlYktp
dENTU0tleWZyYW1lUnVsZUN1c3RvbS5jcHAKICAgICBiaW5kaW5ncy9qcy9KU1dlYktpdENTU0tl
eWZyYW1lc1J1bGVDdXN0b20uY3BwCiAgICAgYmluZGluZ3MvanMvSlNXZWJLaXRDU1NNYXRyaXhD
dXN0b20uY3BwCkBAIC0xMTczLDYgKzExNzcsOCBAQCBTRVQoV2ViQ29yZV9TT1VSQ0VTCiAgICAg
cGFnZS9TcGF0aWFsTmF2aWdhdGlvbi5jcHAKICAgICBwYWdlL1N1c3BlbmRhYmxlVGltZXIuY3Bw
CiAgICAgcGFnZS9Vc2VyQ29udGVudFVSTFBhdHRlcm4uY3BwCisgICAgcGFnZS9XZWJLaXRBbmlt
YXRpb24uY3BwCisgICAgcGFnZS9XZWJLaXRBbmltYXRpb25MaXN0LmNwcAogICAgIHBhZ2UvV2lu
ZG93RmVhdHVyZXMuY3BwCiAgICAgcGFnZS9Xb3JrZXJOYXZpZ2F0b3IuY3BwCiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpp
bmRleCAxODVmNzg2Li5iMDIwMWMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VM
b2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsOTYgQEAKKzIwMTEt
MDMtMTAgIERlYW4gSmFja3NvbiAgPGRpbm9AYXBwbGUuY29tPgorCisgICAgICAgIFJldmlld2Vk
IGJ5IFNpbW9uIEZyYXNlciBhbmQgQ2hyaXMgTWFycmluLgorCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01NDE1MQorICAgICAgICBJbXBsZW1lbnQgYW4g
QVBJIHRvIHBsYXkvcGF1c2Uvc2NydWIgYW5pbWF0aW9ucworCisgICAgICAgIFRoaXMgaXMgUGFy
dCAxLiBBZGRzIHRoZSBuZXcgV2ViS2l0QW5pbWF0aW9uIGFuZCBXZWJLaXRBbmltYXRpb25MaXN0
CisgICAgICAgIEFQSXMsIGV4cG9zZWQgdmlhIEVsZW1lbnQuZ2V0V2ViS2l0QW5pbWF0aW9ucygp
LiBUaGlzIGZpcnN0IHBhc3MKKyAgICAgICAgaXMgYSByZWFkLW9ubHkgQVBJIC0gYSBzdWJzZXF1
ZW50IGNvbW1pdCB3aWxsIGFkZCB0aGUgYWJpbGl0eQorICAgICAgICB0byBzY3J1YiBhbmltYXRp
b25zLgorCisgICAgICAgIFRlc3Q6IGFuaW1hdGlvbnMvYW5pbWF0aW9uLWFwaS0xLmh0bWwKKwor
ICAgICAgICAqIEFuZHJvaWQuZGVyaXZlZC5qc2NiaW5kaW5ncy5tazoKKyAgICAgICAgKiBBbmRy
b2lkLmRlcml2ZWQudjhiaW5kaW5ncy5tazoKKyAgICAgICAgKiBBbmRyb2lkLm1rOgorICAgICAg
ICAqIEFuZHJvaWQudjhiaW5kaW5ncy5tazoKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAg
ICAgICAgKiBDb2RlR2VuZXJhdG9ycy5wcmk6CisgICAgICAgICogRGVyaXZlZFNvdXJjZXMuY3Bw
OgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLm1ha2U6CisgICAgICAgICogR05VbWFrZWZpbGUu
YW06CisgICAgICAgICogV2ViQ29yZS5neXBpOgorICAgICAgICAqIFdlYkNvcmUucHJvOgorICAg
ICAgICAqIFdlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qOgorICAgICAgICAqIFdlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgLSBBbGwgYnVpbGQgc2V0dGluZ3Mg
dXBkYXRlZCBmb3IgbmV3IGZpbGVzCisgICAgICAgICogYmluZGluZ3MvanMvSlNCaW5kaW5nc0Fs
bEluT25lLmNwcDoKKyAgICAgICAgLSBJbmNsdWRlIG5ldyBjdXN0b20gZmlsZXMKKyAgICAgICAg
KiBiaW5kaW5ncy9qcy9KU1dlYktpdEFuaW1hdGlvbkN1c3RvbS5jcHA6IEFkZGVkLgorICAgICAg
ICAoV2ViQ29yZTo6SlNXZWJLaXRBbmltYXRpb246Oml0ZXJhdGlvbkNvdW50KToKKyAgICAgICAg
LSBDdXN0b20gcHJvcGVydHkgZ2V0dGVyIHNvIHRoYXQgd2UgY2FuIHJldHVybiBJTkZJTklUWQor
ICAgICAgICAqIGJpbmRpbmdzL2pzL0pTV2ViS2l0QW5pbWF0aW9uTGlzdEN1c3RvbS5jcHA6IEFk
ZGVkLgorICAgICAgICAoV2ViQ29yZTo6SlNXZWJLaXRBbmltYXRpb25MaXN0OjptYXJrQ2hpbGRy
ZW4pOgorICAgICAgICAtIE1ha2Ugc3VyZSBXZWJLaXRBbmltYXRpb25zIGFyZSBtYXJrZWQKKyAg
ICAgICAgKiBiaW5kaW5ncy92OC9jdXN0b20vVjhXZWJLaXRBbmltYXRpb25DdXN0b20uY3BwOiBB
ZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlY4V2Via2l0QW5pbWF0aW9uOjppdGVyYXRpb25Db3Vu
dEFjY2Vzc29yR2V0dGVyKToKKyAgICAgICAgLSBDdXN0b20gcHJvcGVydHkgZ2V0dGVyIHNvIHRo
YXQgd2UgY2FuIHJldHVybiBJTkZJTklUWQorICAgICAgICAqIGRvbS9FbGVtZW50LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkVsZW1lbnQ6OndlYmtpdEdldEFuaW1hdGlvbnMpOgorICAgICAgICAq
IGRvbS9FbGVtZW50Lmg6CisgICAgICAgICogZG9tL0VsZW1lbnQuaWRsOgorICAgICAgICAtIE5l
dyBBUEkgZW50cnkgcG9pbnQKKyAgICAgICAgKiBwYWdlL0RPTVdpbmRvdy5pZGw6CisgICAgICAg
IC0gQ29uc3RydWN0b3IgZGVmaW5pdGlvbnMgZm9yIFdlYktpdEFuaW1hdGlvbiBhbmQgV2ViS2l0
QW5pbWF0aW9uTGlzdAorICAgICAgICAqIHBhZ2UvYW5pbWF0aW9uL0FuaW1hdGlvbkJhc2UuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6QW5pbWF0aW9uQmFzZTo6fkFuaW1hdGlvbkJhc2UpOgorICAg
ICAgICAtIFNpbmNlIEFuaW1hdGlvbkJhc2UgY2FuIG5vdyBsaXZlIGxvbmdlciAoaWYgYSBXZWJL
aXRBbmltYXRpb24gaXMKKyAgICAgICAgaGVsZCBpbiBKYXZhc2NyaXB0KSB3ZSBuZWVkIHRvIGd1
YXJkIGZvciB0aGUgcmVuZGVyZXIgaGF2aW5nIGRpc2FwcGVhcmVkLgorICAgICAgICAoV2ViQ29y
ZTo6QW5pbWF0aW9uQmFzZTo6c2V0RWxhcHNlZFRpbWUpOgorICAgICAgICAoV2ViQ29yZTo6QW5p
bWF0aW9uQmFzZTo6cGxheSk6CisgICAgICAgIChXZWJDb3JlOjpBbmltYXRpb25CYXNlOjpwYXVz
ZSk6CisgICAgICAgIC0gU3R1YiBpbXBsZW1lbnRhdGlvbnMgYXQgcHJlc2VudAorICAgICAgICAq
IHBhZ2UvYW5pbWF0aW9uL0FuaW1hdGlvbkJhc2UuaDoKKyAgICAgICAgKFdlYkNvcmU6OkFuaW1h
dGlvbkJhc2U6OmFuaW1hdGlvbik6CisgICAgICAgIC0gRXhwb3NlIHRoZSBBbmltYXRpb24gcHJv
cGVydGllcworICAgICAgICAqIHBhZ2UvYW5pbWF0aW9uL0FuaW1hdGlvbkNvbnRyb2xsZXIuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6QW5pbWF0aW9uQ29udHJvbGxlclByaXZhdGU6OmFuaW1hdGlv
bnNGb3JSZW5kZXJlcik6CisgICAgICAgIChXZWJDb3JlOjpBbmltYXRpb25Db250cm9sbGVyOjph
bmltYXRpb25zRm9yUmVuZGVyZXIpOgorICAgICAgICAtIEJ1aWxkcyB0aGUgbGlzdCBvZiBXZWJL
aXRBbmltYXRpb25zCisgICAgICAgICogcGFnZS9hbmltYXRpb24vQW5pbWF0aW9uQ29udHJvbGxl
ci5oOgorICAgICAgICAqIHBhZ2UvYW5pbWF0aW9uL0FuaW1hdGlvbkNvbnRyb2xsZXJQcml2YXRl
Lmg6CisgICAgICAgICogcGFnZS9hbmltYXRpb24vQ29tcG9zaXRlQW5pbWF0aW9uLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkNvbXBvc2l0ZUFuaW1hdGlvbjo6dXBkYXRlS2V5ZnJhbWVBbmltYXRp
b25zKToKKyAgICAgICAgLSBNYWtlIHN1cmUgd2UgY2xlYXIgdGhlIHJlbmRlcmVyIGlmIHdlIGFy
ZSByZW1vdmluZyB0aGUgYW5pbWF0aW9uCisgICAgICAgIChXZWJDb3JlOjpDb21wb3NpdGVBbmlt
YXRpb246OmFuaW1hdGlvbnMpOgorICAgICAgICAqIHBhZ2UvYW5pbWF0aW9uL0NvbXBvc2l0ZUFu
aW1hdGlvbi5oOgorICAgICAgICAqIHBhZ2UvYW5pbWF0aW9uL1dlYktpdEFuaW1hdGlvbi5jcHA6
IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6V2ViS2l0QW5pbWF0aW9uOjpXZWJLaXRBbmltYXRp
b24pOgorICAgICAgICAoV2ViQ29yZTo6V2ViS2l0QW5pbWF0aW9uOjpuYW1lKToKKyAgICAgICAg
KFdlYkNvcmU6OldlYktpdEFuaW1hdGlvbjo6ZHVyYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6
V2ViS2l0QW5pbWF0aW9uOjplbGFwc2VkVGltZSk6CisgICAgICAgIChXZWJDb3JlOjpXZWJLaXRB
bmltYXRpb246OnNldEVsYXBzZWRUaW1lKToKKyAgICAgICAgKFdlYkNvcmU6OldlYktpdEFuaW1h
dGlvbjo6ZGVsYXkpOgorICAgICAgICAoV2ViQ29yZTo6V2ViS2l0QW5pbWF0aW9uOjppdGVyYXRp
b25Db3VudCk6CisgICAgICAgIChXZWJDb3JlOjpXZWJLaXRBbmltYXRpb246OnBhdXNlZCk6Cisg
ICAgICAgIChXZWJDb3JlOjpXZWJLaXRBbmltYXRpb246OmVuZGVkKToKKyAgICAgICAgKFdlYkNv
cmU6OldlYktpdEFuaW1hdGlvbjo6ZGlyZWN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OldlYktp
dEFuaW1hdGlvbjo6ZmlsbE1vZGUpOgorICAgICAgICAoV2ViQ29yZTo6V2ViS2l0QW5pbWF0aW9u
OjpwYXVzZSk6CisgICAgICAgIChXZWJDb3JlOjpXZWJLaXRBbmltYXRpb246OnBsYXkpOgorICAg
ICAgICAtIFRoZSBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgbmV3IEFQSS4gQWxsIHRoZSByZWFkLW9u
bHkgcGFydHMgYXJlCisgICAgICAgIGRvbmUsIGJ1dCBlbGFwc2VkVGltZSwgcGxheSgpIGFuZCBw
YXVzZSgpIGFyZSBzdHVicy4KKyAgICAgICAgKiBwYWdlL2FuaW1hdGlvbi9XZWJLaXRBbmltYXRp
b24uaDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpXZWJLaXRBbmltYXRpb246OmNyZWF0ZSk6
CisgICAgICAgIChXZWJDb3JlOjpXZWJLaXRBbmltYXRpb246On5XZWJLaXRBbmltYXRpb24pOgor
ICAgICAgICAqIHBhZ2UvYW5pbWF0aW9uL1dlYktpdEFuaW1hdGlvbi5pZGw6IEFkZGVkLgorICAg
ICAgICAqIHBhZ2UvYW5pbWF0aW9uL1dlYktpdEFuaW1hdGlvbkxpc3QuY3BwOiBBZGRlZC4KKyAg
ICAgICAgKiBwYWdlL2FuaW1hdGlvbi9XZWJLaXRBbmltYXRpb25MaXN0Lmg6IEFkZGVkLgorICAg
ICAgICAqIHBhZ2UvYW5pbWF0aW9uL1dlYktpdEFuaW1hdGlvbkxpc3QuaWRsOiBBZGRlZC4KKyAg
ICAgICAgLSBDb3BpZXMgTm9kZUxpc3QgaW1wbGVtZW50YXRpb24KKwogMjAxMS0wMy0xMCAgRGF2
aWQgSHlhdHQgIDxoeWF0dEBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgU2ltb24g
RnJhc2VyLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ29kZUdlbmVyYXRvcnMucHJpIGIv
U291cmNlL1dlYkNvcmUvQ29kZUdlbmVyYXRvcnMucHJpCmluZGV4IDNlNDU5YTYuLmYxMGM4MWEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NvZGVHZW5lcmF0b3JzLnByaQorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Db2RlR2VuZXJhdG9ycy5wcmkKQEAgLTMzNCw2ICszMzQsOCBAQCBJRExfQklO
RElOR1MgKz0gXAogICAgIHBhZ2UvU3BlZWNoSW5wdXRFdmVudC5pZGwgXAogICAgIHBhZ2UvU3Bl
ZWNoSW5wdXRSZXN1bHQuaWRsIFwKICAgICBwYWdlL1NwZWVjaElucHV0UmVzdWx0TGlzdC5pZGwg
XAorICAgIHBhZ2UvV2ViS2l0QW5pbWF0aW9uLmlkbCBcCisgICAgcGFnZS9XZWJLaXRBbmltYXRp
b25MaXN0LmlkbCBcCiAgICAgcGFnZS9XZWJLaXRQb2ludC5pZGwgXAogICAgIHBhZ2UvV29ya2Vy
TmF2aWdhdG9yLmlkbCBcCiAgICAgcGx1Z2lucy9ET01QbHVnaW4uaWRsIFwKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2
ZWRTb3VyY2VzLmNwcAppbmRleCA5YWIzN2VjLi4yNDAyMmY3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9EZXJpdmVkU291cmNlcy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNv
dXJjZXMuY3BwCkBAIC00MzUsNyArNDM1LDkgQEAKICNpbmNsdWRlICJKU1VpbnQ4QXJyYXkuY3Bw
IgogI2luY2x1ZGUgIkpTVUlFdmVudC5jcHAiCiAjaW5jbHVkZSAiSlNWYWxpZGl0eVN0YXRlLmNw
cCIKKyNpbmNsdWRlICJKU1dlYktpdEFuaW1hdGlvbi5jcHAiCiAjaW5jbHVkZSAiSlNXZWJLaXRB
bmltYXRpb25FdmVudC5jcHAiCisjaW5jbHVkZSAiSlNXZWJLaXRBbmltYXRpb25MaXN0LmNwcCIK
ICNpbmNsdWRlICJKU1dlYktpdENTU0tleWZyYW1lUnVsZS5jcHAiCiAjaW5jbHVkZSAiSlNXZWJL
aXRDU1NLZXlmcmFtZXNSdWxlLmNwcCIKICNpbmNsdWRlICJKU1dlYktpdENTU1RyYW5zZm9ybVZh
bHVlLmNwcCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2Ug
Yi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCmluZGV4IDkxNTgwMTEuLmI2MjAw
MmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKKysrIGIv
U291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQpAQCAtNTEyLDcgKzUxMiw5IEBAIERP
TV9DTEFTU0VTID0gXAogICAgIFRyZWVXYWxrZXIgXAogICAgIFVJRXZlbnQgXAogICAgIFZhbGlk
aXR5U3RhdGUgXAorICAgIFdlYktpdEFuaW1hdGlvbiBcCiAgICAgV2ViS2l0QW5pbWF0aW9uRXZl
bnQgXAorICAgIFdlYktpdEFuaW1hdGlvbkxpc3QgXAogICAgIFdlYktpdENTU0tleWZyYW1lUnVs
ZSBcCiAgICAgV2ViS2l0Q1NTS2V5ZnJhbWVzUnVsZSBcCiAgICAgV2ViS2l0Q1NTTWF0cml4IFwK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmFtIGIvU291cmNlL1dlYkNv
cmUvR05VbWFrZWZpbGUuYW0KaW5kZXggYzNjZTlhNS4uZTY0NWJmOCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0KKysrIGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZp
bGUuYW0KQEAgLTU5OCw3ICs1OTgsMTEgQEAgd2ViY29yZV9idWlsdF9zb3VyY2VzICs9IFwKIAlE
ZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTV2ViR0xVbmlmb3JtTG9jYXRpb24uaCBcCiAJRGVyaXZl
ZFNvdXJjZXMvV2ViQ29yZS9KU1dlYkdMVmVydGV4QXJyYXlPYmplY3RPRVMuY3BwIFwKIAlEZXJp
dmVkU291cmNlcy9XZWJDb3JlL0pTV2ViR0xWZXJ0ZXhBcnJheU9iamVjdE9FUy5oIFwKKwlEZXJp
dmVkU291cmNlcy9XZWJDb3JlL0pTV2ViS2l0QW5pbWF0aW9uLmNwcCBcCisJRGVyaXZlZFNvdXJj
ZXMvV2ViQ29yZS9KU1dlYktpdEFuaW1hdGlvbi5oIFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3Jl
L0pTV2ViS2l0QW5pbWF0aW9uRXZlbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pT
V2ViS2l0QW5pbWF0aW9uTGlzdC5oIFwKKwlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTV2ViS2l0
QW5pbWF0aW9uTGlzdC5jcHAgXAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNXZWJLaXRBbmlt
YXRpb25FdmVudC5oIFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTV2ViS2l0Q1NTS2V5ZnJh
bWVSdWxlLmNwcCBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1dlYktpdENTU0tleWZyYW1l
UnVsZS5oIFwKQEAgLTg3MCw2ICs4NzQsOCBAQCB3ZWJjb3JlX3NvdXJjZXMgKz0gXAogCVNvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTVWludDE2QXJyYXlDdXN0b20uY3BwIFwKIAlTb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9KU1VpbnQzMkFycmF5Q3VzdG9tLmNwcCBcCiAJU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNVaW50OEFycmF5Q3VzdG9tLmNwcCBcCisJU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvSlNXZWJLaXRBbmltYXRpb25DdXN0b20uY3BwIFwKKwlTb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9KU1dlYktpdEFuaW1hdGlvbkxpc3RDdXN0b20uY3BwIFwKIAlTb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dlYktpdENTU0tleWZyYW1lUnVsZUN1c3RvbS5jcHAg
XAogCVNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTV2ViS2l0Q1NTS2V5ZnJhbWVzUnVsZUN1
c3RvbS5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTV2ViR0xSZW5kZXJpbmdD
b250ZXh0Q3VzdG9tLmNwcCBcCkBAIC0yMzA1LDYgKzIzMTEsMTAgQEAgd2ViY29yZV9zb3VyY2Vz
ICs9IFwKIAlTb3VyY2UvV2ViQ29yZS9wYWdlL1VzZXJTY3JpcHRUeXBlcy5oIFwKIAlTb3VyY2Uv
V2ViQ29yZS9wYWdlL1VzZXJTdHlsZVNoZWV0LmggXAogCVNvdXJjZS9XZWJDb3JlL3BhZ2UvVXNl
clN0eWxlU2hlZXRUeXBlcy5oIFwKKwlTb3VyY2UvV2ViQ29yZS9wYWdlL1dlYktpdEFuaW1hdGlv
bi5oIFwKKwlTb3VyY2UvV2ViQ29yZS9wYWdlL1dlYktpdEFuaW1hdGlvbi5jcHAgXAorCVNvdXJj
ZS9XZWJDb3JlL3BhZ2UvV2ViS2l0QW5pbWF0aW9uTGlzdC5oIFwKKwlTb3VyY2UvV2ViQ29yZS9w
YWdlL1dlYktpdEFuaW1hdGlvbkxpc3QuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9wYWdlL1dlYktp
dFBvaW50LmggXAogCVNvdXJjZS9XZWJDb3JlL3BhZ2UvV2luZG93RmVhdHVyZXMuY3BwIFwKIAlT
b3VyY2UvV2ViQ29yZS9wYWdlL1dpbmRvd0ZlYXR1cmVzLmggXApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS5neXBpIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCmluZGV4
IGM4MzEzYjkuLjBiYTUzZGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lw
aQorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKQEAgLTI3Niw2ICsyNzYsOCBAQAog
ICAgICAgICAgICAgJ3BhZ2UvU3BlZWNoSW5wdXRFdmVudC5pZGwnLAogICAgICAgICAgICAgJ3Bh
Z2UvU3BlZWNoSW5wdXRSZXN1bHQuaWRsJywKICAgICAgICAgICAgICdwYWdlL1NwZWVjaElucHV0
UmVzdWx0TGlzdC5pZGwnLAorICAgICAgICAgICAgJ3BhZ2UvV2ViS2l0QW5pbWF0aW9uLmlkbCcs
CisgICAgICAgICAgICAncGFnZS9XZWJLaXRBbmltYXRpb25MaXN0LmlkbCcsCiAgICAgICAgICAg
ICAncGFnZS9XZWJLaXRQb2ludC5pZGwnLAogICAgICAgICAgICAgJ3BhZ2UvV29ya2VyTmF2aWdh
dG9yLmlkbCcsCiAgICAgICAgICAgICAncGx1Z2lucy9ET01NaW1lVHlwZS5pZGwnLApAQCAtNzg3
LDYgKzc4OSw4IEBACiAgICAgICAgICAgICAnYmluZGluZ3MvanMvSlNVaW50MzJBcnJheUN1c3Rv
bS5jcHAnLAogICAgICAgICAgICAgJ2JpbmRpbmdzL2pzL0pTVWludDhBcnJheUN1c3RvbS5jcHAn
LAogICAgICAgICAgICAgJ2JpbmRpbmdzL2pzL0pTV2ViR0xSZW5kZXJpbmdDb250ZXh0Q3VzdG9t
LmNwcCcsCisgICAgICAgICAgICAnYmluZGluZ3MvanMvSlNXZWJLaXRBbmltYXRpb25DdXN0b20u
Y3BwJywKKyAgICAgICAgICAgICdiaW5kaW5ncy9qcy9KU1dlYktpdEFuaW1hdGlvbkxpc3RDdXN0
b20uY3BwJywKICAgICAgICAgICAgICdiaW5kaW5ncy9qcy9KU1dlYktpdENTU0tleWZyYW1lUnVs
ZUN1c3RvbS5jcHAnLAogICAgICAgICAgICAgJ2JpbmRpbmdzL2pzL0pTV2ViS2l0Q1NTS2V5ZnJh
bWVzUnVsZUN1c3RvbS5jcHAnLAogICAgICAgICAgICAgJ2JpbmRpbmdzL2pzL0pTV2ViS2l0Q1NT
TWF0cml4Q3VzdG9tLmNwcCcsCkBAIC0xMTE4LDYgKzExMjIsNyBAQAogICAgICAgICAgICAgJ2Jp
bmRpbmdzL3Y4L2N1c3RvbS9WOFVpbnQzMkFycmF5Q3VzdG9tLmNwcCcsCiAgICAgICAgICAgICAn
YmluZGluZ3MvdjgvY3VzdG9tL1Y4VWludDhBcnJheUN1c3RvbS5jcHAnLAogICAgICAgICAgICAg
J2JpbmRpbmdzL3Y4L2N1c3RvbS9WOFdlYkdMUmVuZGVyaW5nQ29udGV4dEN1c3RvbS5jcHAnLAor
ICAgICAgICAgICAgJ2JpbmRpbmdzL3Y4L2N1c3RvbS9WOFdlYktpdEFuaW1hdGlvbkN1c3RvbS5j
cHAnLAogICAgICAgICAgICAgJ2JpbmRpbmdzL3Y4L2N1c3RvbS9WOFdlYktpdENTU01hdHJpeENv
bnN0cnVjdG9yLmNwcCcsCiAgICAgICAgICAgICAnYmluZGluZ3MvdjgvY3VzdG9tL1Y4V2ViS2l0
UG9pbnRDb25zdHJ1Y3Rvci5jcHAnLAogICAgICAgICAgICAgJ2JpbmRpbmdzL3Y4L2N1c3RvbS9W
OFdlYlNvY2tldEN1c3RvbS5jcHAnLApAQCAtMjUxMCw2ICsyNTE1LDEwIEBACiAgICAgICAgICAg
ICAncGFnZS9Vc2VyU2NyaXB0VHlwZXMuaCcsCiAgICAgICAgICAgICAncGFnZS9Vc2VyU3R5bGVT
aGVldC5oJywKICAgICAgICAgICAgICdwYWdlL1VzZXJTdHlsZVNoZWV0VHlwZXMuaCcsCisgICAg
ICAgICAgICAncGFnZS9XZWJLaXRBbmltYXRpb24uY3BwJywKKyAgICAgICAgICAgICdwYWdlL1dl
YktpdEFuaW1hdGlvbi5oJywKKyAgICAgICAgICAgICdwYWdlL1dlYktpdEFuaW1hdGlvbkxpc3Qu
Y3BwJywKKyAgICAgICAgICAgICdwYWdlL1dlYktpdEFuaW1hdGlvbkxpc3QuaCcsCiAgICAgICAg
ICAgICAncGFnZS9XZWJLaXRQb2ludC5oJywKICAgICAgICAgICAgICdwYWdlL1dpbmRvd0ZlYXR1
cmVzLmNwcCcsCiAgICAgICAgICAgICAncGFnZS9XaW5kb3dGZWF0dXJlcy5oJywKQEAgLTY4NTcs
OSArNjg2NiwxMyBAQAogICAgICAgICAgICAgJzwoUFJPRFVDVF9ESVIpL0Rlcml2ZWRTb3VyY2Vz
L1dlYkNvcmUvRE9NV2ViR0xWZXJ0ZXhBcnJheU9iamVjdE9FUy5oJywKICAgICAgICAgICAgICc8
KFBST0RVQ1RfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0RPTVdlYkdMVmVydGV4QXJyYXlP
YmplY3RPRVMubW0nLAogICAgICAgICAgICAgJzwoUFJPRFVDVF9ESVIpL0Rlcml2ZWRTb3VyY2Vz
L1dlYkNvcmUvRE9NV2ViR0xWZXJ0ZXhBcnJheU9iamVjdE9FU0ludGVybmFsLmgnLAorICAgICAg
ICAgICAgJzwoUFJPRFVDVF9ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvRE9NV2ViS2l0QW5p
bWF0aW9uLmgnLAorICAgICAgICAgICAgJzwoUFJPRFVDVF9ESVIpL0Rlcml2ZWRTb3VyY2VzL1dl
YkNvcmUvRE9NV2ViS2l0QW5pbWF0aW9uLm1tJywKICAgICAgICAgICAgICc8KFBST0RVQ1RfRElS
KS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0RPTVdlYktpdEFuaW1hdGlvbkV2ZW50LmgnLAogICAg
ICAgICAgICAgJzwoUFJPRFVDVF9ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvRE9NV2ViS2l0
QW5pbWF0aW9uRXZlbnQubW0nLAogICAgICAgICAgICAgJzwoUFJPRFVDVF9ESVIpL0Rlcml2ZWRT
b3VyY2VzL1dlYkNvcmUvRE9NV2ViS2l0QW5pbWF0aW9uRXZlbnRJbnRlcm5hbC5oJywKKyAgICAg
ICAgICAgICc8KFBST0RVQ1RfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0RPTVdlYktpdEFu
aW1hdGlvbkxpc3QuaCcsCisgICAgICAgICAgICAnPChQUk9EVUNUX0RJUikvRGVyaXZlZFNvdXJj
ZXMvV2ViQ29yZS9ET01XZWJLaXRBbmltYXRpb25MaXN0Lm1tJywKICAgICAgICAgICAgICc8KFBS
T0RVQ1RfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0RPTVdlYktpdENTU0tleWZyYW1lUnVs
ZS5oJywKICAgICAgICAgICAgICc8KFBST0RVQ1RfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3Jl
L0RPTVdlYktpdENTU0tleWZyYW1lUnVsZS5tbScsCiAgICAgICAgICAgICAnPChQUk9EVUNUX0RJ
UikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9ET01XZWJLaXRDU1NLZXlmcmFtZVJ1bGVJbnRlcm5h
bC5oJywKQEAgLTc5MDYsOCArNzkxOSwxMiBAQAogICAgICAgICAgICAgJzwoUFJPRFVDVF9ESVIp
L0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNXZWJHTFVuaWZvcm1Mb2NhdGlvbi5oJywKICAgICAg
ICAgICAgICc8KFBST0RVQ1RfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTV2ViR0xWZXJ0
ZXhBcnJheU9iamVjdE9FUy5jcHAnLAogICAgICAgICAgICAgJzwoUFJPRFVDVF9ESVIpL0Rlcml2
ZWRTb3VyY2VzL1dlYkNvcmUvSlNXZWJHTFZlcnRleEFycmF5T2JqZWN0T0VTLmgnLAorICAgICAg
ICAgICAgJzwoUFJPRFVDVF9ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNXZWJLaXRBbmlt
YXRpb24uY3BwJywKKyAgICAgICAgICAgICc8KFBST0RVQ1RfRElSKS9EZXJpdmVkU291cmNlcy9X
ZWJDb3JlL0pTV2ViS2l0QW5pbWF0aW9uLmgnLAogICAgICAgICAgICAgJzwoUFJPRFVDVF9ESVIp
L0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNXZWJLaXRBbmltYXRpb25FdmVudC5jcHAnLAogICAg
ICAgICAgICAgJzwoUFJPRFVDVF9ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNXZWJLaXRB
bmltYXRpb25FdmVudC5oJywKKyAgICAgICAgICAgICc8KFBST0RVQ1RfRElSKS9EZXJpdmVkU291
cmNlcy9XZWJDb3JlL0pTV2ViS2l0QW5pbWF0aW9uTGlzdC5jcHAnLAorICAgICAgICAgICAgJzwo
UFJPRFVDVF9ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNXZWJLaXRBbmltYXRpb25MaXN0
LmgnLAogICAgICAgICAgICAgJzwoUFJPRFVDVF9ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUv
SlNXZWJLaXRDU1NLZXlmcmFtZVJ1bGUuY3BwJywKICAgICAgICAgICAgICc8KFBST0RVQ1RfRElS
KS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTV2ViS2l0Q1NTS2V5ZnJhbWVSdWxlLmgnLAogICAg
ICAgICAgICAgJzwoUFJPRFVDVF9ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNXZWJLaXRD
U1NLZXlmcmFtZXNSdWxlLmNwcCcsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
LnBybyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUucHJvCmluZGV4IDE0YTdkM2IuLjQyYmVmM2Ug
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUucHJvCisrKyBiL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUucHJvCkBAIC0yMDMsNiArMjAzLDcgQEAgdjggewogICAgICAgICBiaW5kaW5n
cy92OC9jdXN0b20vVjhTdG9yYWdlQ3VzdG9tLmNwcCBcCiAgICAgICAgIGJpbmRpbmdzL3Y4L2N1
c3RvbS9WOFN0eWxlU2hlZXRDdXN0b20uY3BwIFwKICAgICAgICAgYmluZGluZ3MvdjgvY3VzdG9t
L1Y4U3R5bGVTaGVldExpc3RDdXN0b20uY3BwIFwKKyAgICAgICAgYmluZGluZ3MvdjgvY3VzdG9t
L1Y4V2ViS2l0QW5pbWF0aW9uQ3VzdG9tLmNwcCBcCiAgICAgICAgIGJpbmRpbmdzL3Y4L2N1c3Rv
bS9WOFdlYktpdENTU01hdHJpeENvbnN0cnVjdG9yLmNwcCBcCiAgICAgICAgIGJpbmRpbmdzL3Y4
L2N1c3RvbS9WOFdlYktpdFBvaW50Q29uc3RydWN0b3IuY3BwIFwKICAgICAgICAgYmluZGluZ3Mv
djgvY3VzdG9tL1Y4V29ya2VyQ29udGV4dEN1c3RvbS5jcHAgXApAQCAtMzMyLDYgKzMzMyw4IEBA
IHY4IHsKICAgICAgICAgYmluZGluZ3MvanMvSlNVaW50MTZBcnJheUN1c3RvbS5jcHAgXAogICAg
ICAgICBiaW5kaW5ncy9qcy9KU1VpbnQzMkFycmF5Q3VzdG9tLmNwcCBcCiAgICAgICAgIGJpbmRp
bmdzL2pzL0pTVWludDhBcnJheUN1c3RvbS5jcHAgXAorICAgICAgICBiaW5kaW5ncy9qcy9KU1dl
YktpdEFuaW1hdGlvbkN1c3RvbS5jcHAgXAorICAgICAgICBiaW5kaW5ncy9qcy9KU1dlYktpdEFu
aW1hdGlvbkxpc3RDdXN0b20uY3BwIFwKICAgICAgICAgYmluZGluZ3MvanMvSlNXZWJLaXRDU1NL
ZXlmcmFtZVJ1bGVDdXN0b20uY3BwIFwKICAgICAgICAgYmluZGluZ3MvanMvSlNXZWJLaXRDU1NL
ZXlmcmFtZXNSdWxlQ3VzdG9tLmNwcCBcCiAgICAgICAgIGJpbmRpbmdzL2pzL0pTV2ViS2l0Q1NT
TWF0cml4Q3VzdG9tLmNwcCBcCkBAIC04NzAsNiArODczLDggQEAgU09VUkNFUyArPSBcCiAgICAg
cGFnZS9hbmltYXRpb24vQ29tcG9zaXRlQW5pbWF0aW9uLmNwcCBcCiAgICAgcGFnZS9hbmltYXRp
b24vSW1wbGljaXRBbmltYXRpb24uY3BwIFwKICAgICBwYWdlL2FuaW1hdGlvbi9LZXlmcmFtZUFu
aW1hdGlvbi5jcHAgXAorICAgIHBhZ2UvYW5pbWF0aW9uL1dlYktpdEFuaW1hdGlvbi5jcHAgXAor
ICAgIHBhZ2UvYW5pbWF0aW9uL1dlYktpdEFuaW1hdGlvbkxpc3QuY3BwIFwKICAgICBwYWdlL0Jh
ckluZm8uY3BwIFwKICAgICBwYWdlL0Nocm9tZS5jcHAgXAogICAgIHBhZ2UvQ29uc29sZS5jcHAg
XApAQCAtMTgzMyw2ICsxODM4LDggQEAgSEVBREVSUyArPSBcCiAgICAgcGFnZS9TcGVlY2hJbnB1
dExpc3RlbmVyLmggXAogICAgIHBhZ2UvU3BlZWNoSW5wdXRSZXN1bHQuaCBcCiAgICAgcGFnZS9T
cGVlY2hJbnB1dFJlc3VsdExpc3QuaCBcCisgICAgcGFnZS9XZWJLaXRBbmltYXRpb24uaCBcCisg
ICAgcGFnZS9XZWJLaXRBbmltYXRpb25MaXN0LmggXAogICAgIHBhZ2UvV2luZG93RmVhdHVyZXMu
aCBcCiAgICAgcGFnZS9Xb3JrZXJOYXZpZ2F0b3IuaCBcCiAgICAgcGxhdGZvcm0vYW5pbWF0aW9u
L0FuaW1hdGlvbi5oIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9q
L1dlYkNvcmUudmNwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52
Y3Byb2oKaW5kZXggZDliYzc3MS4uZjZmMjU4MCAxMDA3NTUKLS0tIGEvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKQEAgLTIxNjg2LDYgKzIxNjg2LDYyIEBACiAJCQkJPgog
CQkJPC9GaWxlPgogCQkJPEZpbGUKKwkJCQlSZWxhdGl2ZVBhdGg9IiQoQ29uZmlndXJhdGlvbkJ1
aWxkRGlyKVxvYmpcJChQcm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNcSlNXZWJLaXRBbmltYXRp
b24uY3BwIgorCQkJCT4KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJTmFtZT0iRGVidWd8
V2luMzIiCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQk+CisJCQkJCTxUb29s
CisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkvPgorCQkJCTwvRmlsZUNvbmZp
Z3VyYXRpb24+CisJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJCQkJCU5hbWU9IlJlbGVhc2V8V2lu
MzIiCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQk+CisJCQkJCTxUb29sCisJ
CQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkvPgorCQkJCTwvRmlsZUNvbmZpZ3Vy
YXRpb24+CisJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJCQkJCU5hbWU9IkRlYnVnX0NhaXJvX0NG
TGl0ZXxXaW4zMiIKKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCT4KKwkJCQkJ
PFRvb2wKKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCS8+CisJCQkJPC9GaWxl
Q29uZmlndXJhdGlvbj4KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJTmFtZT0iUmVsZWFz
ZV9DYWlyb19DRkxpdGV8V2luMzIiCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJ
CQk+CisJCQkJCTxUb29sCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkvPgor
CQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJCQkJCU5h
bWU9IkRlYnVnX0FsbHxXaW4zMiIKKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJ
CT4KKwkJCQkJPFRvb2wKKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCS8+CisJ
CQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJTmFt
ZT0iUmVsZWFzZV9MVENHfFdpbjMyIgorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJ
CQkJPgorCQkJCQk8VG9vbAorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJLz4K
KwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJPC9GaWxlPgorCQkJPEZpbGUKKwkJCQlSZWxh
dGl2ZVBhdGg9IiQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxvYmpcJChQcm9qZWN0TmFtZSlcRGVy
aXZlZFNvdXJjZXNcSlNXZWJLaXRBbmltYXRpb24uaCIKKwkJCQk+CisJCQk8L0ZpbGU+CisJCQk8
RmlsZQogCQkJCVJlbGF0aXZlUGF0aD0iJChDb25maWd1cmF0aW9uQnVpbGREaXIpXG9ialwkKFBy
b2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xKU1dlYktpdEFuaW1hdGlvbkV2ZW50LmNwcCIKIAkJ
CQk+CiAJCQkJPEZpbGVDb25maWd1cmF0aW9uCkBAIC0yMTc0Miw2ICsyMTc5OCw2MiBAQAogCQkJ
CT4KIAkJCTwvRmlsZT4KIAkJCTxGaWxlCisJCQkJUmVsYXRpdmVQYXRoPSIkKENvbmZpZ3VyYXRp
b25CdWlsZERpcilcb2JqXCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2VzXEpTV2ViS2l0QW5p
bWF0aW9uTGlzdC5jcHAiCisJCQkJPgorCQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQlOYW1l
PSJEZWJ1Z3xXaW4zMiIKKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCT4KKwkJ
CQkJPFRvb2wKKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCS8+CisJCQkJPC9G
aWxlQ29uZmlndXJhdGlvbj4KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJTmFtZT0iUmVs
ZWFzZXxXaW4zMiIKKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCT4KKwkJCQkJ
PFRvb2wKKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCS8+CisJCQkJPC9GaWxl
Q29uZmlndXJhdGlvbj4KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJTmFtZT0iRGVidWdf
Q2Fpcm9fQ0ZMaXRlfFdpbjMyIgorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJ
PgorCQkJCQk8VG9vbAorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJLz4KKwkJ
CQk8L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQlOYW1l
PSJSZWxlYXNlX0NhaXJvX0NGTGl0ZXxXaW4zMiIKKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRy
dWUiCisJCQkJCT4KKwkJCQkJPFRvb2wKKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisJ
CQkJCS8+CisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24K
KwkJCQkJTmFtZT0iRGVidWdfQWxsfFdpbjMyIgorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1
ZSIKKwkJCQkJPgorCQkJCQk8VG9vbAorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJ
CQkJLz4KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJCTxGaWxlQ29uZmlndXJhdGlvbgor
CQkJCQlOYW1lPSJSZWxlYXNlX0xUQ0d8V2luMzIiCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0
cnVlIgorCQkJCQk+CisJCQkJCTxUb29sCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgor
CQkJCQkvPgorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQk8L0ZpbGU+CisJCQk8RmlsZQor
CQkJCVJlbGF0aXZlUGF0aD0iJChDb25maWd1cmF0aW9uQnVpbGREaXIpXG9ialwkKFByb2plY3RO
YW1lKVxEZXJpdmVkU291cmNlc1xKU1dlYktpdEFuaW1hdGlvbkxpc3QuaCIKKwkJCQk+CisJCQk8
L0ZpbGU+CisJCQk8RmlsZQogCQkJCVJlbGF0aXZlUGF0aD0iJChDb25maWd1cmF0aW9uQnVpbGRE
aXIpXG9ialwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xKU1dlYktpdENTU0tleWZyYW1l
UnVsZS5jcHAiCiAJCQkJPgogCQkJCTxGaWxlQ29uZmlndXJhdGlvbgpAQCAtMjQ3MzQsNiArMjQ4
NDYsMjIgQEAKIAkJCQk+CiAJCQk8L0ZpbGU+CiAJCQk8RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0i
Li5ccGFnZVxXZWJLaXRBbmltYXRpb24uY3BwIgorCQkJCT4KKwkJCTwvRmlsZT4KKwkJCTxGaWxl
CisJCQkJUmVsYXRpdmVQYXRoPSIuLlxwYWdlXFdlYktpdEFuaW1hdGlvbi5oIgorCQkJCT4KKwkJ
CTwvRmlsZT4KKwkJCTxGaWxlCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxwYWdlXFdlYktpdEFuaW1h
dGlvbkxpc3QuY3BwIgorCQkJCT4KKwkJCTwvRmlsZT4KKwkJCTxGaWxlCisJCQkJUmVsYXRpdmVQ
YXRoPSIuLlxwYWdlXFdlYktpdEFuaW1hdGlvbkxpc3QuaCIKKwkJCQk+CisJCQk8L0ZpbGU+CisJ
CQk8RmlsZQogCQkJCVJlbGF0aXZlUGF0aD0iLi5ccGFnZVxMb2NhdGlvbi5jcHAiCiAJCQkJPgog
CQkJPC9GaWxlPgpAQCAtNjIxMzMsNiArNjIyNjEsMTEwIEBACiAJCQkJCTwvRmlsZUNvbmZpZ3Vy
YXRpb24+CiAJCQkJPC9GaWxlPgogCQkJCTxGaWxlCisJCQkJCVJlbGF0aXZlUGF0aD0iLi5cYmlu
ZGluZ3NcanNcSlNXZWJLaXRBbmltYXRpb25DdXN0b20uY3BwIgorCQkJCQk+CisJCQkJCTxGaWxl
Q29uZmlndXJhdGlvbgorCQkJCQkJTmFtZT0iRGVidWd8V2luMzIiCisJCQkJCQlFeGNsdWRlZEZy
b21CdWlsZD0idHJ1ZSIKKwkJCQkJCT4KKwkJCQkJCTxUb29sCisJCQkJCQkJTmFtZT0iVkNDTENv
bXBpbGVyVG9vbCIKKwkJCQkJCS8+CisJCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJCTxG
aWxlQ29uZmlndXJhdGlvbgorCQkJCQkJTmFtZT0iUmVsZWFzZXxXaW4zMiIKKwkJCQkJCUV4Y2x1
ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQkJPgorCQkJCQkJPFRvb2wKKwkJCQkJCQlOYW1lPSJW
Q0NMQ29tcGlsZXJUb29sIgorCQkJCQkJLz4KKwkJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJ
CQkJPEZpbGVDb25maWd1cmF0aW9uCisJCQkJCQlOYW1lPSJEZWJ1Z19DYWlyb19DRkxpdGV8V2lu
MzIiCisJCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJCT4KKwkJCQkJCTxUb29s
CisJCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJCS8+CisJCQkJCTwvRmlsZUNv
bmZpZ3VyYXRpb24+CisJCQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQkJTmFtZT0iUmVsZWFz
ZV9DYWlyb19DRkxpdGV8V2luMzIiCisJCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJ
CQkJCT4KKwkJCQkJCTxUb29sCisJCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJ
CS8+CisJCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJCTxGaWxlQ29uZmlndXJhdGlvbgor
CQkJCQkJTmFtZT0iRGVidWdfQWxsfFdpbjMyIgorCQkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRy
dWUiCisJCQkJCQk+CisJCQkJCQk8VG9vbAorCQkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wi
CisJCQkJCQkvPgorCQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJCQk8RmlsZUNvbmZpZ3Vy
YXRpb24KKwkJCQkJCU5hbWU9IlJlbGVhc2VfTFRDR3xXaW4zMiIKKwkJCQkJCUV4Y2x1ZGVkRnJv
bUJ1aWxkPSJ0cnVlIgorCQkJCQkJPgorCQkJCQkJPFRvb2wKKwkJCQkJCQlOYW1lPSJWQ0NMQ29t
cGlsZXJUb29sIgorCQkJCQkJLz4KKwkJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCQk8L0Zp
bGU+CisJCQkJPEZpbGUKKwkJCQkJUmVsYXRpdmVQYXRoPSIuLlxiaW5kaW5nc1xqc1xKU1dlYktp
dEFuaW1hdGlvbkxpc3RDdXN0b20uY3BwIgorCQkJCQk+CisJCQkJCTxGaWxlQ29uZmlndXJhdGlv
bgorCQkJCQkJTmFtZT0iRGVidWd8V2luMzIiCisJCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1
ZSIKKwkJCQkJCT4KKwkJCQkJCTxUb29sCisJCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIK
KwkJCQkJCS8+CisJCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJCTxGaWxlQ29uZmlndXJh
dGlvbgorCQkJCQkJTmFtZT0iUmVsZWFzZXxXaW4zMiIKKwkJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxk
PSJ0cnVlIgorCQkJCQkJPgorCQkJCQkJPFRvb2wKKwkJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJU
b29sIgorCQkJCQkJLz4KKwkJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCQkJPEZpbGVDb25m
aWd1cmF0aW9uCisJCQkJCQlOYW1lPSJEZWJ1Z19DYWlyb19DRkxpdGV8V2luMzIiCisJCQkJCQlF
eGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJCT4KKwkJCQkJCTxUb29sCisJCQkJCQkJTmFt
ZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJCS8+CisJCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+
CisJCQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQkJTmFtZT0iUmVsZWFzZV9DYWlyb19DRkxp
dGV8V2luMzIiCisJCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJCT4KKwkJCQkJ
CTxUb29sCisJCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJCS8+CisJCQkJCTwv
RmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQkJTmFtZT0i
RGVidWdfQWxsfFdpbjMyIgorCQkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCQk+
CisJCQkJCQk8VG9vbAorCQkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCQkvPgor
CQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJ
CU5hbWU9IlJlbGVhc2VfTFRDR3xXaW4zMiIKKwkJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVl
IgorCQkJCQkJPgorCQkJCQkJPFRvb2wKKwkJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgor
CQkJCQkJLz4KKwkJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCQk8L0ZpbGU+CisJCQkJPEZp
bGUKIAkJCQkJUmVsYXRpdmVQYXRoPSIuLlxiaW5kaW5nc1xqc1xKU1dlYktpdENTU0tleWZyYW1l
UnVsZUN1c3RvbS5jcHAiCiAJCQkJCT4KIAkJCQkJPEZpbGVDb25maWd1cmF0aW9uCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggODg1
ZGQ3MC4uZjg1ZjQyNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagpAQCAtNzY5LDYgKzc2OSwyMCBAQAogCQkzMTZGRTExODBFNkUxREE3
MDBCRjYwODggLyogSW1wbGljaXRBbmltYXRpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMxNkZFMTBFMEU2RTFEQTcwMEJGNjA4OCAvKiBJbXBsaWNp
dEFuaW1hdGlvbi5oICovOyB9OwogCQkzMTZGRTExOTBFNkUxREE3MDBCRjYwODggLyogS2V5ZnJh
bWVBbmltYXRpb24uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMzE2RkUxMEYwRTZFMURBNzAwQkY2MDg4IC8qIEtleWZyYW1lQW5pbWF0aW9uLmNwcCAq
LzsgfTsKIAkJMzE2RkUxMUEwRTZFMURBNzAwQkY2MDg4IC8qIEtleWZyYW1lQW5pbWF0aW9uLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMTZGRTExMDBF
NkUxREE3MDBCRjYwODggLyogS2V5ZnJhbWVBbmltYXRpb24uaCAqLzsgfTsKKwkJMzE5NDYxNjIx
MzAyMEIyMDAwNEJCM0Y4IC8qIEpTV2ViS2l0QW5pbWF0aW9uLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMxOTQ2MTYwMTMwMjBCMjAwMDRCQjNGOCAv
KiBKU1dlYktpdEFuaW1hdGlvbi5jcHAgKi87IH07CisJCTMxOTQ2MTYzMTMwMjBCMjAwMDRCQjNG
OCAvKiBKU1dlYktpdEFuaW1hdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gMzE5NDYxNjExMzAyMEIyMDAwNEJCM0Y4IC8qIEpTV2ViS2l0QW5pbWF0
aW9uLmggKi87IH07CisJCTMxOTQ2MTZBMTMwMjBCNjYwMDRCQjNGOCAvKiBET01XZWJLaXRBbmlt
YXRpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMx
OTQ2MTY4MTMwMjBCNjYwMDRCQjNGOCAvKiBET01XZWJLaXRBbmltYXRpb24uaCAqLzsgfTsKKwkJ
MzE5NDYxNkIxMzAyMEI2NjAwNEJCM0Y4IC8qIERPTVdlYktpdEFuaW1hdGlvbi5tbSBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMxOTQ2MTY5MTMwMjBCNjYw
MDRCQjNGOCAvKiBET01XZWJLaXRBbmltYXRpb24ubW0gKi87IH07CisJCTMxOTQ2MUZFMTMwMjJC
QjgwMDRCQjNGOCAvKiBKU1dlYktpdEFuaW1hdGlvbkxpc3QuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzE5NDYxRkMxMzAyMkJCODAwNEJCM0Y4IC8q
IEpTV2ViS2l0QW5pbWF0aW9uTGlzdC5jcHAgKi87IH07CisJCTMxOTQ2MUZGMTMwMjJCQjgwMDRC
QjNGOCAvKiBKU1dlYktpdEFuaW1hdGlvbkxpc3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMxOTQ2MUZEMTMwMjJCQjgwMDRCQjNGOCAvKiBKU1dlYktp
dEFuaW1hdGlvbkxpc3QuaCAqLzsgfTsKKwkJMzE5NDYyMDQxMzAyMkJGMTAwNEJCM0Y4IC8qIERP
TVdlYktpdEFuaW1hdGlvbkxpc3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDMxOTQ2MjAyMTMwMjJCRjEwMDRCQjNGOCAvKiBET01XZWJLaXRBbmltYXRp
b25MaXN0LmggKi87IH07CisJCTMxOTQ2MjA1MTMwMjJCRjEwMDRCQjNGOCAvKiBET01XZWJLaXRB
bmltYXRpb25MaXN0Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMzE5NDYyMDMxMzAyMkJGMTAwNEJCM0Y4IC8qIERPTVdlYktpdEFuaW1hdGlvbkxpc3Qu
bW0gKi87IH07CisJCTMxOTQ2MjMyMTMwMjJGNjUwMDRCQjNGOCAvKiBKU1dlYktpdEFuaW1hdGlv
bkxpc3RDdXN0b20uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMzE5NDYyMzExMzAyMkY2NTAwNEJCM0Y4IC8qIEpTV2ViS2l0QW5pbWF0aW9uTGlzdEN1
c3RvbS5jcHAgKi87IH07CisJCTMxOUU2ODg3MTMyN0M5MTEwMDRBQzkxQSAvKiBKU1dlYktpdEFu
aW1hdGlvbkN1c3RvbS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAzMTlFNjg4NjEzMjdDOTExMDA0QUM5MUEgLyogSlNXZWJLaXRBbmltYXRpb25DdXN0
b20uY3BwICovOyB9OworCQkzMTlFNjlCMjEzMjk5QkJEMDA0QUM5MUEgLyogV2ViS2l0QW5pbWF0
aW9uLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMx
OUU2OUFDMTMyOTlCQkQwMDRBQzkxQSAvKiBXZWJLaXRBbmltYXRpb24uY3BwICovOyB9OworCQkz
MTlFNjlCMzEzMjk5QkJEMDA0QUM5MUEgLyogV2ViS2l0QW5pbWF0aW9uLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMTlFNjlBRDEzMjk5QkJEMDA0QUM5
MUEgLyogV2ViS2l0QW5pbWF0aW9uLmggKi87IH07CisJCTMxOUU2OUI1MTMyOTlCQkQwMDRBQzkx
QSAvKiBXZWJLaXRBbmltYXRpb25MaXN0LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDMxOUU2OUFGMTMyOTlCQkQwMDRBQzkxQSAvKiBXZWJLaXRBbmlt
YXRpb25MaXN0LmNwcCAqLzsgfTsKKwkJMzE5RTY5QjYxMzI5OUJCRDAwNEFDOTFBIC8qIFdlYktp
dEFuaW1hdGlvbkxpc3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDMxOUU2OUIwMTMyOTlCQkQwMDRBQzkxQSAvKiBXZWJLaXRBbmltYXRpb25MaXN0Lmgg
Ki87IH07CiAJCTMxQzBGRjIxMEU0Q0VCNkUwMDdENkZFNSAvKiBXZWJLaXRBbmltYXRpb25FdmVu
dC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMUMw
RkYxQjBFNENFQjZFMDA3RDZGRTUgLyogV2ViS2l0QW5pbWF0aW9uRXZlbnQuY3BwICovOyB9Owog
CQkzMUMwRkYyMjBFNENFQjZFMDA3RDZGRTUgLyogV2ViS2l0QW5pbWF0aW9uRXZlbnQuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMxQzBGRjFDMEU0Q0VC
NkUwMDdENkZFNSAvKiBXZWJLaXRBbmltYXRpb25FdmVudC5oICovOyB9OwogCQkzMUMwRkYyNDBF
NENFQjZFMDA3RDZGRTUgLyogV2ViS2l0VHJhbnNpdGlvbkV2ZW50LmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMxQzBGRjFFMEU0Q0VCNkUwMDdENkZF
NSAvKiBXZWJLaXRUcmFuc2l0aW9uRXZlbnQuY3BwICovOyB9OwpAQCAtNzE1MSw2ICs3MTY1LDIy
IEBACiAJCTMxNkZFMTBFMEU2RTFEQTcwMEJGNjA4OCAvKiBJbXBsaWNpdEFuaW1hdGlvbi5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBJbXBsaWNpdEFuaW1hdGlvbi5oOyBwYXRo
ID0gYW5pbWF0aW9uL0ltcGxpY2l0QW5pbWF0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTMxNkZFMTBGMEU2RTFEQTcwMEJGNjA4OCAvKiBLZXlmcmFtZUFuaW1hdGlvbi5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBLZXlmcmFtZUFuaW1hdGlvbi5j
cHA7IHBhdGggPSBhbmltYXRpb24vS2V5ZnJhbWVBbmltYXRpb24uY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQkzMTZGRTExMDBFNkUxREE3MDBCRjYwODggLyogS2V5ZnJhbWVBbmlt
YXRpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gS2V5ZnJhbWVBbmltYXRp
b24uaDsgcGF0aCA9IGFuaW1hdGlvbi9LZXlmcmFtZUFuaW1hdGlvbi5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQkzMTk0NjE2MDEzMDIwQjIwMDA0QkIzRjggLyogSlNXZWJLaXRBbmlt
YXRpb24uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNXZWJLaXRB
bmltYXRpb24uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkzMTk0NjE2MTEzMDIw
QjIwMDA0QkIzRjggLyogSlNXZWJLaXRBbmltYXRpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gSlNXZWJLaXRBbmltYXRpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJMzE5NDYxNjgxMzAyMEI2NjAwNEJCM0Y4IC8qIERPTVdlYktpdEFuaW1hdGlvbi5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBET01XZWJLaXRBbmltYXRpb24uaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMzE5NDYxNjkxMzAyMEI2NjAwNEJCM0Y4IC8qIERP
TVdlYktpdEFuaW1hdGlvbi5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0
aCA9IERPTVdlYktpdEFuaW1hdGlvbi5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
MzE5NDYxRkMxMzAyMkJCODAwNEJCM0Y4IC8qIEpTV2ViS2l0QW5pbWF0aW9uTGlzdC5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1dlYktpdEFuaW1hdGlvbkxpc3Qu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkzMTk0NjFGRDEzMDIyQkI4MDA0QkIz
RjggLyogSlNXZWJLaXRBbmltYXRpb25MaXN0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IEpTV2ViS2l0QW5pbWF0aW9uTGlzdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQkzMTk0NjIwMjEzMDIyQkYxMDA0QkIzRjggLyogRE9NV2ViS2l0QW5pbWF0aW9uTGlzdC5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBET01XZWJLaXRBbmltYXRpb25MaXN0
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTMxOTQ2MjAzMTMwMjJCRjEwMDRCQjNG
OCAvKiBET01XZWJLaXRBbmltYXRpb25MaXN0Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
b2JqY3BwOyBwYXRoID0gRE9NV2ViS2l0QW5pbWF0aW9uTGlzdC5tbTsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJMzE5NDYyMzExMzAyMkY2NTAwNEJCM0Y4IC8qIEpTV2ViS2l0QW5pbWF0
aW9uTGlzdEN1c3RvbS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBK
U1dlYktpdEFuaW1hdGlvbkxpc3RDdXN0b20uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQkzMTlFNjg4NjEzMjdDOTExMDA0QUM5MUEgLyogSlNXZWJLaXRBbmltYXRpb25DdXN0b20u
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNXZWJLaXRBbmltYXRp
b25DdXN0b20uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkzMTlFNjlBQzEzMjk5
QkJEMDA0QUM5MUEgLyogV2ViS2l0QW5pbWF0aW9uLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IFdlYktpdEFuaW1hdGlvbi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCTMxOUU2OUFEMTMyOTlCQkQwMDRBQzkxQSAvKiBXZWJLaXRBbmltYXRpb24uaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViS2l0QW5pbWF0aW9uLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTMxOUU2OUFFMTMyOTlCQkQwMDRBQzkxQSAvKiBXZWJL
aXRBbmltYXRpb24uaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFdlYktpdEFuaW1hdGlvbi5p
ZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTMxOUU2OUFGMTMyOTlCQkQwMDRBQzkx
QSAvKiBXZWJLaXRBbmltYXRpb25MaXN0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IFdlYktpdEFuaW1hdGlvbkxpc3QuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQkzMTlFNjlCMDEzMjk5QkJEMDA0QUM5MUEgLyogV2ViS2l0QW5pbWF0aW9uTGlzdC5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJLaXRBbmltYXRpb25MaXN0Lmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTMxOUU2OUIxMTMyOTlCQkQwMDRBQzkxQSAv
KiBXZWJLaXRBbmltYXRpb25MaXN0LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBXZWJLaXRB
bmltYXRpb25MaXN0LmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMzFDMEZGMUIw
RTRDRUI2RTAwN0Q2RkU1IC8qIFdlYktpdEFuaW1hdGlvbkV2ZW50LmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYktpdEFuaW1hdGlvbkV2ZW50LmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMzFDMEZGMUMwRTRDRUI2RTAwN0Q2RkU1IC8qIFdlYktp
dEFuaW1hdGlvbkV2ZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYktp
dEFuaW1hdGlvbkV2ZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTMxQzBGRjFE
MEU0Q0VCNkUwMDdENkZFNSAvKiBXZWJLaXRBbmltYXRpb25FdmVudC5pZGwgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0
ZXh0OyBwYXRoID0gV2ViS2l0QW5pbWF0aW9uRXZlbnQuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwpAQCAtMTQwMTYsOSArMTQwNDYsOCBAQAogCQk2NUJGMDIxODA5NzQ4MDYzMDBDNDMx
OTYgLyogcGFnZSAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCi0J
CQkJMzE2RkUxMDYwRTZFMUQ4NDAwQkY2MDg4IC8qIGFuaW1hdGlvbiAqLywKLQkJCQk5M0MwOUE4
MjBCMDY0RjA1MDA1QUJENEQgLyogbWFjICovLAogCQkJCTg1MzhGMDAwMEFENzE3NzAwMDZBODFE
MSAvKiBBYnN0cmFjdFZpZXcuaWRsICovLAorCQkJCTMxNkZFMTA2MEU2RTFEODQwMEJGNjA4OCAv
KiBhbmltYXRpb24gKi8sCiAJCQkJQkMxMjRFRTQwQzI2NDFDRDAwOUUyMzQ5IC8qIEJhckluZm8u
Y3BwICovLAogCQkJCUJDMTI0RUU1MEMyNjQxQ0QwMDlFMjM0OSAvKiBCYXJJbmZvLmggKi8sCiAJ
CQkJQkMxMjRFRTYwQzI2NDFDRDAwOUUyMzQ5IC8qIEJhckluZm8uaWRsICovLApAQCAtMTQwOTAs
NiArMTQxMTksNyBAQAogCQkJCUJDRTFDNDFBMEQ5ODI5ODAwMDNCMDJGMiAvKiBMb2NhdGlvbi5j
cHAgKi8sCiAJCQkJQkNFMUM0MTkwRDk4Mjk4MDAwM0IwMkYyIC8qIExvY2F0aW9uLmggKi8sCiAJ
CQkJQkNFMUM0MjIwRDk4MjlGMjAwM0IwMkYyIC8qIExvY2F0aW9uLmlkbCAqLywKKwkJCQk5M0Mw
OUE4MjBCMDY0RjA1MDA1QUJENEQgLyogbWFjICovLAogCQkJCTkzMUJDQzYwMTEyNERGQ0IwMEJF
NzBERCAvKiBNZWRpYUNhblN0YXJ0TGlzdGVuZXIuaCAqLywKIAkJCQk5RkZFM0U3ODExQjU5QzVE
MDAzNzg3NEUgLyogTWVtb3J5SW5mby5jcHAgKi8sCiAJCQkJOUZGRTNFNzkxMUI1OUM1RDAwMzc4
NzRFIC8qIE1lbW9yeUluZm8uaCAqLywKQEAgLTE0MTYxLDYgKzE0MTkxLDEyIEBACiAJCQkJQkM4
QkYxNTAxMDU4MTNCRjAwQTQwQTA3IC8qIFVzZXJTdHlsZVNoZWV0LmggKi8sCiAJCQkJQkM4QkYx
NTkxMDU4MTQxODAwQTQwQTA3IC8qIFVzZXJTdHlsZVNoZWV0VHlwZXMuaCAqLywKIAkJCQlCRTk4
M0Q5NTA1MkEyRTBBMDA4OTJEODUgLyogV2ViQ29yZUtleWJvYXJkVUlNb2RlLmggKi8sCisJCQkJ
MzE5RTY5QUMxMzI5OUJCRDAwNEFDOTFBIC8qIFdlYktpdEFuaW1hdGlvbi5jcHAgKi8sCisJCQkJ
MzE5RTY5QUQxMzI5OUJCRDAwNEFDOTFBIC8qIFdlYktpdEFuaW1hdGlvbi5oICovLAorCQkJCTMx
OUU2OUFFMTMyOTlCQkQwMDRBQzkxQSAvKiBXZWJLaXRBbmltYXRpb24uaWRsICovLAorCQkJCTMx
OUU2OUFGMTMyOTlCQkQwMDRBQzkxQSAvKiBXZWJLaXRBbmltYXRpb25MaXN0LmNwcCAqLywKKwkJ
CQkzMTlFNjlCMDEzMjk5QkJEMDA0QUM5MUEgLyogV2ViS2l0QW5pbWF0aW9uTGlzdC5oICovLAor
CQkJCTMxOUU2OUIxMTMyOTlCQkQwMDRBQzkxQSAvKiBXZWJLaXRBbmltYXRpb25MaXN0LmlkbCAq
LywKIAkJCQk0OTRCRDc5MzBGNTVDOEVFMDA3NDc4MjggLyogV2ViS2l0UG9pbnQuaCAqLywKIAkJ
CQk0OTRCRDc5NDBGNTVDOEVFMDA3NDc4MjggLyogV2ViS2l0UG9pbnQuaWRsICovLAogCQkJCUJD
ODI0M0U2MEQwQ0ZENzUwMDQ2MEM4RiAvKiBXaW5kb3dGZWF0dXJlcy5jcHAgKi8sCkBAIC0xNTAx
NCw2ICsxNTA1MCwxMCBAQAogCQkJCTg1QkE0RDBBMEFBNjg4NjgwMDg4MDUyRCAvKiBET01IVE1M
VUxpc3RFbGVtZW50Lm1tICovLAogCQkJCTE1Qzc3MEE0MTAwRDQxQ0QwMDVCQTI2NyAvKiBET01W
YWxpZGl0eVN0YXRlLmggKi8sCiAJCQkJMTVDNzcwQTMxMDBENDFDRDAwNUJBMjY3IC8qIERPTVZh
bGlkaXR5U3RhdGUubW0gKi8sCisJCQkJMzE5NDYxNjgxMzAyMEI2NjAwNEJCM0Y4IC8qIERPTVdl
YktpdEFuaW1hdGlvbi5oICovLAorCQkJCTMxOTQ2MTY5MTMwMjBCNjYwMDRCQjNGOCAvKiBET01X
ZWJLaXRBbmltYXRpb24ubW0gKi8sCisJCQkJMzE5NDYyMDIxMzAyMkJGMTAwNEJCM0Y4IC8qIERP
TVdlYktpdEFuaW1hdGlvbkxpc3QuaCAqLywKKwkJCQkzMTk0NjIwMzEzMDIyQkYxMDA0QkIzRjgg
LyogRE9NV2ViS2l0QW5pbWF0aW9uTGlzdC5tbSAqLywKIAkJCSk7CiAJCQluYW1lID0gSFRNTDsK
IAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CkBAIC0xNjM0MSw2ICsxNjM4MSwxMCBAQAogCQkJ
CTBDNDUzNDI2MTBDREJCRkEwMDg2OTE1NyAvKiBKU1dlYkdMVW5pZm9ybUxvY2F0aW9uLmggKi8s
CiAJCQkJNzdFRjYyRjExMkY5REI3NDAwQzc3QkQyIC8qIEpTV2ViR0xWZXJ0ZXhBcnJheU9iamVj
dE9FUy5jcHAgKi8sCiAJCQkJNzdFRjYyRjIxMkY5REI3NDAwQzc3QkQyIC8qIEpTV2ViR0xWZXJ0
ZXhBcnJheU9iamVjdE9FUy5oICovLAorCQkJCTMxOTQ2MTYwMTMwMjBCMjAwMDRCQjNGOCAvKiBK
U1dlYktpdEFuaW1hdGlvbi5jcHAgKi8sCisJCQkJMzE5NDYxNjExMzAyMEIyMDAwNEJCM0Y4IC8q
IEpTV2ViS2l0QW5pbWF0aW9uLmggKi8sCisJCQkJMzE5NDYxRkMxMzAyMkJCODAwNEJCM0Y4IC8q
IEpTV2ViS2l0QW5pbWF0aW9uTGlzdC5jcHAgKi8sCisJCQkJMzE5NDYxRkQxMzAyMkJCODAwNEJC
M0Y4IC8qIEpTV2ViS2l0QW5pbWF0aW9uTGlzdC5oICovLAogCQkJCTkzRjFENUJFMTJENTMzNTYw
MDgzMkJFQyAvKiBKU1dlYktpdExvc2VDb250ZXh0LmNwcCAqLywKIAkJCQk5M0YxRDVCRjEyRDUz
MzU2MDA4MzJCRUMgLyogSlNXZWJLaXRMb3NlQ29udGV4dC5oICovLAogCQkJKTsKQEAgLTE4MDQx
LDYgKzE4MDg1LDggQEAKIAkJCQk0OUVFQ0Y3NjEwNTA4RDlDMDAwOTlGQUIgLyogSlNVaW50MzJB
cnJheUN1c3RvbS5jcHAgKi8sCiAJCQkJNDlFRUNGNzUxMDUwOEQ5QzAwMDk5RkFCIC8qIEpTVWlu
dDhBcnJheUN1c3RvbS5jcHAgKi8sCiAJCQkJNDlFRUQxNEMxMDUxOTcxQTAwMDk5RkFCIC8qIEpT
V2ViR0xSZW5kZXJpbmdDb250ZXh0Q3VzdG9tLmNwcCAqLywKKwkJCQkzMTlFNjg4NjEzMjdDOTEx
MDA0QUM5MUEgLyogSlNXZWJLaXRBbmltYXRpb25DdXN0b20uY3BwICovLAorCQkJCTMxOTQ2MjMx
MTMwMjJGNjUwMDRCQjNGOCAvKiBKU1dlYktpdEFuaW1hdGlvbkxpc3RDdXN0b20uY3BwICovLAog
CQkJCUUxQUQxNEM0MTI5NzM1NDkwMEFDQTk4OSAvKiBKU1dlYktpdENTU0tleWZyYW1lUnVsZUN1
c3RvbS5jcHAgKi8sCiAJCQkJRTFBRDE0QjQxMjk3MzRDQTAwQUNBOTg5IC8qIEpTV2ViS2l0Q1NT
S2V5ZnJhbWVzUnVsZUN1c3RvbS5jcHAgKi8sCiAJCQkJQkMyNzVCN0MxMUM1RDIzNTAwQzkyMDZD
IC8qIEpTV2ViS2l0Q1NTTWF0cml4Q3VzdG9tLmNwcCAqLywKQEAgLTIyNTc3LDYgKzIyNjIzLDEy
IEBACiAJCQkJNTk4RDc3REYxMzI1NDFGQTAwNzYxQjIyIC8qIEphdmFBcnJheUpTQy5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJNTk4RDc3RTMxMzI1NDIwRTAwNzYxQjIyIC8qIEphdmFGaWVsZEpTQy5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJQkNEM0Y5ODMxMzI2QzkzNzAwMDk4QTYwIC8qIFRleHRPcmll
bnRhdGlvbi5oIGluIEhlYWRlcnMgKi8sCisJCQkJMzE5NDYxNjMxMzAyMEIyMDAwNEJCM0Y4IC8q
IEpTV2ViS2l0QW5pbWF0aW9uLmggaW4gSGVhZGVycyAqLywKKwkJCQkzMTk0NjE2QTEzMDIwQjY2
MDA0QkIzRjggLyogRE9NV2ViS2l0QW5pbWF0aW9uLmggaW4gSGVhZGVycyAqLywKKwkJCQkzMTk0
NjFGRjEzMDIyQkI4MDA0QkIzRjggLyogSlNXZWJLaXRBbmltYXRpb25MaXN0LmggaW4gSGVhZGVy
cyAqLywKKwkJCQkzMTk0NjIwNDEzMDIyQkYxMDA0QkIzRjggLyogRE9NV2ViS2l0QW5pbWF0aW9u
TGlzdC5oIGluIEhlYWRlcnMgKi8sCisJCQkJMzE5RTY5QjMxMzI5OUJCRDAwNEFDOTFBIC8qIFdl
YktpdEFuaW1hdGlvbi5oIGluIEhlYWRlcnMgKi8sCisJCQkJMzE5RTY5QjYxMzI5OUJCRDAwNEFD
OTFBIC8qIFdlYktpdEFuaW1hdGlvbkxpc3QuaCBpbiBIZWFkZXJzICovLAogCQkJKTsKIAkJCXJ1
bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpAQCAtMjUyMzIsNiAr
MjUyODQsMTQgQEAKIAkJCQk4MTVFNjE2NzEzMjU4N0FBMDBCNjIyQjAgLyogRGF0YVRyYW5zZmVy
SXRlbS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk4MTAyQzU4ODEzMjVCQjExMDBEREU2N0EgLyog
U3RyaW5nQ2FsbGJhY2suY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNUQ0RjUxREYxMzI3MjU0ODAw
MTZGNTQxIC8qIEhUTUxDb252ZXJ0ZXIubW0gaW4gU291cmNlcyAqLywKKwkJCQkzMTk0NjE2MjEz
MDIwQjIwMDA0QkIzRjggLyogSlNXZWJLaXRBbmltYXRpb24uY3BwIGluIFNvdXJjZXMgKi8sCisJ
CQkJMzE5NDYxNkIxMzAyMEI2NjAwNEJCM0Y4IC8qIERPTVdlYktpdEFuaW1hdGlvbi5tbSBpbiBT
b3VyY2VzICovLAorCQkJCTMxOTQ2MUZFMTMwMjJCQjgwMDRCQjNGOCAvKiBKU1dlYktpdEFuaW1h
dGlvbkxpc3QuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMzE5NDYyMDUxMzAyMkJGMTAwNEJCM0Y4
IC8qIERPTVdlYktpdEFuaW1hdGlvbkxpc3QubW0gaW4gU291cmNlcyAqLywKKwkJCQkzMTk0NjIz
MjEzMDIyRjY1MDA0QkIzRjggLyogSlNXZWJLaXRBbmltYXRpb25MaXN0Q3VzdG9tLmNwcCBpbiBT
b3VyY2VzICovLAorCQkJCTMxOUU2ODg3MTMyN0M5MTEwMDRBQzkxQSAvKiBKU1dlYktpdEFuaW1h
dGlvbkN1c3RvbS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkzMTlFNjlCMjEzMjk5QkJEMDA0QUM5
MUEgLyogV2ViS2l0QW5pbWF0aW9uLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTMxOUU2OUI1MTMy
OTlCQkQwMDRBQzkxQSAvKiBXZWJLaXRBbmltYXRpb25MaXN0LmNwcCBpbiBTb3VyY2VzICovLAog
CQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9Owpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNCaW5kaW5nc0FsbEluT25l
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQmluZGluZ3NBbGxJbk9uZS5jcHAK
aW5kZXggYjUzZDk1MC4uNGNhZGU2ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvSlNCaW5kaW5nc0FsbEluT25lLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9KU0JpbmRpbmdzQWxsSW5PbmUuY3BwCkBAIC0xNDMsNiArMTQzLDggQEAKICNpbmNsdWRl
ICJKU1VpbnQxNkFycmF5Q3VzdG9tLmNwcCIKICNpbmNsdWRlICJKU1VpbnQzMkFycmF5Q3VzdG9t
LmNwcCIKICNpbmNsdWRlICJKU1VpbnQ4QXJyYXlDdXN0b20uY3BwIgorI2luY2x1ZGUgIkpTV2Vi
S2l0QW5pbWF0aW9uQ3VzdG9tLmNwcCIKKyNpbmNsdWRlICJKU1dlYktpdEFuaW1hdGlvbkxpc3RD
dXN0b20uY3BwIgogI2luY2x1ZGUgIkpTV2ViS2l0Q1NTS2V5ZnJhbWVSdWxlQ3VzdG9tLmNwcCIK
ICNpbmNsdWRlICJKU1dlYktpdENTU0tleWZyYW1lc1J1bGVDdXN0b20uY3BwIgogI2luY2x1ZGUg
IkpTV2ViS2l0Q1NTTWF0cml4Q3VzdG9tLmNwcCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTV2ViS2l0QW5pbWF0aW9uQ3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTV2ViS2l0QW5pbWF0aW9uQ3VzdG9tLmNwcApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwLi44NDI1YzRjCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNXZWJLaXRBbmltYXRpb25DdXN0b20uY3BwCkBAIC0wLDAgKzEs
NDQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgQXBwbGUgSW5jLiBBbGwgcmlnaHQgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBDT01QVVRFUiwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IENPTVBVVEVSLCBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBS
T0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkpTV2ViS2l0QW5p
bWF0aW9uLmgiCisKKyNpbmNsdWRlICJXZWJLaXRBbmltYXRpb24uaCIKKwordXNpbmcgbmFtZXNw
YWNlIEpTQzsKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitKU1ZhbHVlIEpTV2ViS2l0QW5pbWF0
aW9uOjppdGVyYXRpb25Db3VudChFeGVjU3RhdGUqKSBjb25zdAoreworICAgIFdlYktpdEFuaW1h
dGlvbiogaW1wID0gaW1wbCgpOworICAgIGludCBjb3VudCA9IGltcC0+aXRlcmF0aW9uQ291bnQo
KTsKKyAgICBpZiAoY291bnQgPT0gQW5pbWF0aW9uOjpJdGVyYXRpb25Db3VudEluZmluaXRlKQor
ICAgICAgICByZXR1cm4ganNOdW1iZXIoc3RkOjpudW1lcmljX2xpbWl0czxmbG9hdD46OmluZmlu
aXR5KCkpOworICAgIHJldHVybiBqc051bWJlcihjb3VudCk7Cit9CisKK30KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTV2ViS2l0QW5pbWF0aW9uTGlzdEN1c3RvbS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dlYktpdEFuaW1hdGlvbkxpc3RDdXN0
b20uY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmVhZjc3Y2YKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dlYktpdEFuaW1hdGlv
bkxpc3RDdXN0b20uY3BwCkBAIC0wLDAgKzEsNDcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTEgQXBwbGUgSW5jLiBBbGwgcmlnaHQgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBgYEFTIElTJycgQU5E
IEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCisgKiBDT05UUklC
VVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5F
U1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
CisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZp
Zy5oIgorI2luY2x1ZGUgIkpTV2ViS2l0QW5pbWF0aW9uTGlzdC5oIgorCisjaW5jbHVkZSAiV2Vi
S2l0QW5pbWF0aW9uTGlzdC5oIgorCit1c2luZyBuYW1lc3BhY2UgSlNDOworCituYW1lc3BhY2Ug
V2ViQ29yZSB7CisKK3ZvaWQgSlNXZWJLaXRBbmltYXRpb25MaXN0OjptYXJrQ2hpbGRyZW4oTWFy
a1N0YWNrJiBtYXJrU3RhY2spCit7CisgICAgQmFzZTo6bWFya0NoaWxkcmVuKG1hcmtTdGFjayk7
CisKKyAgICBXZWJLaXRBbmltYXRpb25MaXN0KiBsaXN0ID0gaW1wbCgpOworICAgIEpTR2xvYmFs
RGF0YSYgZ2xvYmFsRGF0YSA9ICpIZWFwOjpoZWFwKHRoaXMpLT5nbG9iYWxEYXRhKCk7CisKKyAg
ICB1bnNpZ25lZCBsZW5ndGggPSBsaXN0LT5sZW5ndGgoKTsKKyAgICBmb3IgKHVuc2lnbmVkIGkg
PSAwOyBpIDwgbGVuZ3RoOyArK2kpCisgICAgICAgIG1hcmtET01PYmplY3RXcmFwcGVyKG1hcmtT
dGFjaywgZ2xvYmFsRGF0YSwgbGlzdC0+aXRlbShpKSk7Cit9CisKK30KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOFdlYktpdEFuaW1hdGlvbkN1c3RvbS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhXZWJLaXRBbmltYXRpb25D
dXN0b20uY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjlkYTRhZTEKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhXZWJL
aXRBbmltYXRpb25DdXN0b20uY3BwCkBAIC0wLDAgKzEsNTAgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogICogUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
ICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIGBgQVMg
SVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVCBPV05FUiBPUgorICog
Q09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9S
IEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkK
KyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRl
ICJjb25maWcuaCIKKworI2luY2x1ZGUgIlY4QmluZGluZy5oIgorI2luY2x1ZGUgIlY4QmluZGlu
Z01hY3Jvcy5oIgorI2luY2x1ZGUgIlY4UHJveHkuaCIKKyNpbmNsdWRlICJWOFdlYktpdEFuaW1h
dGlvbi5oIgorI2luY2x1ZGUgIldlYktpdEFuaW1hdGlvbi5oIgorCisjaW5jbHVkZSA8djguaD4K
KworbmFtZXNwYWNlIFdlYkNvcmUgeworCit2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gVjhXZWJLaXRB
bmltYXRpb246Oml0ZXJhdGlvbkNvdW50QWNjZXNzb3JHZXR0ZXIodjg6OkxvY2FsPHY4OjpTdHJp
bmc+IG5hbWUsIGNvbnN0IHY4OjpBY2Nlc3NvckluZm8mIGluZm8pCit7CisgICAgSU5DX1NUQVRT
KCJET00uV2ViS2l0QW5pbWF0aW9uLml0ZXJhdGlvbkNvdW50Ll9nZXQiKTsKKyAgICB2ODo6SGFu
ZGxlPHY4OjpPYmplY3Q+IGhvbGRlciA9IGluZm8uSG9sZGVyKCk7CisgICAgV2ViS2l0QW5pbWF0
aW9uKiBpbXAgPSBWOFdlYktpdEFuaW1hdGlvbjo6dG9OYXRpdmUoaG9sZGVyKTsKKyAgICBpbnQg
Y291bnQgPSBpbXAtPml0ZXJhdGlvbkNvdW50KCk7CisgICAgaWYgKGNvdW50ID09IEFuaW1hdGlv
bjo6SXRlcmF0aW9uQ291bnRJbmZpbml0ZSkKKyAgICAgICAgcmV0dXJuIHY4OjpOdW1iZXI6Ok5l
dyhzdGQ6Om51bWVyaWNfbGltaXRzPGZsb2F0Pjo6aW5maW5pdHkoKSk7CisgICAgcmV0dXJuIHY4
OjpOdW1iZXI6Ok5ldyhjb3VudCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUv
ZG9tL0VsZW1lbnQuY3BwCmluZGV4IDY0ZDI5NWIuLmUxOGM3NTUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVu
dC5jcHAKQEAgLTU1LDYgKzU1LDcgQEAKICNpbmNsdWRlICJSZW5kZXJXaWRnZXQuaCIKICNpbmNs
dWRlICJTZXR0aW5ncy5oIgogI2luY2x1ZGUgIlRleHRJdGVyYXRvci5oIgorI2luY2x1ZGUgIldl
YktpdEFuaW1hdGlvbkxpc3QuaCIKICNpbmNsdWRlICJYTUxOYW1lcy5oIgogI2luY2x1ZGUgPHd0
Zi90ZXh0L0NTdHJpbmcuaD4KIApAQCAtMTg3Niw0ICsxODc3LDE3IEBAIGJvb2wgRWxlbWVudDo6
aXNTcGVsbENoZWNraW5nRW5hYmxlZCgpIGNvbnN0CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKK1Bh
c3NSZWZQdHI8V2ViS2l0QW5pbWF0aW9uTGlzdD4gRWxlbWVudDo6d2Via2l0R2V0QW5pbWF0aW9u
cygpIGNvbnN0Cit7CisgICAgaWYgKCFyZW5kZXJlcigpKQorICAgICAgICByZXR1cm4gMDsKKwor
ICAgIEFuaW1hdGlvbkNvbnRyb2xsZXIqIGFuaW1Db250cm9sbGVyID0gcmVuZGVyZXIoKS0+YW5p
bWF0aW9uKCk7CisKKyAgICBpZiAoIWFuaW1Db250cm9sbGVyKQorICAgICAgICByZXR1cm4gMDsK
KyAgICAKKyAgICByZXR1cm4gYW5pbUNvbnRyb2xsZXItPmFuaW1hdGlvbnNGb3JSZW5kZXJlcihy
ZW5kZXJlcigpKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmgK
aW5kZXggNWM1NGNlNC4uYmEwODcwYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0Vs
ZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5oCkBAIC0zOSw2ICszOSw3
IEBAIGNsYXNzIERPTVN0cmluZ01hcDsKIGNsYXNzIERPTVRva2VuTGlzdDsKIGNsYXNzIEVsZW1l
bnRSYXJlRGF0YTsKIGNsYXNzIEludFNpemU7CitjbGFzcyBXZWJLaXRBbmltYXRpb25MaXN0Owog
CiBlbnVtIFNwZWxsY2hlY2tBdHRyaWJ1dGVTdGF0ZSB7CiAgICAgU3BlbGxjaGVja0F0dHJpYnV0
ZVRydWUsCkBAIC0zNDQsNiArMzQ1LDggQEAgcHVibGljOgogCiAgICAgdmlydHVhbCBib29sIGlz
U3BlbGxDaGVja2luZ0VuYWJsZWQoKSBjb25zdDsKIAorICAgIFBhc3NSZWZQdHI8V2ViS2l0QW5p
bWF0aW9uTGlzdD4gd2Via2l0R2V0QW5pbWF0aW9ucygpIGNvbnN0OworCiBwcm90ZWN0ZWQ6CiAg
ICAgRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCogZG9jdW1l
bnQsIENvbnN0cnVjdGlvblR5cGUgdHlwZSkKICAgICAgICAgOiBDb250YWluZXJOb2RlKGRvY3Vt
ZW50LCB0eXBlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuaWRsIGIv
U291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuaWRsCmluZGV4IDY1MmE3NWIuLmZjMjg2NDIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmlkbAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vRWxlbWVudC5pZGwKQEAgLTk2LDYgKzk2LDggQEAgbW9kdWxlIGNvcmUgewogICAg
ICAgICB2b2lkIHNjcm9sbEJ5TGluZXMoaW4gbG9uZyBsaW5lcyk7CiAgICAgICAgIHZvaWQgc2Ny
b2xsQnlQYWdlcyhpbiBsb25nIHBhZ2VzKTsKIAorICAgICAgICBXZWJLaXRBbmltYXRpb25MaXN0
IHdlYmtpdEdldEFuaW1hdGlvbnMoKTsKKwogICAgICAgICAvLyBIVE1MIDUKICAgICAgICAgTm9k
ZUxpc3QgZ2V0RWxlbWVudHNCeUNsYXNzTmFtZShpbiBET01TdHJpbmcgbmFtZSk7CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmlkbCBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvRE9NV2luZG93LmlkbAppbmRleCAwZjE0MmE2Li5kM2FkMjQ3IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9ET01XaW5kb3cuaWRsCkBAIC02MDUsNiArNjA1LDkgQEAgbW9kdWxlIHdpbmRvdyB7CiAgICAg
ICAgIGF0dHJpYnV0ZSBbQ29uZGl0aW9uYWw9VklERU8sIEVuYWJsZWRBdFJ1bnRpbWVdIE1lZGlh
RXJyb3JDb25zdHJ1Y3RvciBNZWRpYUVycm9yOwogICAgICAgICBhdHRyaWJ1dGUgW0NvbmRpdGlv
bmFsPVZJREVPLCBFbmFibGVkQXRSdW50aW1lXSBUaW1lUmFuZ2VzQ29uc3RydWN0b3IgVGltZVJh
bmdlczsKIAorICAgICAgICBhdHRyaWJ1dGUgV2ViS2l0QW5pbWF0aW9uQ29uc3RydWN0b3IgV2Vi
S2l0QW5pbWF0aW9uOworICAgICAgICBhdHRyaWJ1dGUgV2ViS2l0QW5pbWF0aW9uTGlzdENvbnN0
cnVjdG9yIFdlYktpdEFuaW1hdGlvbkxpc3Q7CisKICNpZiBkZWZpbmVkKEVOQUJMRV9YUEFUSCkg
JiYgRU5BQkxFX1hQQVRICiAgICAgICAgIGF0dHJpYnV0ZSBYUGF0aEV2YWx1YXRvckNvbnN0cnVj
dG9yIFhQYXRoRXZhbHVhdG9yOwogICAgICAgICBhdHRyaWJ1dGUgWFBhdGhSZXN1bHRDb25zdHJ1
Y3RvciBYUGF0aFJlc3VsdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvV2ViS2l0
QW5pbWF0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvV2ViS2l0QW5pbWF0aW9uLmNwcApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mZjcxMDJmCi0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9XZWJLaXRBbmltYXRpb24uY3BwCkBAIC0wLDAgKzEs
MTIwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgQ09NUFVURVIsIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
UFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4gCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYktpdEFu
aW1hdGlvbi5oIgorCisjaW5jbHVkZSAiQW5pbWF0aW9uLmgiCisjaW5jbHVkZSAiQW5pbWF0aW9u
QmFzZS5oIgorI2luY2x1ZGUgIlJlbmRlclN0eWxlLmgiCisKK3VzaW5nIG5hbWVzcGFjZSBzdGQ7
CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworV2ViS2l0QW5pbWF0aW9uOjpXZWJLaXRBbmltYXRp
b24oUGFzc1JlZlB0cjxLZXlmcmFtZUFuaW1hdGlvbj4ga2V5ZnJhbWVBbmltYXRpb24pCisgICAg
OiBtX2tleWZyYW1lQW5pbWF0aW9uKGtleWZyYW1lQW5pbWF0aW9uKQoreworfQorCitTdHJpbmcg
V2ViS2l0QW5pbWF0aW9uOjpuYW1lKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9rZXlmcmFtZUFu
aW1hdGlvbi0+YW5pbWF0aW9uKCktPm5hbWUoKTsKK30KKworZG91YmxlIFdlYktpdEFuaW1hdGlv
bjo6ZHVyYXRpb24oKSBjb25zdAoreworICAgIHJldHVybiBtX2tleWZyYW1lQW5pbWF0aW9uLT5k
dXJhdGlvbigpOworfQorCitkb3VibGUgV2ViS2l0QW5pbWF0aW9uOjplbGFwc2VkVGltZSgpIGNv
bnN0Cit7CisgICAgcmV0dXJuIG1fa2V5ZnJhbWVBbmltYXRpb24tPmdldEVsYXBzZWRUaW1lKCk7
Cit9CisKK3ZvaWQgV2ViS2l0QW5pbWF0aW9uOjpzZXRFbGFwc2VkVGltZShkb3VibGUgdGltZSkK
K3sKKyAgICBtX2tleWZyYW1lQW5pbWF0aW9uLT5zZXRFbGFwc2VkVGltZSh0aW1lKTsKK30KKwor
ZG91YmxlIFdlYktpdEFuaW1hdGlvbjo6ZGVsYXkoKSBjb25zdAoreworICAgIHJldHVybiBtX2tl
eWZyYW1lQW5pbWF0aW9uLT5hbmltYXRpb24oKS0+ZGVsYXkoKTsKK30KKworaW50IFdlYktpdEFu
aW1hdGlvbjo6aXRlcmF0aW9uQ291bnQoKSBjb25zdAoreworICAgIHJldHVybiBtX2tleWZyYW1l
QW5pbWF0aW9uLT5hbmltYXRpb24oKS0+aXRlcmF0aW9uQ291bnQoKTsKK30KKworYm9vbCBXZWJL
aXRBbmltYXRpb246OnBhdXNlZCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fa2V5ZnJhbWVBbmlt
YXRpb24tPnBhdXNlZCgpOworfQorCitib29sIFdlYktpdEFuaW1hdGlvbjo6ZW5kZWQoKSBjb25z
dAoreworICAgIGludCBpdGVyYXRpb25zID0gaXRlcmF0aW9uQ291bnQoKTsKKyAgICBpZiAoaXRl
cmF0aW9ucyA9PSBBbmltYXRpb246Okl0ZXJhdGlvbkNvdW50SW5maW5pdGUpCisgICAgICAgIHJl
dHVybiBmYWxzZTsKKyAgICByZXR1cm4gbV9rZXlmcmFtZUFuaW1hdGlvbi0+Z2V0RWxhcHNlZFRp
bWUoKSA+IChtX2tleWZyYW1lQW5pbWF0aW9uLT5kdXJhdGlvbigpICogaXRlcmF0aW9ucyk7Cit9
CisKK1dlYktpdEFuaW1hdGlvbjo6RGlyZWN0aW9uIFdlYktpdEFuaW1hdGlvbjo6ZGlyZWN0aW9u
KCkgY29uc3QKK3sKKyAgICBpZiAobV9rZXlmcmFtZUFuaW1hdGlvbi0+YW5pbWF0aW9uKCktPmRp
cmVjdGlvbigpID09IEFuaW1hdGlvbjo6QW5pbWF0aW9uRGlyZWN0aW9uTm9ybWFsKQorICAgICAg
ICByZXR1cm4gRElSRUNUSU9OX05PUk1BTDsKKyAgICByZXR1cm4gRElSRUNUSU9OX0FMVEVSTkFU
RTsKK30KKworV2ViS2l0QW5pbWF0aW9uOjpGaWxsTW9kZSBXZWJLaXRBbmltYXRpb246OmZpbGxN
b2RlKCkgY29uc3QKK3sKKyAgICBzd2l0Y2ggKG1fa2V5ZnJhbWVBbmltYXRpb24tPmFuaW1hdGlv
bigpLT5maWxsTW9kZSgpKSB7CisgICAgY2FzZSBBbmltYXRpb25GaWxsTW9kZU5vbmU6CisgICAg
ICAgIHJldHVybiBGSUxMX05PTkU7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQW5pbWF0aW9u
RmlsbE1vZGVGb3J3YXJkczoKKyAgICAgICAgcmV0dXJuIEZJTExfRk9SV0FSRFM7CisgICAgICAg
IGJyZWFrOworICAgIGNhc2UgQW5pbWF0aW9uRmlsbE1vZGVCYWNrd2FyZHM6CisgICAgICAgIHJl
dHVybiBGSUxMX0JBQ0tXQVJEUzsKKyAgICAgICAgYnJlYWs7CisgICAgZGVmYXVsdDoKKyAgICAg
ICAgcmV0dXJuIEZJTExfQk9USDsKKyAgICAgICAgYnJlYWs7CisgICAgfQorfQorCit2b2lkIFdl
YktpdEFuaW1hdGlvbjo6cGF1c2UoKQoreworICAgIG1fa2V5ZnJhbWVBbmltYXRpb24tPnBhdXNl
KCk7Cit9CisKK3ZvaWQgV2ViS2l0QW5pbWF0aW9uOjpwbGF5KCkKK3sKKyAgICBtX2tleWZyYW1l
QW5pbWF0aW9uLT5wbGF5KCk7Cit9CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvV2ViS2l0QW5pbWF0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1dlYktpdEFuaW1hdGlv
bi5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjZiZWExZTUKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1dlYktpdEFuaW1hdGlvbi5oCkBAIC0wLDAg
KzEsODEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBDT01QVVRFUiwgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9S
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLiAKKyAqLworCisjaWZuZGVmIFdlYktpdEFuaW1hdGlvbl9oCisjZGVmaW5lIFdl
YktpdEFuaW1hdGlvbl9oCisKKyNpbmNsdWRlICJBbmltYXRpb24uaCIKKyNpbmNsdWRlICJBbmlt
YXRpb25CYXNlLmgiCisjaW5jbHVkZSAiS2V5ZnJhbWVBbmltYXRpb24uaCIKKyNpbmNsdWRlICJS
ZW5kZXJTdHlsZS5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFdlYktpdEFuaW1h
dGlvbiA6IHB1YmxpYyBSZWZDb3VudGVkPFdlYktpdEFuaW1hdGlvbj4geworcHVibGljOgorCisg
ICAgc3RhdGljIFBhc3NSZWZQdHI8V2ViS2l0QW5pbWF0aW9uPiBjcmVhdGUoUGFzc1JlZlB0cjxL
ZXlmcmFtZUFuaW1hdGlvbj4ga2V5ZnJhbWVBbmltYXRpb24pCisgICAgeworICAgICAgICByZXR1
cm4gYWRvcHRSZWYobmV3IFdlYktpdEFuaW1hdGlvbihrZXlmcmFtZUFuaW1hdGlvbikpOworICAg
IH0KKworICAgIHZpcnR1YWwgfldlYktpdEFuaW1hdGlvbigpIHsgfQorCisgICAgLy8gRE9NIEFQ
SQorCisgICAgU3RyaW5nIG5hbWUoKSBjb25zdDsKKworICAgIGRvdWJsZSBkdXJhdGlvbigpIGNv
bnN0OworCisgICAgZG91YmxlIGVsYXBzZWRUaW1lKCkgY29uc3Q7CisgICAgdm9pZCBzZXRFbGFw
c2VkVGltZShkb3VibGUpOworCisgICAgZG91YmxlIGRlbGF5KCkgY29uc3Q7CisgICAgaW50IGl0
ZXJhdGlvbkNvdW50KCkgY29uc3Q7CisKKyAgICBib29sIHBhdXNlZCgpIGNvbnN0OworICAgIGJv
b2wgZW5kZWQoKSBjb25zdDsKKworICAgIC8vIGRpcmVjdGlvbgorICAgIGVudW0gRGlyZWN0aW9u
IHsgRElSRUNUSU9OX05PUk1BTCwgRElSRUNUSU9OX0FMVEVSTkFURSB9OworICAgIERpcmVjdGlv
biBkaXJlY3Rpb24oKSBjb25zdDsKKworICAgIC8vIGZpbGwgbW9kZQorICAgIGVudW0gRmlsbE1v
ZGUgeyBGSUxMX05PTkUsIEZJTExfQkFDS1dBUkRTLCBGSUxMX0ZPUldBUkRTLCBGSUxMX0JPVEgg
fTsKKyAgICBGaWxsTW9kZSBmaWxsTW9kZSgpIGNvbnN0OworCisgICAgdm9pZCBwbGF5KCk7Cisg
ICAgdm9pZCBwYXVzZSgpOworCitwcm90ZWN0ZWQ6CisgICAgV2ViS2l0QW5pbWF0aW9uKFBhc3NS
ZWZQdHI8S2V5ZnJhbWVBbmltYXRpb24+KTsKKworcHJpdmF0ZToKKyAgICBSZWZQdHI8S2V5ZnJh
bWVBbmltYXRpb24+IG1fa2V5ZnJhbWVBbmltYXRpb247Cit9OworCit9IC8vIG5hbWVzcGFjZQor
CisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvV2ViS2l0QW5pbWF0aW9u
LmlkbCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvV2ViS2l0QW5pbWF0aW9uLmlkbApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44NzgwN2M3Ci0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9XZWJLaXRBbmltYXRpb24uaWRsCkBAIC0wLDAgKzEsNTggQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICoKKyAqIDEuICBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICogMy4gIE5laXRoZXIgdGhlIG5hbWUgb2YgQXBwbGUgQ29tcHV0
ZXIsIEluYy4gKCJBcHBsZSIpIG5vciB0aGUgbmFtZXMgb2YKKyAqICAgICBpdHMgY29udHJpYnV0
b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkCisg
KiAgICAgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBw
ZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5E
IElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisg
KiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBP
UiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdF
UworICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECisgKiBPTiBB
TlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCisgKiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKK21v
ZHVsZSBodG1sIHsKKworICAgIGludGVyZmFjZSBXZWJLaXRBbmltYXRpb24geworCisgICAgICAg
IHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgbmFtZTsKKworICAgICAgICByZWFkb25seSBh
dHRyaWJ1dGUgZmxvYXQgZHVyYXRpb247CisgICAgICAgIGF0dHJpYnV0ZSBmbG9hdCBlbGFwc2Vk
VGltZTsKKworICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgZmxvYXQgZGVsYXk7CisgICAgICAg
IHJlYWRvbmx5IGF0dHJpYnV0ZSBbQ3VzdG9tXSBpbnQgaXRlcmF0aW9uQ291bnQ7CisKKyAgICAg
ICAgcmVhZG9ubHkgYXR0cmlidXRlIGJvb2xlYW4gcGF1c2VkOworICAgICAgICByZWFkb25seSBh
dHRyaWJ1dGUgYm9vbGVhbiBlbmRlZDsKKworICAgICAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCBE
SVJFQ1RJT05fTk9STUFMID0gMDsKKyAgICAgICAgY29uc3QgdW5zaWduZWQgc2hvcnQgRElSRUNU
SU9OX0FMVEVSTkFURSA9IDE7CisgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnNpZ25lZCBz
aG9ydCBkaXJlY3Rpb247CisKKyAgICAgICAgY29uc3QgdW5zaWduZWQgc2hvcnQgRklMTF9OT05F
ID0gMDsKKyAgICAgICAgY29uc3QgdW5zaWduZWQgc2hvcnQgRklMTF9CQUNLV0FSRFMgPSAxOwor
ICAgICAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCBGSUxMX0ZPUldBUkRTID0gMjsKKyAgICAgICAg
Y29uc3QgdW5zaWduZWQgc2hvcnQgRklMTF9CT1RIID0gMzsKKyAgICAgICAgcmVhZG9ubHkgYXR0
cmlidXRlIHVuc2lnbmVkIHNob3J0IGZpbGxNb2RlOworCisgICAgICAgIHZvaWQgcGxheSgpOwor
ICAgICAgICB2b2lkIHBhdXNlKCk7CisgICAgfTsKKworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGFnZS9XZWJLaXRBbmltYXRpb25MaXN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
V2ViS2l0QW5pbWF0aW9uTGlzdC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MC4uMzFlNDZkNwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvV2ViS2l0
QW5pbWF0aW9uTGlzdC5jcHAKQEAgLTAsMCArMSw4MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAxMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBgYEFTIElTJycg
QU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCisgKiBDT05U
UklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVT
SU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICog
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpbmNsdWRlICJj
b25maWcuaCIKKyNpbmNsdWRlICJXZWJLaXRBbmltYXRpb25MaXN0LmgiCisKKyNpbmNsdWRlICJB
bmltYXRpb24uaCIKKyNpbmNsdWRlICJBbmltYXRpb25CYXNlLmgiCisjaW5jbHVkZSAiUmVuZGVy
U3R5bGUuaCIKKyNpbmNsdWRlICJXZWJLaXRBbmltYXRpb24uaCIKKworbmFtZXNwYWNlIFdlYkNv
cmUgeworICAgIAorV2ViS2l0QW5pbWF0aW9uTGlzdDo6V2ViS2l0QW5pbWF0aW9uTGlzdCgpCit7
Cit9CisKK1dlYktpdEFuaW1hdGlvbkxpc3Q6On5XZWJLaXRBbmltYXRpb25MaXN0KCkKK3sKK30K
KwordW5zaWduZWQgV2ViS2l0QW5pbWF0aW9uTGlzdDo6bGVuZ3RoKCkgY29uc3QKK3sKKyAgICBy
ZXR1cm4gbV9hbmltYXRpb25zLnNpemUoKTsKK30KKworV2ViS2l0QW5pbWF0aW9uKiBXZWJLaXRB
bmltYXRpb25MaXN0OjppdGVtKHVuc2lnbmVkIGluZGV4KQoreworICAgIGlmIChpbmRleCA8IG1f
YW5pbWF0aW9ucy5zaXplKCkpCisgICAgICAgIHJldHVybiBtX2FuaW1hdGlvbnNbaW5kZXhdLmdl
dCgpOworICAgIHJldHVybiAwOworfQorCit2b2lkIFdlYktpdEFuaW1hdGlvbkxpc3Q6OmRlbGV0
ZUFuaW1hdGlvbih1bnNpZ25lZCBpbmRleCkKK3sKKyAgICBpZiAoaW5kZXggPj0gbV9hbmltYXRp
b25zLnNpemUoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9hbmltYXRpb25zLnJlbW92ZShp
bmRleCk7Cit9CisKK3ZvaWQgV2ViS2l0QW5pbWF0aW9uTGlzdDo6YXBwZW5kKFJlZlB0cjxXZWJL
aXRBbmltYXRpb24+IGFuaW1hdGlvbikKK3sKKyAgICBtX2FuaW1hdGlvbnMuYXBwZW5kKGFuaW1h
dGlvbik7Cit9CisKK3Vuc2lnbmVkIFdlYktpdEFuaW1hdGlvbkxpc3Q6Omluc2VydEFuaW1hdGlv
bihSZWZQdHI8V2ViS2l0QW5pbWF0aW9uPiBhbmltYXRpb24sIHVuc2lnbmVkIGluZGV4KQorewor
ICAgIGlmICghYW5pbWF0aW9uKQorICAgICAgICByZXR1cm4gMDsKKworICAgIGlmIChpbmRleCA+
IG1fYW5pbWF0aW9ucy5zaXplKCkpCisgICAgICAgIHJldHVybiAwOworCisgICAgbV9hbmltYXRp
b25zLmluc2VydChpbmRleCwgYW5pbWF0aW9uKTsKKyAgICByZXR1cm4gaW5kZXg7Cit9CisKK30g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKKwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9X
ZWJLaXRBbmltYXRpb25MaXN0LmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1dlYktpdEFuaW1hdGlv
bkxpc3QuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iODJlMzhhCi0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9XZWJLaXRBbmltYXRpb25MaXN0LmgK
QEAgLTAsMCArMSw2MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBU
SEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1Q
TEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpZm5kZWYgV2ViS2l0QW5pbWF0aW9uTGlzdF9o
CisjZGVmaW5lIFdlYktpdEFuaW1hdGlvbkxpc3RfaAorCisjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQ
dHIuaD4KKyNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgorI2luY2x1ZGUgPHd0Zi9SZWZQdHIu
aD4KKyNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKyAgCitj
bGFzcyBXZWJLaXRBbmltYXRpb247CisKK2NsYXNzIFdlYktpdEFuaW1hdGlvbkxpc3QgOiBwdWJs
aWMgUmVmQ291bnRlZDxXZWJLaXRBbmltYXRpb25MaXN0PiB7CitwdWJsaWM6CisgICAgc3RhdGlj
IFBhc3NSZWZQdHI8V2ViS2l0QW5pbWF0aW9uTGlzdD4gY3JlYXRlKCkKKyAgICB7CisgICAgICAg
IHJldHVybiBhZG9wdFJlZihuZXcgV2ViS2l0QW5pbWF0aW9uTGlzdCgpKTsKKyAgICB9CisgICAg
fldlYktpdEFuaW1hdGlvbkxpc3QoKTsKKworICAgIHVuc2lnbmVkIGxlbmd0aCgpIGNvbnN0Owor
ICAgIFdlYktpdEFuaW1hdGlvbiogaXRlbSh1bnNpZ25lZCBpbmRleCk7CisKKyAgICB1bnNpZ25l
ZCBpbnNlcnRBbmltYXRpb24oUmVmUHRyPFdlYktpdEFuaW1hdGlvbj4sIHVuc2lnbmVkIGluZGV4
KTsKKyAgICB2b2lkIGRlbGV0ZUFuaW1hdGlvbih1bnNpZ25lZCBpbmRleCk7CisgICAgdm9pZCBh
cHBlbmQoUmVmUHRyPFdlYktpdEFuaW1hdGlvbj4pOworCitwcml2YXRlOgorICAgIFdlYktpdEFu
aW1hdGlvbkxpc3QoKTsKKworICAgIFZlY3RvcjxSZWZQdHI8V2ViS2l0QW5pbWF0aW9uPiA+IG1f
YW5pbWF0aW9uczsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIFdl
YktpdEFuaW1hdGlvbkxpc3RfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9XZWJL
aXRBbmltYXRpb25MaXN0LmlkbCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvV2ViS2l0QW5pbWF0aW9u
TGlzdC5pZGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNGMzNzZlNgotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvV2ViS2l0QW5pbWF0aW9uTGlzdC5p
ZGwKQEAgLTAsMCArMSwzNiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVY
RU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKK21vZHVsZSBodG1sIHsKKworICAgIGludGVy
ZmFjZSBbCisgICAgICAgIEN1c3RvbU1hcmtGdW5jdGlvbiwKKyAgICAgICAgSGFzSW5kZXhHZXR0
ZXIKKyAgICBdIFdlYktpdEFuaW1hdGlvbkxpc3QgeworICAgICAgICByZWFkb25seSBhdHRyaWJ1
dGUgdW5zaWduZWQgbG9uZyBsZW5ndGg7CisgICAgICAgIFdlYktpdEFuaW1hdGlvbiBpdGVtKGlu
IHVuc2lnbmVkIGxvbmcgaW5kZXgpOworICAgIH07CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0FuaW1hdGlvbkJhc2UuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9hbmltYXRpb24vQW5pbWF0aW9uQmFzZS5jcHAKaW5kZXggOWE5MDZlMi4uMzgyMmQzOCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vQW5pbWF0aW9uQmFzZS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vQW5pbWF0aW9uQmFzZS5jcHAK
QEAgLTgwOCw4ICs4MDgsMTMgQEAgQW5pbWF0aW9uQmFzZTo6QW5pbWF0aW9uQmFzZShjb25zdCBB
bmltYXRpb24qIHRyYW5zaXRpb24sIFJlbmRlck9iamVjdCogcmVuZGVyZXIKIAogQW5pbWF0aW9u
QmFzZTo6fkFuaW1hdGlvbkJhc2UoKQogewotICAgIG1fY29tcEFuaW0tPmFuaW1hdGlvbkNvbnRy
b2xsZXIoKS0+cmVtb3ZlRnJvbVN0eWxlQXZhaWxhYmxlV2FpdExpc3QodGhpcyk7Ci0gICAgbV9j
b21wQW5pbS0+YW5pbWF0aW9uQ29udHJvbGxlcigpLT5yZW1vdmVGcm9tU3RhcnRUaW1lUmVzcG9u
c2VXYWl0TGlzdCh0aGlzKTsKKyAgICAvLyBJZiB3ZSBoYXZlIGEgcmVuZGVyZXIsIHJlbW92ZSBv
dXJzZWx2ZXMgZnJvbSB0aGUgd2FpdCBsaXN0cy4gV2UgY2FuIGdldCBpbnRvCisgICAgLy8gdGhl
IHNpdHVhdGlvbiB3aGVyZSB0aGVyZSBpcyBubyByZW5kZXJlciB3aGVuIHRoZSBiaW5kaW5nIGhh
cyBhIHJlZmVyZW5jZSB0bworICAgIC8vIHRoaXMgb2JqZWN0LCBidXQgdGhlIGVsZW1lbnQgaGFz
IHNpbmNlIGJlZW4gcmVtb3ZlZCBmcm9tIHRoZSBkb2N1bWVudC4KKyAgICBpZiAobV9vYmplY3Qp
IHsKKyAgICAgICAgbV9jb21wQW5pbS0+YW5pbWF0aW9uQ29udHJvbGxlcigpLT5yZW1vdmVGcm9t
U3R5bGVBdmFpbGFibGVXYWl0TGlzdCh0aGlzKTsKKyAgICAgICAgbV9jb21wQW5pbS0+YW5pbWF0
aW9uQ29udHJvbGxlcigpLT5yZW1vdmVGcm9tU3RhcnRUaW1lUmVzcG9uc2VXYWl0TGlzdCh0aGlz
KTsKKyAgICB9CiB9CiAKIGJvb2wgQW5pbWF0aW9uQmFzZTo6cHJvcGVydGllc0VxdWFsKGludCBw
cm9wLCBjb25zdCBSZW5kZXJTdHlsZSogYSwgY29uc3QgUmVuZGVyU3R5bGUqIGIpCkBAIC0xMzk3
LDUgKzE0MDIsMjEgQEAgZG91YmxlIEFuaW1hdGlvbkJhc2U6OmdldEVsYXBzZWRUaW1lKCkgY29u
c3QKIAogICAgIHJldHVybiBiZWdpbkFuaW1hdGlvblVwZGF0ZVRpbWUoKSAtIG1fc3RhcnRUaW1l
OwogfQotICAgIAorCit2b2lkIEFuaW1hdGlvbkJhc2U6OnNldEVsYXBzZWRUaW1lKGRvdWJsZSB0
aW1lKQoreworICAgIC8vIEZJWE1FOiBpbXBsZW1lbnQgdGhpcyBtZXRob2QKKyAgICBVTlVTRURf
UEFSQU0odGltZSk7Cit9CisKK3ZvaWQgQW5pbWF0aW9uQmFzZTo6cGxheSgpCit7CisgICAgLy8g
RklYTUU6IGltcGxlbWVudCB0aGlzIG1ldGhvZAorfQorCit2b2lkIEFuaW1hdGlvbkJhc2U6OnBh
dXNlKCkKK3sKKyAgICAvLyBGSVhNRTogaW1wbGVtZW50IHRoaXMgbWV0aG9kCit9CisKIH0gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0
aW9uL0FuaW1hdGlvbkJhc2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0FuaW1h
dGlvbkJhc2UuaAppbmRleCA4NzdkNjQ5Li5jNWFmMGEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL2FuaW1hdGlvbi9BbmltYXRpb25CYXNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9hbmltYXRpb24vQW5pbWF0aW9uQmFzZS5oCkBAIC0xNjMsMTEgKzE2MywxNyBAQCBwdWJs
aWM6CiAgICAgCiAgICAgLy8gRnJlZXplIHRoZSBhbmltYXRpb247IHVzZWQgYnkgRHVtcFJlbmRl
clRyZWUuCiAgICAgdm9pZCBmcmVlemVBdFRpbWUoZG91YmxlIHQpOworCisgICAgLy8gUGxheSBh
bmQgcGF1c2UgQVBJCisgICAgdm9pZCBwbGF5KCk7CisgICAgdm9pZCBwYXVzZSgpOwogICAgIAog
ICAgIGRvdWJsZSBiZWdpbkFuaW1hdGlvblVwZGF0ZVRpbWUoKSBjb25zdDsKICAgICAKICAgICBk
b3VibGUgZ2V0RWxhcHNlZFRpbWUoKSBjb25zdDsKLSAgICAKKyAgICAvLyBTZXR0aW5nIHRoZSBl
bGFwc2VkIHRpbWUgd2lsbCBhZGp1c3QgdGhlIHN0YXJ0IHRpbWUgYW5kIHBvc3NpYmx5IHBhdXNl
IHRpbWUuCisgICAgdm9pZCBzZXRFbGFwc2VkVGltZShkb3VibGUpOworCiAgICAgQW5pbWF0aW9u
QmFzZSogbmV4dCgpIGNvbnN0IHsgcmV0dXJuIG1fbmV4dDsgfQogICAgIHZvaWQgc2V0TmV4dChB
bmltYXRpb25CYXNlKiBhbmltYXRpb24pIHsgbV9uZXh0ID0gYW5pbWF0aW9uOyB9CiAgICAgCkBA
IC0xODIsNyArMTg4LDkgQEAgcHVibGljOgogI2VuZGlmCiAKICAgICBzdGF0aWMgSGFzaFNldDxp
bnQ+IGFuaW1hdGFibGVTaG9ydGhhbmRzQWZmZWN0aW5nUHJvcGVydHkoaW50IHByb3BlcnR5KTsK
LSAgICAKKworICAgIGNvbnN0IEFuaW1hdGlvbiogYW5pbWF0aW9uKCkgY29uc3QgeyByZXR1cm4g
bV9hbmltYXRpb24uZ2V0KCk7IH0KKwogcHJvdGVjdGVkOgogICAgIHZpcnR1YWwgdm9pZCBvdmVy
cmlkZUFuaW1hdGlvbnMoKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgcmVzdW1lT3ZlcnJpZGRlbkFu
aW1hdGlvbnMoKSB7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9u
L0FuaW1hdGlvbkNvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24v
QW5pbWF0aW9uQ29udHJvbGxlci5jcHAKaW5kZXggZGNkZWEwMy4uYTczMDA2NSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vQW5pbWF0aW9uQ29udHJvbGxlci5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vQW5pbWF0aW9uQ29udHJvbGxlci5j
cHAKQEAgLTM3LDEyICszNywxNCBAQAogI2luY2x1ZGUgIkZyYW1lLmgiCiAjaW5jbHVkZSAiUmVu
ZGVyVmlldy5oIgogI2luY2x1ZGUgIldlYktpdEFuaW1hdGlvbkV2ZW50LmgiCisjaW5jbHVkZSAi
V2ViS2l0QW5pbWF0aW9uTGlzdC5oIgogI2luY2x1ZGUgIldlYktpdFRyYW5zaXRpb25FdmVudC5o
IgogI2luY2x1ZGUgPHd0Zi9DdXJyZW50VGltZS5oPgogI2luY2x1ZGUgPHd0Zi9VbnVzZWRQYXJh
bS5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKKy8vIEZJWE1FOiBXaHkgaXNuJ3QgdGhpcyBz
ZXQgdG8gNjBmcHMgb3Igc29tZXRoaW5nPwogc3RhdGljIGNvbnN0IGRvdWJsZSBjQW5pbWF0aW9u
VGltZXJEZWxheSA9IDAuMDI1Owogc3RhdGljIGNvbnN0IGRvdWJsZSBjQmVnaW5BbmltYXRpb25V
cGRhdGVUaW1lTm90U2V0ID0gLTE7CiAKQEAgLTQ3OSw2ICs0ODEsMTYgQEAgdm9pZCBBbmltYXRp
b25Db250cm9sbGVyUHJpdmF0ZTo6c3RhcnRUaW1lUmVzcG9uc2UoZG91YmxlIHRpbWUpCiAgICAg
bV9sYXN0U3RhcnRUaW1lUmVzcG9uc2VXYWl0ZXIgPSAwOwogfQogCitQYXNzUmVmUHRyPFdlYktp
dEFuaW1hdGlvbkxpc3Q+IEFuaW1hdGlvbkNvbnRyb2xsZXJQcml2YXRlOjphbmltYXRpb25zRm9y
UmVuZGVyZXIoUmVuZGVyT2JqZWN0KiByZW5kZXJlcikgY29uc3QKK3sKKyAgICBSZWZQdHI8Q29t
cG9zaXRlQW5pbWF0aW9uPiBhbmltYXRpb24gPSBtX2NvbXBvc2l0ZUFuaW1hdGlvbnMuZ2V0KHJl
bmRlcmVyKTsKKworICAgIGlmICghYW5pbWF0aW9uKQorICAgICAgICByZXR1cm4gMDsKKworICAg
IHJldHVybiBhbmltYXRpb24tPmFuaW1hdGlvbnMoKTsKK30KKwogQW5pbWF0aW9uQ29udHJvbGxl
cjo6QW5pbWF0aW9uQ29udHJvbGxlcihGcmFtZSogZnJhbWUpCiAgICAgOiBtX2RhdGEobmV3IEFu
aW1hdGlvbkNvbnRyb2xsZXJQcml2YXRlKGZyYW1lKSkKIHsKQEAgLTYxMiw0ICs2MjQsOSBAQCBi
b29sIEFuaW1hdGlvbkNvbnRyb2xsZXI6OnN1cHBvcnRzQWNjZWxlcmF0ZWRBbmltYXRpb25PZlBy
b3BlcnR5KENTU1Byb3BlcnR5SUQgcAogI2VuZGlmCiB9CiAKK1Bhc3NSZWZQdHI8V2ViS2l0QW5p
bWF0aW9uTGlzdD4gQW5pbWF0aW9uQ29udHJvbGxlcjo6YW5pbWF0aW9uc0ZvclJlbmRlcmVyKFJl
bmRlck9iamVjdCogcmVuZGVyZXIpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fZGF0YS0+YW5pbWF0
aW9uc0ZvclJlbmRlcmVyKHJlbmRlcmVyKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vQW5pbWF0aW9uQ29udHJv
bGxlci5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vQW5pbWF0aW9uQ29udHJvbGxl
ci5oCmluZGV4IDUyNzk0NjcuLmEzNTVmODcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvYW5pbWF0aW9uL0FuaW1hdGlvbkNvbnRyb2xsZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL2FuaW1hdGlvbi9BbmltYXRpb25Db250cm9sbGVyLmgKQEAgLTQyLDYgKzQyLDcgQEAgY2xh
c3MgRnJhbWU7CiBjbGFzcyBOb2RlOwogY2xhc3MgUmVuZGVyT2JqZWN0OwogY2xhc3MgUmVuZGVy
U3R5bGU7CitjbGFzcyBXZWJLaXRBbmltYXRpb25MaXN0OwogCiBjbGFzcyBBbmltYXRpb25Db250
cm9sbGVyIHsKIHB1YmxpYzoKQEAgLTczLDYgKzc0LDggQEAgcHVibGljOgogICAgIAogICAgIHN0
YXRpYyBib29sIHN1cHBvcnRzQWNjZWxlcmF0ZWRBbmltYXRpb25PZlByb3BlcnR5KENTU1Byb3Bl
cnR5SUQpOwogCisgICAgUGFzc1JlZlB0cjxXZWJLaXRBbmltYXRpb25MaXN0PiBhbmltYXRpb25z
Rm9yUmVuZGVyZXIoUmVuZGVyT2JqZWN0KikgY29uc3Q7CisKIHByaXZhdGU6CiAgICAgQW5pbWF0
aW9uQ29udHJvbGxlclByaXZhdGUqIG1fZGF0YTsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL2FuaW1hdGlvbi9BbmltYXRpb25Db250cm9sbGVyUHJpdmF0ZS5oIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9hbmltYXRpb24vQW5pbWF0aW9uQ29udHJvbGxlclByaXZhdGUuaAppbmRl
eCAxODZkZDdkLi44OGI4MmE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1h
dGlvbi9BbmltYXRpb25Db250cm9sbGVyUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvYW5pbWF0aW9uL0FuaW1hdGlvbkNvbnRyb2xsZXJQcml2YXRlLmgKQEAgLTQ4LDYgKzQ4LDcg
QEAgY2xhc3MgRnJhbWU7CiBjbGFzcyBOb2RlOwogY2xhc3MgUmVuZGVyT2JqZWN0OwogY2xhc3Mg
UmVuZGVyU3R5bGU7CitjbGFzcyBXZWJLaXRBbmltYXRpb25MaXN0OwogCiBjbGFzcyBBbmltYXRp
b25Db250cm9sbGVyUHJpdmF0ZSB7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoQW5pbWF0aW9u
Q29udHJvbGxlclByaXZhdGUpOyBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKQEAgLTkzLDYgKzk0
LDggQEAgcHVibGljOgogICAgIHZvaWQgYWRkVG9TdGFydFRpbWVSZXNwb25zZVdhaXRMaXN0KEFu
aW1hdGlvbkJhc2UqLCBib29sIHdpbGxHZXRSZXNwb25zZSk7CiAgICAgdm9pZCByZW1vdmVGcm9t
U3RhcnRUaW1lUmVzcG9uc2VXYWl0TGlzdChBbmltYXRpb25CYXNlKik7ICAgIAogICAgIAorICAg
IFBhc3NSZWZQdHI8V2ViS2l0QW5pbWF0aW9uTGlzdD4gYW5pbWF0aW9uc0ZvclJlbmRlcmVyKFJl
bmRlck9iamVjdCopIGNvbnN0OworICAgIAogcHJpdmF0ZToKICAgICB2b2lkIGFuaW1hdGlvblRp
bWVyRmlyZWQoVGltZXI8QW5pbWF0aW9uQ29udHJvbGxlclByaXZhdGU+Kik7CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0NvbXBvc2l0ZUFuaW1hdGlvbi5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9Db21wb3NpdGVBbmltYXRpb24uY3BwCmlu
ZGV4IDYwMjQ5MWUuLjhiOWMxM2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5p
bWF0aW9uL0NvbXBvc2l0ZUFuaW1hdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9h
bmltYXRpb24vQ29tcG9zaXRlQW5pbWF0aW9uLmNwcApAQCAtMzYsNiArMzYsOCBAQAogI2luY2x1
ZGUgIktleWZyYW1lQW5pbWF0aW9uLmgiCiAjaW5jbHVkZSAiUmVuZGVyT2JqZWN0LmgiCiAjaW5j
bHVkZSAiUmVuZGVyU3R5bGUuaCIKKyNpbmNsdWRlICJXZWJLaXRBbmltYXRpb24uaCIKKyNpbmNs
dWRlICJXZWJLaXRBbmltYXRpb25MaXN0LmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAt
MjUyLDggKzI1NCwxMCBAQCB2b2lkIENvbXBvc2l0ZUFuaW1hdGlvbjo6dXBkYXRlS2V5ZnJhbWVB
bmltYXRpb25zKFJlbmRlck9iamVjdCogcmVuZGVyZXIsIFJlbmRlcgogICAgIGtmZW5kID0gbV9r
ZXlmcmFtZUFuaW1hdGlvbnMuZW5kKCk7CiAgICAgZm9yIChBbmltYXRpb25OYW1lTWFwOjpjb25z
dF9pdGVyYXRvciBpdCA9IG1fa2V5ZnJhbWVBbmltYXRpb25zLmJlZ2luKCk7IGl0ICE9IGtmZW5k
OyArK2l0KSB7CiAgICAgICAgIEtleWZyYW1lQW5pbWF0aW9uKiBrZXlmcmFtZUFuaW0gPSBpdC0+
c2Vjb25kLmdldCgpOwotICAgICAgICBpZiAoa2V5ZnJhbWVBbmltLT5pbmRleCgpIDwgMCkKKyAg
ICAgICAgaWYgKGtleWZyYW1lQW5pbS0+aW5kZXgoKSA8IDApIHsKICAgICAgICAgICAgIGFuaW1z
VG9CZVJlbW92ZWQuYXBwZW5kKGtleWZyYW1lQW5pbS0+bmFtZSgpLmltcGwoKSk7CisgICAgICAg
ICAgICBrZXlmcmFtZUFuaW0tPmNsZWFyUmVuZGVyZXIoKTsKKyAgICAgICAgfQogICAgIH0KICAg
ICAKICAgICAvLyBOb3cgcmVtb3ZlIHRoZSBhbmltYXRpb25zIGZyb20gdGhlIGxpc3QuCkBAIC01
NjAsNCArNTY0LDIwIEBAIHVuc2lnbmVkIENvbXBvc2l0ZUFuaW1hdGlvbjo6bnVtYmVyT2ZBY3Rp
dmVBbmltYXRpb25zKCkgY29uc3QKICAgICByZXR1cm4gY291bnQ7CiB9CiAKK1Bhc3NSZWZQdHI8
V2ViS2l0QW5pbWF0aW9uTGlzdD4gQ29tcG9zaXRlQW5pbWF0aW9uOjphbmltYXRpb25zKCkgY29u
c3QKK3sKKyAgICBSZWZQdHI8V2ViS2l0QW5pbWF0aW9uTGlzdD4gYW5pbWF0aW9ucyA9IFdlYktp
dEFuaW1hdGlvbkxpc3Q6OmNyZWF0ZSgpOworICAgIGlmICghbV9rZXlmcmFtZUFuaW1hdGlvbnMu
aXNFbXB0eSgpKSB7CisgICAgICAgIG1fa2V5ZnJhbWVBbmltYXRpb25zLmNoZWNrQ29uc2lzdGVu
Y3koKTsKKyAgICAgICAgZm9yIChWZWN0b3I8QXRvbWljU3RyaW5nSW1wbCo+Ojpjb25zdF9pdGVy
YXRvciBpdCA9IG1fa2V5ZnJhbWVBbmltYXRpb25PcmRlck1hcC5iZWdpbigpOyBpdCAhPSBtX2tl
eWZyYW1lQW5pbWF0aW9uT3JkZXJNYXAuZW5kKCk7ICsraXQpIHsKKyAgICAgICAgICAgIFJlZlB0
cjxLZXlmcmFtZUFuaW1hdGlvbj4ga2V5ZnJhbWVBbmltYXRpb24gPSBtX2tleWZyYW1lQW5pbWF0
aW9ucy5nZXQoKml0KTsKKyAgICAgICAgICAgIGlmIChrZXlmcmFtZUFuaW1hdGlvbikgeworICAg
ICAgICAgICAgICAgIFJlZlB0cjxXZWJLaXRBbmltYXRpb24+IGFuaW0gPSBXZWJLaXRBbmltYXRp
b246OmNyZWF0ZShrZXlmcmFtZUFuaW1hdGlvbik7CisgICAgICAgICAgICAgICAgYW5pbWF0aW9u
cy0+YXBwZW5kKGFuaW0pOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorICAgIHJl
dHVybiBhbmltYXRpb25zOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9Db21wb3NpdGVBbmltYXRpb24uaCBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0NvbXBvc2l0ZUFuaW1hdGlvbi5oCmluZGV4IDI0
OWY0YzMuLjFiZmU1ODUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9u
L0NvbXBvc2l0ZUFuaW1hdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9u
L0NvbXBvc2l0ZUFuaW1hdGlvbi5oCkBAIC00MSw2ICs0MSw3IEBAIGNsYXNzIEFuaW1hdGlvbkNv
bnRyb2xsZXJQcml2YXRlOwogY2xhc3MgQW5pbWF0aW9uQ29udHJvbGxlcjsKIGNsYXNzIFJlbmRl
ck9iamVjdDsKIGNsYXNzIFJlbmRlclN0eWxlOworY2xhc3MgV2ViS2l0QW5pbWF0aW9uTGlzdDsK
IAogLy8gQSBDb21wb3NpdGVBbmltYXRpb24gcmVwcmVzZW50cyBhIGNvbGxlY3Rpb24gb2YgYW5p
bWF0aW9ucyB0aGF0IGFyZSBydW5uaW5nCiAvLyBvbiBhIHNpbmdsZSBSZW5kZXJPYmplY3QsIHN1
Y2ggYXMgYSBudW1iZXIgb2YgcHJvcGVydGllcyB0cmFuc2l0aW9uaW5nIGF0IG9uY2UuCkBAIC04
MCw2ICs4MSw4IEBAIHB1YmxpYzoKICAgICBib29sIHBhdXNlVHJhbnNpdGlvbkF0VGltZShpbnQg
cHJvcGVydHksIGRvdWJsZSB0KTsKICAgICB1bnNpZ25lZCBudW1iZXJPZkFjdGl2ZUFuaW1hdGlv
bnMoKSBjb25zdDsKIAorICAgIFBhc3NSZWZQdHI8V2ViS2l0QW5pbWF0aW9uTGlzdD4gYW5pbWF0
aW9ucygpIGNvbnN0OworCiBwcml2YXRlOgogICAgIENvbXBvc2l0ZUFuaW1hdGlvbihBbmltYXRp
b25Db250cm9sbGVyUHJpdmF0ZSogYW5pbWF0aW9uQ29udHJvbGxlcikKICAgICAgICAgOiBtX2Fu
aW1hdGlvbkNvbnRyb2xsZXIoYW5pbWF0aW9uQ29udHJvbGxlcikK
</data>

          </attachment>
      

    </bug>

</bugzilla>